|
34 | 34 | StudentBills, |
35 | 35 | UnregisteredStudent, |
36 | 36 | Update, |
| 37 | + Menu, |
| 38 | + SDC, |
37 | 39 | ) |
38 | 40 | from home.utils.rebate_checker import max_days_rebate |
39 | 41 |
|
@@ -179,6 +181,27 @@ def generate_table(self, request, queryset): |
179 | 181 | ) |
180 | 182 | caterer_bill.save() |
181 | 183 |
|
| 184 | +@admin.register(Menu) |
| 185 | +class MenuAdmin(admin.ModelAdmin): |
| 186 | + model = Menu |
| 187 | + search_fields = ("menu_type",) |
| 188 | + list_filter = ("menu_type",) |
| 189 | + fieldsets = ( |
| 190 | + ( |
| 191 | + None, |
| 192 | + { |
| 193 | + "fields": ("menu_type", "sheet_url"), |
| 194 | + "description": "Manage different types of menus and their URLs.", |
| 195 | + }, |
| 196 | + ), |
| 197 | + ) |
| 198 | + actions = ["reset_menu_urls"] |
| 199 | + |
| 200 | + @admin.action(description="Reset menu URLs to default") |
| 201 | + def reset_menu_urls(self, request, queryset): |
| 202 | + for menu in queryset: |
| 203 | + menu.sheet_url = "" |
| 204 | + menu.save() |
182 | 205 |
|
183 | 206 | @admin.register(Form) |
184 | 207 | class about_Admin(admin.ModelAdmin): |
@@ -1179,3 +1202,48 @@ class about_Admin(admin.ModelAdmin): |
1179 | 1202 | }, |
1180 | 1203 | ), |
1181 | 1204 | ) |
| 1205 | + |
| 1206 | + |
| 1207 | +@admin.register(SDC) |
| 1208 | +class SDCAdmin(admin.ModelAdmin): |
| 1209 | + model = SDC |
| 1210 | + search_fields = ("student__name", "student__roll_no", "student__email", "position", "year") |
| 1211 | + list_display = ("student", "name", "position", "year") |
| 1212 | + list_filter = ("position", "year") |
| 1213 | + autocomplete_fields = ["student"] |
| 1214 | + |
| 1215 | + fieldsets = ( |
| 1216 | + ( |
| 1217 | + None, |
| 1218 | + { |
| 1219 | + "fields": ( |
| 1220 | + "student", |
| 1221 | + "name", |
| 1222 | + "image", |
| 1223 | + "position", |
| 1224 | + "year", |
| 1225 | + ), |
| 1226 | + "description": "Manage SDC Members", |
| 1227 | + }, |
| 1228 | + ), |
| 1229 | + ) |
| 1230 | + actions = ["export_as_csv"] |
| 1231 | + |
| 1232 | + def export_as_csv(self, request, queryset): |
| 1233 | + """ |
| 1234 | + Export action available in the admin page |
| 1235 | + """ |
| 1236 | + import csv |
| 1237 | + from django.http import HttpResponse |
| 1238 | + |
| 1239 | + response = HttpResponse(content_type="text/csv") |
| 1240 | + response["Content-Disposition"] = 'attachment; filename="SDC.csv"' |
| 1241 | + writer = csv.writer(response) |
| 1242 | + writer.writerow(["Student", "Name", "Position", "Year"]) |
| 1243 | + |
| 1244 | + for obj in queryset: |
| 1245 | + writer.writerow([obj.student, obj.name, obj.position, obj.year]) |
| 1246 | + |
| 1247 | + return response |
| 1248 | + |
| 1249 | + export_as_csv.short_description = "Export SDC details to CSV" |
0 commit comments