Skip to content
Snippets Groups Projects
Commit 5d59112a authored by Alban Gruin's avatar Alban Gruin
Browse files

Ajout d’une colonne pour cacher un groupe dans la liste des groupes.

Ajout d’actions personnalisées dans l’interface d’administration pour
cacher et afficher plusieurs groupes à la fois.
Filtrage des groupes cachés dans get_relevant_children() et
get_relevant_groups().
parent f0c61f1a
Branches
Tags
No related merge requests found
......@@ -16,6 +16,14 @@
from django.contrib import admin
from .models import Timetable, Group, Room, Course, Year
def make_hidden(modeladmin, request, queryset):
queryset.update(hidden=True)
make_hidden.short_description = "Cacher les groupes sélectionnés"
def make_visible(modeladmin, request, queryset):
queryset.update(hidden=False)
make_visible.short_description = "Afficher les groupes sélectionnés"
@admin.register(Year)
class YearAdmin(admin.ModelAdmin):
......@@ -35,12 +43,14 @@ class TimetableAdmin(admin.ModelAdmin):
@admin.register(Group)
class GroupAdmin(admin.ModelAdmin):
fieldsets = (
(None, {"fields": ("name", "celcat_name", "timetable",)}),
(None, {"fields": ("name", "celcat_name", "timetable", "hidden",)}),
("Groupes", {"fields": ("mention", "subgroup", "td", "tp", "parent",)}),)
list_display = ("name", "timetable",)
list_display = ("name", "timetable", "hidden",)
list_editable = ("hidden",)
list_filter = ("timetable",)
ordering = ("timetable",)
readonly_fields = ("celcat_name", "mention", "subgroup", "td", "tp",)
actions = (make_hidden, make_visible,)
@admin.register(Room)
......
......@@ -71,13 +71,13 @@ def get_relevant_children(self, group):
parent_in = self.get_queryset().filter(parent=group)
return self.get_queryset().filter(Q(parent=group) | Q(parent__in=parent_in)) \
.annotate(children_count=Count("children")) \
.filter(children_count=0) \
.filter(children_count=0, hidden=False) \
.order_by("name")
def get_relevant_groups(self, *args, **criteria):
return self.get_queryset().filter(*args, **criteria) \
.annotate(children_count=Count("children")) \
.filter(children_count=0)
.filter(children_count=0, hidden=False)
class Group(models.Model):
......@@ -99,6 +99,8 @@ class Group(models.Model):
slug = models.SlugField(max_length=64, default="")
hidden = models.BooleanField(verbose_name="caché", default=False)
def corresponds_to(self, timetable_id, mention, subgroup, td, tp):
return self.timetable.id == timetable_id and \
self.mention.startswith(mention) and \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment