diff --git a/com/migrations/0004_auto_20171023_0929.py b/com/migrations/0004_auto_20171023_0929.py new file mode 100644 index 00000000..9bd6f55e --- /dev/null +++ b/com/migrations/0004_auto_20171023_0929.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +import django.utils.timezone +from django.conf import settings + + +class Migration(migrations.Migration): + + dependencies = [ + ('club', '0010_auto_20170912_2028'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('com', '0003_auto_20170115_2300'), + ] + + operations = [ + migrations.CreateModel( + name='Poster', + fields=[ + ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), + ('name', models.CharField(verbose_name='name', max_length=128, default='')), + ('file', models.ImageField(verbose_name='file', upload_to='com/posters')), + ('date_begin', models.DateTimeField(default=django.utils.timezone.now)), + ('date_end', models.DateTimeField(blank=True, null=True)), + ('is_moderated', models.BooleanField(verbose_name='is moderated', default=False)), + ('club', models.ForeignKey(verbose_name='club', related_name='posters', to='club.Club')), + ('moderator', models.ForeignKey(verbose_name='moderator', blank=True, null=True, related_name='moderated_posters', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Screen', + fields=[ + ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), + ('name', models.CharField(verbose_name='name', max_length=128)), + ], + ), + migrations.AddField( + model_name='poster', + name='screens', + field=models.ManyToManyField(related_name='posters', to='com.Screen'), + ), + ] diff --git a/com/models.py b/com/models.py index bd1f7afe..26844330 100644 --- a/com/models.py +++ b/com/models.py @@ -191,7 +191,6 @@ class WeekmailArticle(models.Model): class Screen(models.Model): name = models.CharField(_("name"), max_length=128) - club = models.ForeignKey(Club, related_name="screens", verbose_name=_("club"), null=False) def active_posters(self): now = timezone.now() @@ -206,6 +205,7 @@ class Screen(models.Model): class Poster(models.Model): name = models.CharField(_("name"), blank=False, null=False, max_length=128, default="") file = models.ImageField(_("file"), null=False, upload_to="com/posters") + club = models.ForeignKey(Club, related_name="posters", verbose_name=_("club"), null=False) screens = models.ManyToManyField(Screen, related_name="posters") date_begin = models.DateTimeField(blank=False, null=False, default=timezone.now) date_end = models.DateTimeField(blank=True, null=True) @@ -220,7 +220,7 @@ class Poster(models.Model): def is_owned_by(self, user): return user.is_in_group(settings.SITH_GROUP_COM_ADMIN_ID) - def can_moderate(self, user): + def can_be_moderated_by(self, user): return user.is_in_group(settings.SITH_GROUP_COM_ADMIN_ID) def __str__(self): diff --git a/com/views.py b/com/views.py index ab6dd64d..d891de8d 100644 --- a/com/views.py +++ b/com/views.py @@ -549,7 +549,7 @@ class PosterModerateView(IsComAdminMixin, ComTabsMixin, ModerateView): """Moderate communication poster""" def get(self, request, *args, **kwargs): obj = get_object_or_404(Poster, pk=kwargs['object_id']) - if obj.can_moderate(request.user): + if obj.can_be_moderated_by(request.user): obj.is_moderated = True obj.moderator = request.user obj.save()