|
37 | 37 | StudentBills, |
38 | 38 | UnregisteredStudent, |
39 | 39 | Update, |
| 40 | + GlobalConstants, |
40 | 41 | ) |
41 | 42 | from home.utils.rebate_checker import max_days_rebate |
42 | 43 |
|
|
79 | 80 | ) |
80 | 81 | REBATE_BILLS_DESC_TEXT = "This contains the rebate bills of each students." |
81 | 82 |
|
82 | | -# Register your models here |
| 83 | +@admin.register(GlobalConstants) |
| 84 | +class GlobalConstantsAdmin(admin.ModelAdmin): |
| 85 | + model = GlobalConstants |
| 86 | + |
| 87 | + def has_add_permission(self, request): |
| 88 | + # Only allow one instance of GlobalConstants |
| 89 | + if self.model.objects.count() > 0: |
| 90 | + return False |
| 91 | + return super().has_add_permission(request) |
| 92 | + |
| 93 | + def has_delete_permission(self, request, obj=None): |
| 94 | + return False |
83 | 95 |
|
84 | 96 |
|
85 | 97 | @admin.register(About) |
@@ -451,11 +463,19 @@ def set_semester(modeladmin, request, queryset: list[LongRebate]): |
451 | 463 | set_semester.__name__ = f"get_rebate_days_per_caterer_{semester}" |
452 | 464 | return set_semester |
453 | 465 |
|
454 | | - try: |
455 | | - for semester in Semester.objects.all(): |
456 | | - actions.append(set_semester_action(semester.name)) |
457 | | - except Exception as e: |
458 | | - print("Semester table not available", e) |
| 466 | + def get_actions(self, request): |
| 467 | + actions = super().get_actions(request) |
| 468 | + try: |
| 469 | + for semester in Semester.objects.all(): |
| 470 | + action = self.set_semester_action(semester.name) |
| 471 | + actions[action.__name__] = ( |
| 472 | + action, |
| 473 | + action.__name__, |
| 474 | + action.short_description, |
| 475 | + ) |
| 476 | + except Exception as e: |
| 477 | + print("Semester table not available", e) |
| 478 | + return actions |
459 | 479 |
|
460 | 480 |
|
461 | 481 | @admin.register(Rebate) |
@@ -679,11 +699,19 @@ def set_period(modeladmin, request, queryset): |
679 | 699 | set_period.__name__ = f"set_period_{semester_name}_{period_sno}" |
680 | 700 | return set_period |
681 | 701 |
|
682 | | - try: |
683 | | - for period in Period.objects.all(): |
684 | | - actions.append(set_period_action(period.semester.name, period.Sno)) |
685 | | - except Exception as e: |
686 | | - print("Periods table not available", e) |
| 702 | + def get_actions(self, request): |
| 703 | + actions = super().get_actions(request) |
| 704 | + try: |
| 705 | + for period in Period.objects.all(): |
| 706 | + action = self.set_period_action(period.semester.name, period.Sno) |
| 707 | + actions[action.__name__] = ( |
| 708 | + action, |
| 709 | + action.__name__, |
| 710 | + action.short_description, |
| 711 | + ) |
| 712 | + except Exception as e: |
| 713 | + print("Periods table not available", e) |
| 714 | + return actions |
687 | 715 |
|
688 | 716 | @admin.action(description="Allocate the unregistered students") |
689 | 717 | def allocate(self, request, queryset): |
|
0 commit comments