From 28ed595924fbc2ffe70c1d60806a2e90ad582970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lie=20Bouttier?= Date: Mon, 9 Oct 2017 19:54:04 +0200 Subject: [PATCH] tags: batch assignment --- cfp/forms.py | 3 +++ cfp/views.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cfp/forms.py b/cfp/forms.py index 9c57117..e2abba2 100644 --- a/cfp/forms.py +++ b/cfp/forms.py @@ -142,6 +142,7 @@ class TalkActionForm(forms.Form): talks = forms.MultipleChoiceField(choices=[]) decision = forms.NullBooleanField(label=_('Accept talk?')) track = forms.ChoiceField(required=False, choices=[], label=_('Assign to a track')) + tag = forms.ChoiceField(required=False, choices=[], label=_('Add a tag')) room = forms.ChoiceField(required=False, choices=[], label=_('Put in a room')) def __init__(self, *args, **kwargs): @@ -151,6 +152,8 @@ class TalkActionForm(forms.Form): self.fields['talks'].choices = [(talk.token, None) for talk in talks.all()] tracks = Track.objects.filter(site=site) self.fields['track'].choices = [(None, "---------")] + list(tracks.values_list('slug', 'name')) + tags = Tag.objects.filter(site=site) + self.fields['tag'].choices = [(None, "---------")] + list(tags.values_list('slug', 'name')) rooms = Room.objects.filter(site=site) self.fields['room'].choices = [(None, "---------")] + list(rooms.values_list('slug', 'name')) diff --git a/cfp/views.py b/cfp/views.py index 31d3a42..4ff68fb 100644 --- a/cfp/views.py +++ b/cfp/views.py @@ -22,7 +22,7 @@ from .planning import Program from .decorators import staff_required from .mixins import StaffRequiredMixin, OnSiteMixin, OnSiteFormMixin from .utils import is_staff -from .models import Participant, Talk, TalkCategory, Vote, Track, Room, Volunteer, Activity +from .models import Participant, Talk, TalkCategory, Vote, Track, Tag, Room, Volunteer, Activity from .forms import TalkForm, TalkStaffForm, TalkFilterForm, TalkActionForm, \ ParticipantForm, ParticipantStaffForm, ParticipantFilterForm, \ ConferenceForm, CreateUserForm, TrackForm, RoomForm, VolunteerForm, \ @@ -289,6 +289,8 @@ def talk_list(request): talk.accepted = data['decision'] if data['track']: talk.track = Track.objects.get(site=request.conference.site, slug=data['track']) + if data['tag']: + talk.tags.add(Tag.objects.get(site=request.conference.site, slug=data['tag'])) if data['room']: talk.room = Room.objects.get(site=request.conference.site, slug=data['room']) talk.save()