diff --git a/scipost/forms.py b/scipost/forms.py index 01da3591d7c282e1593f1170260ffd1191a09c72..0b7bb73ef229655d7483e8dd890d0126d42c6c58 100644 --- a/scipost/forms.py +++ b/scipost/forms.py @@ -215,7 +215,7 @@ class VetRegistrationForm(forms.Form): label='Justification (optional)', required=False) def promote_to_registered_contributor(self): - return bool(self.cleaned_data.get('decision', False)) + return self.cleaned_data.get('decision') == 'True' class AuthenticationForm(forms.Form): diff --git a/scipost/migrations/0039_auto_20170306_0804.py b/scipost/migrations/0039_auto_20170306_0804.py index 49894a205825fdbe083d86f688b835138d7516ce..5be053234821f984b1ce69eb6092d7f2c324d784 100644 --- a/scipost/migrations/0039_auto_20170306_0804.py +++ b/scipost/migrations/0039_auto_20170306_0804.py @@ -12,87 +12,7 @@ class Migration(migrations.Migration): ('scipost', '0038_nomination_webpage'), ] - state_operations = [ - migrations.RemoveField( - model_name='feedback', - name='VGM', - ), - migrations.RemoveField( - model_name='feedback', - name='by', - ), - migrations.RemoveField( - model_name='motion', - name='VGM', - ), - migrations.RemoveField( - model_name='motion', - name='in_agreement', - ), - migrations.RemoveField( - model_name='motion', - name='in_disagreement', - ), - migrations.RemoveField( - model_name='motion', - name='in_notsure', - ), - migrations.RemoveField( - model_name='motion', - name='put_forward_by', - ), - migrations.DeleteModel( - name='NewsItem', - ), - migrations.RemoveField( - model_name='nomination', - name='VGM', - ), - migrations.RemoveField( - model_name='nomination', - name='by', - ), - migrations.RemoveField( - model_name='nomination', - name='in_agreement', - ), - migrations.RemoveField( - model_name='nomination', - name='in_disagreement', - ), - migrations.RemoveField( - model_name='nomination', - name='in_notsure', - ), - migrations.AlterField( - model_name='remark', - name='feedback', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='virtualmeetings.Feedback'), - ), - migrations.AlterField( - model_name='remark', - name='motion', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='virtualmeetings.Motion'), - ), - migrations.AlterField( - model_name='remark', - name='nomination', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='virtualmeetings.Nomination'), - ), - migrations.DeleteModel( - name='Feedback', - ), - migrations.DeleteModel( - name='Motion', - ), - migrations.DeleteModel( - name='Nomination', - ), - migrations.DeleteModel( - name='VGM', - ), - ] - operations = [ - migrations.SeparateDatabaseAndState(state_operations=state_operations) + # I'm in a vacuum state. + # Please don't remove me though... ] diff --git a/scipost/migrations/0051_auto_20170504_1359.py b/scipost/migrations/0051_auto_20170504_1359.py new file mode 100644 index 0000000000000000000000000000000000000000..93ec6c4eec19c94aa37fb011b5ae9955b2a4a640 --- /dev/null +++ b/scipost/migrations/0051_auto_20170504_1359.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.3 on 2017-05-04 11:59 +from __future__ import unicode_literals + +from django.db import migrations +from django.db.migrations.exceptions import InvalidMigrationPlan + + +class Migration(migrations.Migration): + + dependencies = [ + ('scipost', '0050_auto_20170416_2152'), + ] + + operations = [ + migrations.AlterModelTable( + name='Feedback', + table='scipost_feedback', + ), + migrations.AlterModelTable( + name='Motion', + table='scipost_motion', + ), + migrations.AlterModelTable( + name='Nomination', + table='scipost_nomination', + ), + migrations.AlterModelTable( + name='VGM', + table='scipost_vgm', + ), + migrations.RemoveField( + model_name='remark', + name='feedback', + ), + migrations.RemoveField( + model_name='remark', + name='motion', + ), + migrations.RemoveField( + model_name='remark', + name='nomination', + ), + ] + + def apply(self, *args, **kwargs): + '''Forward apply the migration only if user explictly accepts the migration.''' + print('\n\nDue to earlier migration issues, this migration will remove the Remark foreignkey' + ' data to `Feedback`, `Motion` and `Nomination`. Please make a backup to' + ' be able to *manually* fix the relations afterwards.') + go_ahead = input(' Do you want to continue? [y/N] ') + if go_ahead == 'y': + return super().apply(*args, **kwargs) + else: + raise InvalidMigrationPlan diff --git a/scipost/migrations/0052_auto_20170504_1404.py b/scipost/migrations/0052_auto_20170504_1404.py new file mode 100644 index 0000000000000000000000000000000000000000..26c68461e6c393076e79a580f481ec0d7395c420 --- /dev/null +++ b/scipost/migrations/0052_auto_20170504_1404.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.3 on 2017-05-04 12:04 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('scipost', '0051_auto_20170504_1359'), + ] + + database_operations = [ + migrations.AlterModelTable('Motion', 'virtualmeetings_motion'), + migrations.AlterModelTable('Feedback', 'virtualmeetings_feedback'), + migrations.AlterModelTable('Nomination', 'virtualmeetings_nomination'), + migrations.AlterModelTable('VGM', 'virtualmeetings_vgm'), + migrations.AlterField( + model_name='motion', + name='VGM', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='virtualmeetings.VGM'), + ), + migrations.AlterField( + model_name='feedback', + name='VGM', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='virtualmeetings.VGM'), + ), + migrations.AlterField( + model_name='nomination', + name='VGM', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='virtualmeetings.VGM'), + ), + ] + + state_operations = [ + migrations.RemoveField( + model_name='feedback', + name='VGM', + ), + migrations.RemoveField( + model_name='feedback', + name='by', + ), + migrations.RemoveField( + model_name='motion', + name='VGM', + ), + migrations.RemoveField( + model_name='motion', + name='in_agreement', + ), + migrations.RemoveField( + model_name='motion', + name='in_disagreement', + ), + migrations.RemoveField( + model_name='motion', + name='in_notsure', + ), + migrations.RemoveField( + model_name='motion', + name='put_forward_by', + ), + migrations.RemoveField( + model_name='nomination', + name='VGM', + ), + migrations.RemoveField( + model_name='nomination', + name='by', + ), + migrations.RemoveField( + model_name='nomination', + name='in_agreement', + ), + migrations.RemoveField( + model_name='nomination', + name='in_disagreement', + ), + migrations.RemoveField( + model_name='nomination', + name='in_notsure', + ), + migrations.DeleteModel('Motion'), + migrations.DeleteModel('Feedback'), + migrations.DeleteModel('Nomination'), + migrations.DeleteModel('VGM') + ] + + operations = [ + migrations.SeparateDatabaseAndState( + database_operations=database_operations, + state_operations=state_operations) + ] diff --git a/scipost/migrations/0053_auto_20170504_1538.py b/scipost/migrations/0053_auto_20170504_1538.py new file mode 100644 index 0000000000000000000000000000000000000000..91b9c57bbbc911cce5f2bb81ec9e8b7710e2cda9 --- /dev/null +++ b/scipost/migrations/0053_auto_20170504_1538.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.3 on 2017-05-04 13:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('virtualmeetings', '0001_initial'), + ('scipost', '0052_auto_20170504_1404'), + ] + + operations = [ + migrations.AddField( + model_name='remark', + name='feedback', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='virtualmeetings.Feedback'), + ), + migrations.AddField( + model_name='remark', + name='motion', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='virtualmeetings.Motion'), + ), + migrations.AddField( + model_name='remark', + name='nomination', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='virtualmeetings.Nomination'), + ), + ] diff --git a/scipost/migrations/0054_delete_newsitem.py b/scipost/migrations/0054_delete_newsitem.py new file mode 100644 index 0000000000000000000000000000000000000000..83bd9bc583e54abc883795124ef5c8bb129a0a01 --- /dev/null +++ b/scipost/migrations/0054_delete_newsitem.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.3 on 2017-05-04 19:04 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('scipost', '0053_auto_20170504_1538'), + ] + + state_operations = [ + migrations.DeleteModel( + name='NewsItem', + ), + ] + + operations = [ + migrations.SeparateDatabaseAndState( + state_operations=state_operations) + ] diff --git a/virtualmeetings/migrations/0001_initial.py b/virtualmeetings/migrations/0001_initial.py index 492b8e80ef3a4adc0541c026e15e68618489c93c..cbfb62cfed8e40c068277a0a09361d18fc706735 100644 --- a/virtualmeetings/migrations/0001_initial.py +++ b/virtualmeetings/migrations/0001_initial.py @@ -24,10 +24,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateField()), ('feedback', models.TextField()), - ], - options={ - 'db_table': 'scipost_feedback', - }, + ] ), migrations.CreateModel( name='Motion', @@ -42,10 +39,7 @@ class Migration(migrations.Migration): ('nr_D', models.PositiveIntegerField(default=0)), ('voting_deadline', models.DateTimeField(default=django.utils.timezone.now, verbose_name='voting deadline')), ('accepted', models.NullBooleanField()), - ], - options={ - 'db_table': 'scipost_motion', - }, + ] ), migrations.CreateModel( name='Nomination', @@ -62,10 +56,7 @@ class Migration(migrations.Migration): ('nr_D', models.PositiveIntegerField(default=0)), ('voting_deadline', models.DateTimeField(default=django.utils.timezone.now, verbose_name='voting deadline')), ('accepted', models.NullBooleanField()), - ], - options={ - 'db_table': 'scipost_nomination', - }, + ] ), migrations.CreateModel( name='VGM', @@ -74,10 +65,7 @@ class Migration(migrations.Migration): ('start_date', models.DateField()), ('end_date', models.DateField()), ('information', models.TextField(default='')), - ], - options={ - 'db_table': 'scipost_vgm', - }, + ] ), migrations.AddField( model_name='nomination', diff --git a/virtualmeetings/models.py b/virtualmeetings/models.py index f78744fc9114cd35791da721d09d57adcbad9778..7e6d9ffcba0993aa1d2ea76f0a79119300b144ce 100644 --- a/virtualmeetings/models.py +++ b/virtualmeetings/models.py @@ -21,9 +21,6 @@ class VGM(models.Model): end_date = models.DateField() information = models.TextField(default='') - class Meta: - db_table = 'scipost_vgm' - def __str__(self): return 'From %s to %s' % (self.start_date.strftime('%Y-%m-%d'), self.end_date.strftime('%Y-%m-%d')) @@ -33,14 +30,11 @@ class Feedback(models.Model): """ Feedback, suggestion or criticism on any aspect of SciPost. """ - VGM = models.ForeignKey(VGM, blank=True, null=True) - by = models.ForeignKey(Contributor) + VGM = models.ForeignKey('virtualmeetings.VGM', blank=True, null=True) + by = models.ForeignKey('scipost.Contributor') date = models.DateField() feedback = models.TextField() - class Meta: - db_table = 'scipost_feedback' - def __str__(self): return '%s: %s' % (self.by, self.feedback[:50]) @@ -61,8 +55,8 @@ class Nomination(models.Model): """ Nomination to an Editorial Fellowship. """ - VGM = models.ForeignKey(VGM, blank=True, null=True) - by = models.ForeignKey(Contributor) + VGM = models.ForeignKey('virtualmeetings.VGM', blank=True, null=True) + by = models.ForeignKey('scipost.Contributor') date = models.DateField() first_name = models.CharField(max_length=30, default='') last_name = models.CharField(max_length=30, default='') @@ -85,9 +79,6 @@ class Nomination(models.Model): voting_deadline = models.DateTimeField('voting deadline', default=timezone.now) accepted = models.NullBooleanField() - class Meta: - db_table = 'scipost_nomination' - def __str__(self): return '%s %s (nominated by %s)' % (self.first_name, self.last_name, @@ -154,27 +145,24 @@ class Motion(models.Model): They are meant to be voted on at the annual VGM. """ category = models.CharField(max_length=10, choices=MOTION_CATEGORIES, default='General') - VGM = models.ForeignKey(VGM, blank=True, null=True) + VGM = models.ForeignKey('virtualmeetings.VGM', blank=True, null=True) background = models.TextField() motion = models.TextField() - put_forward_by = models.ForeignKey(Contributor) + put_forward_by = models.ForeignKey('scipost.Contributor') date = models.DateField() nr_A = models.PositiveIntegerField(default=0) - in_agreement = models.ManyToManyField(Contributor, + in_agreement = models.ManyToManyField('scipost.Contributor', related_name='in_agreement_with_motion', blank=True) nr_N = models.PositiveIntegerField(default=0) - in_notsure = models.ManyToManyField(Contributor, + in_notsure = models.ManyToManyField('scipost.Contributor', related_name='in_notsure_with_motion', blank=True) nr_D = models.PositiveIntegerField(default=0) - in_disagreement = models.ManyToManyField(Contributor, + in_disagreement = models.ManyToManyField('scipost.Contributor', related_name='in_disagreement_with_motion', blank=True) voting_deadline = models.DateTimeField('voting deadline', default=timezone.now) accepted = models.NullBooleanField() - class Meta: - db_table = 'scipost_motion' - def __str__(self): return self.motion[:32]