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()
|
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):
|
class Volunteer(PonyConfModel):
|
||||||
site = models.ForeignKey(Site, on_delete=models.CASCADE)
|
site = models.ForeignKey(Site, on_delete=models.CASCADE)
|
||||||
name = models.CharField(max_length=128, verbose_name=_('Your Name'))
|
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)
|
language = models.CharField(max_length=10, blank=True)
|
||||||
notes = models.TextField(default='', blank=True, verbose_name=_('Notes'),
|
notes = models.TextField(default='', blank=True, verbose_name=_('Notes'),
|
||||||
help_text=_('If you have some constraints, you can indicate them here.'))
|
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)
|
conversation = models.OneToOneField(MessageThread)
|
||||||
|
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
|
@ -496,25 +518,3 @@ class Volunteer(PonyConfModel):
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.name)
|
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():
|
if request.user.is_authenticated():
|
||||||
volunteer.email = request.user.email
|
volunteer.email = request.user.email
|
||||||
volunteer.save()
|
volunteer.save()
|
||||||
|
form.save_m2m()
|
||||||
body = _("""Hi {},
|
body = _("""Hi {},
|
||||||
|
|
||||||
Thank your for your help in the organization of the conference {}!
|
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):
|
def volunteer_update_activity(request, volunteer, activity, join):
|
||||||
activity = get_object_or_404(Activity, slug=activity, site=request.conference.site)
|
activity = get_object_or_404(Activity, slug=activity, site=request.conference.site)
|
||||||
if join:
|
if join:
|
||||||
activity.volunteers.add(volunteer)
|
volunteer.activities.add(activity)
|
||||||
activity.save()
|
|
||||||
messages.success(request, _('Thank you for your participation!'))
|
messages.success(request, _('Thank you for your participation!'))
|
||||||
else:
|
else:
|
||||||
activity.volunteers.remove(volunteer)
|
volunteer.activities.remove(activity)
|
||||||
activity.save()
|
|
||||||
messages.success(request, _('Okay, no problem!'))
|
messages.success(request, _('Okay, no problem!'))
|
||||||
return redirect(reverse('volunteer-dashboard', kwargs=dict(volunteer_token=volunteer.token)))
|
return redirect(reverse('volunteer-dashboard', kwargs=dict(volunteer_token=volunteer.token)))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue