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 @@