From 131d8d70334bf3715db4dced00defd47c5f36b44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lie=20Bouttier?= Date: Tue, 7 Nov 2017 23:54:09 +0100 Subject: [PATCH] admin area: manage tag and categories --- cfp/forms.py | 12 +++++++ cfp/models.py | 14 ++++++-- cfp/templates/cfp/admin/base.html | 2 ++ cfp/urls.py | 6 ++++ cfp/views.py | 59 +++++++++++++++++++++++++++++++ 5 files changed, 90 insertions(+), 3 deletions(-) diff --git a/cfp/forms.py b/cfp/forms.py index 09892a3..8e65a5b 100644 --- a/cfp/forms.py +++ b/cfp/forms.py @@ -308,12 +308,24 @@ class TrackForm(OnSiteNamedModelForm): fields = ['name', 'description'] +class TalkCategoryForm(OnSiteNamedModelForm): + class Meta: + model = TalkCategory + fields = ['name', 'duration', 'color', 'label', 'opening_date', 'closing_date'] + + class RoomForm(OnSiteNamedModelForm): class Meta: model = Room fields = ['name', 'label', 'capacity'] +class TagForm(OnSiteNamedModelForm): + class Meta: + model = Tag + fields = ['name', 'color', 'inverted', 'public'] + + class VolunteerForm(forms.ModelForm): def __init__(self, *args, **kwargs): self.conference = kwargs.pop('conference') diff --git a/cfp/models.py b/cfp/models.py index e83164f..de85041 100644 --- a/cfp/models.py +++ b/cfp/models.py @@ -207,11 +207,16 @@ class Tag(models.Model): inverted = models.BooleanField(default=False) public = models.BooleanField(default=False, verbose_name=_('Show the tag on the program')) + def get_absolute_url(self): + return reverse('tag-list') + + def get_filter_url(self): + return reverse('talk-list') + '?tag=' + self.slug + @property def link(self): - return format_html('{content}', **{ - 'url': reverse('talk-list'), - 'tag': self.slug, + return format_html('{content}', **{ + 'url': self.get_filter_url(), 'content': self.label, }) @@ -260,6 +265,9 @@ class TalkCategory(models.Model): # type of talk (conf 30min, 1h, stand, …) return ugettext(self.name) def get_absolute_url(self): + return reverse('category-list') + + def get_filter_url(self): return reverse('talk-list') + '?category=%d' % self.pk diff --git a/cfp/templates/cfp/admin/base.html b/cfp/templates/cfp/admin/base.html index c6f4449..f204984 100644 --- a/cfp/templates/cfp/admin/base.html +++ b/cfp/templates/cfp/admin/base.html @@ -8,6 +8,8 @@