tags: batch assignment

This commit is contained in:
Élie Bouttier 2017-10-09 19:54:04 +02:00
parent 4e7ae4eca9
commit 28ed595924
2 changed files with 6 additions and 1 deletions

View File

@ -142,6 +142,7 @@ class TalkActionForm(forms.Form):
talks = forms.MultipleChoiceField(choices=[]) talks = forms.MultipleChoiceField(choices=[])
decision = forms.NullBooleanField(label=_('Accept talk?')) decision = forms.NullBooleanField(label=_('Accept talk?'))
track = forms.ChoiceField(required=False, choices=[], label=_('Assign to a track')) 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')) room = forms.ChoiceField(required=False, choices=[], label=_('Put in a room'))
def __init__(self, *args, **kwargs): 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()] self.fields['talks'].choices = [(talk.token, None) for talk in talks.all()]
tracks = Track.objects.filter(site=site) tracks = Track.objects.filter(site=site)
self.fields['track'].choices = [(None, "---------")] + list(tracks.values_list('slug', 'name')) 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) rooms = Room.objects.filter(site=site)
self.fields['room'].choices = [(None, "---------")] + list(rooms.values_list('slug', 'name')) self.fields['room'].choices = [(None, "---------")] + list(rooms.values_list('slug', 'name'))

View File

@ -22,7 +22,7 @@ from .planning import Program
from .decorators import staff_required from .decorators import staff_required
from .mixins import StaffRequiredMixin, OnSiteMixin, OnSiteFormMixin from .mixins import StaffRequiredMixin, OnSiteMixin, OnSiteFormMixin
from .utils import is_staff 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, \ from .forms import TalkForm, TalkStaffForm, TalkFilterForm, TalkActionForm, \
ParticipantForm, ParticipantStaffForm, ParticipantFilterForm, \ ParticipantForm, ParticipantStaffForm, ParticipantFilterForm, \
ConferenceForm, CreateUserForm, TrackForm, RoomForm, VolunteerForm, \ ConferenceForm, CreateUserForm, TrackForm, RoomForm, VolunteerForm, \
@ -289,6 +289,8 @@ def talk_list(request):
talk.accepted = data['decision'] talk.accepted = data['decision']
if data['track']: if data['track']:
talk.track = Track.objects.get(site=request.conference.site, slug=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']: if data['room']:
talk.room = Room.objects.get(site=request.conference.site, slug=data['room']) talk.room = Room.objects.get(site=request.conference.site, slug=data['room'])
talk.save() talk.save()