# Copyright (C) 2017-2019 Alban Gruin # # celcatsanitizer is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # celcatsanitizer is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with celcatsanitizer. If not, see . from django.contrib import admin from .models import Course, Group, Module, Room, Source, Timetable, Year def make_hidden(modeladmin, request, queryset): queryset.update(hidden=True) def make_visible(modeladmin, request, queryset): queryset.update(hidden=False) make_hidden.short_description = "Cacher les groupes sélectionnés" make_visible.short_description = "Afficher les groupes sélectionnés" @admin.register(Year) class YearAdmin(admin.ModelAdmin): prepopulated_fields = {"slug": ("name",)} list_display = ("name",) ordering = ("name",) @admin.register(Source) class SourceAdmin(admin.ModelAdmin): list_display = ("url", "metadata", "last_update_date",) @admin.register(Timetable) class TimetableAdmin(admin.ModelAdmin): prepopulated_fields = {"slug": ("name",)} list_display = ("name", "year", "source",) list_filter = ("year__name",) ordering = ("year", "name",) @admin.register(Group) class GroupAdmin(admin.ModelAdmin): fieldsets = ( (None, {"fields": ("name", "celcat_name", "source", "hidden",)}), ("Groupes", {"fields": ("mention", "semester", "subgroup",)}),) list_display = ("name", "source", "hidden",) list_editable = ("hidden",) list_filter = ("source__timetables",) ordering = ("source", "name",) readonly_fields = ("celcat_name",) actions = (make_hidden, make_visible,) @admin.register(Room, Module) class RoomAdmin(admin.ModelAdmin): prepopulated_fields = {"slug": ("name",)} list_display = ("name",) ordering = ("name",) @admin.register(Course) class CourseAdmin(admin.ModelAdmin): fieldsets = ( (None, {"fields": ("name", "type", "source", "groups", "rooms",)}), ("Horaires", {"fields": ("begin", "end",)}), ("Remarques", {"fields": ("notes",)}), ("Avancé", {"fields": ("celcat_id", "last_update", "buggy",), "classes": ("collapse",)}),) list_display = ("name", "type", "source", "begin", "end",) list_filter = ("type", "source__timetables", "groups",) ordering = ("begin",) readonly_fields = ("celcat_id", "last_update",)