Activity.volunteers → Volunteer.activities
This commit is contained in:
parent
d4473665a7
commit
e56e10f8b8
|
@ -0,0 +1,30 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.1 on 2017-12-01 18:00
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cfp', '0021_conference_video_publishing_date'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='activity',
|
||||
old_name='volunteers',
|
||||
new_name='old_volunteers',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='activity',
|
||||
name='old_volunteers',
|
||||
field=models.ManyToManyField(blank=True, related_name='old_activities', to='cfp.Volunteer', verbose_name='Volunteer'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='volunteer',
|
||||
name='activities',
|
||||
field=models.ManyToManyField(blank=True, related_name='volunteers', to='cfp.Activity', verbose_name='Activities'),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,32 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.1 on 2017-12-01 18:01
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
def forward(apps, schema_editor):
|
||||
db_alias = schema_editor.connection.alias
|
||||
Volunteer = apps.get_model("cfp", "Volunteer")
|
||||
for volunteer in Volunteer.objects.using(db_alias).all():
|
||||
for activity in volunteer.old_activities.all():
|
||||
volunteer.activities.add(activity)
|
||||
|
||||
|
||||
def backward(apps, schema_editor):
|
||||
db_alias = schema_editor.connection.alias
|
||||
Activity = apps.get_model("cfp", "Activity")
|
||||
for activity in Activity.objects.using(db_alias).all():
|
||||
for volunteer in activity.volunteers.all():
|
||||
activity.old_volunteers.add(volunteer)
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cfp', '0022_auto_20171201_1800'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(forward, backward),
|
||||
]
|
|
@ -0,0 +1,19 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.1 on 2017-12-01 18:51
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cfp', '0023_auto_20171201_1801'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='activity',
|
||||
name='old_volunteers',
|
||||
),
|
||||
]
|
|
@ -459,6 +459,27 @@ class Vote(PonyConfModel):
|
|||
return self.talk.get_absolute_url()
|
||||
|
||||
|
||||
class Activity(models.Model):
|
||||
site = models.ForeignKey(Site, on_delete=models.CASCADE)
|
||||
name = models.CharField(max_length=256, verbose_name=_('Name'))
|
||||
slug = AutoSlugField(populate_from='name')
|
||||
description = models.TextField(blank=True, verbose_name=_('Description'))
|
||||
|
||||
class Meta:
|
||||
unique_together = ('site', 'name')
|
||||
verbose_name = _('Activity')
|
||||
verbose_name_plural = _('Activities')
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('activity-list')
|
||||
|
||||
def get_filter_url(self):
|
||||
return reverse('volunteer-list') + '?activity=' + self.slug
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Volunteer(PonyConfModel):
|
||||
site = models.ForeignKey(Site, on_delete=models.CASCADE)
|
||||
name = models.CharField(max_length=128, verbose_name=_('Your Name'))
|
||||
|
@ -469,6 +490,7 @@ class Volunteer(PonyConfModel):
|
|||
language = models.CharField(max_length=10, blank=True)
|
||||
notes = models.TextField(default='', blank=True, verbose_name=_('Notes'),
|
||||
help_text=_('If you have some constraints, you can indicate them here.'))
|
||||
activities = models.ManyToManyField(Activity, blank=True, related_name='volunteers', verbose_name=_('Activities'))
|
||||
conversation = models.OneToOneField(MessageThread)
|
||||
|
||||
def get_absolute_url(self):
|
||||
|
@ -496,25 +518,3 @@ class Volunteer(PonyConfModel):
|
|||
|
||||
def __str__(self):
|
||||
return str(self.name)
|
||||
|
||||
|
||||
class Activity(models.Model):
|
||||
site = models.ForeignKey(Site, on_delete=models.CASCADE)
|
||||
name = models.CharField(max_length=256, verbose_name=_('Name'))
|
||||
slug = AutoSlugField(populate_from='name')
|
||||
description = models.TextField(blank=True, verbose_name=_('Description'))
|
||||
volunteers = models.ManyToManyField(Volunteer, blank=True, related_name='activities', verbose_name=_('Volunteer'))
|
||||
|
||||
class Meta:
|
||||
unique_together = ('site', 'name')
|
||||
verbose_name = _('Activity')
|
||||
verbose_name_plural = _('Activities')
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('activity-list')
|
||||
|
||||
def get_filter_url(self):
|
||||
return reverse('volunteer-list') + '?activity=' + self.slug
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
|
|
@ -62,6 +62,7 @@ def volunteer_enrole(request):
|
|||
if request.user.is_authenticated():
|
||||
volunteer.email = request.user.email
|
||||
volunteer.save()
|
||||
form.save_m2m()
|
||||
body = _("""Hi {},
|
||||
|
||||
Thank your for your help in the organization of the conference {}!
|
||||
|
@ -130,12 +131,10 @@ def volunteer_dashboard(request, volunteer):
|
|||
def volunteer_update_activity(request, volunteer, activity, join):
|
||||
activity = get_object_or_404(Activity, slug=activity, site=request.conference.site)
|
||||
if join:
|
||||
activity.volunteers.add(volunteer)
|
||||
activity.save()
|
||||
volunteer.activities.add(activity)
|
||||
messages.success(request, _('Thank you for your participation!'))
|
||||
else:
|
||||
activity.volunteers.remove(volunteer)
|
||||
activity.save()
|
||||
volunteer.activities.remove(activity)
|
||||
messages.success(request, _('Okay, no problem!'))
|
||||
return redirect(reverse('volunteer-dashboard', kwargs=dict(volunteer_token=volunteer.token)))
|
||||
|
||||
|
|
Loading…
Reference in New Issue