diff --git a/users/migrations/0009_user_room.py b/users/migrations/0009_user_room.py new file mode 100644 index 00000000..e21c4837 --- /dev/null +++ b/users/migrations/0009_user_room.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('topologie', '0009_auto_20160703_1200'), + ('users', '0008_user_registered'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='room', + field=models.ForeignKey(to='topologie.Room', on_delete=django.db.models.deletion.PROTECT, default=1), + preserve_default=False, + ), + ] diff --git a/users/migrations/0010_auto_20160703_1226.py b/users/migrations/0010_auto_20160703_1226.py new file mode 100644 index 00000000..9a2d6689 --- /dev/null +++ b/users/migrations/0010_auto_20160703_1226.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0009_user_room'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='room', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, blank=True, to='topologie.Room', null=True), + ), + ] diff --git a/users/migrations/0011_auto_20160703_1227.py b/users/migrations/0011_auto_20160703_1227.py new file mode 100644 index 00000000..12081357 --- /dev/null +++ b/users/migrations/0011_auto_20160703_1227.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0010_auto_20160703_1226'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='room', + field=models.ForeignKey(null=True, blank=True, unique=True, on_delete=django.db.models.deletion.PROTECT, to='topologie.Room'), + ), + ] diff --git a/users/migrations/0012_auto_20160703_1230.py b/users/migrations/0012_auto_20160703_1230.py new file mode 100644 index 00000000..98c64d8e --- /dev/null +++ b/users/migrations/0012_auto_20160703_1230.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0011_auto_20160703_1227'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='room', + field=models.OneToOneField(blank=True, on_delete=django.db.models.deletion.PROTECT, to='topologie.Room', null=True), + ), + ] diff --git a/users/migrations/__pycache__/0009_user_room.cpython-34.pyc b/users/migrations/__pycache__/0009_user_room.cpython-34.pyc new file mode 100644 index 00000000..c67c148b Binary files /dev/null and b/users/migrations/__pycache__/0009_user_room.cpython-34.pyc differ diff --git a/users/migrations/__pycache__/0010_auto_20160703_1226.cpython-34.pyc b/users/migrations/__pycache__/0010_auto_20160703_1226.cpython-34.pyc new file mode 100644 index 00000000..7371f03d Binary files /dev/null and b/users/migrations/__pycache__/0010_auto_20160703_1226.cpython-34.pyc differ diff --git a/users/migrations/__pycache__/0011_auto_20160703_1227.cpython-34.pyc b/users/migrations/__pycache__/0011_auto_20160703_1227.cpython-34.pyc new file mode 100644 index 00000000..b4a3f5e5 Binary files /dev/null and b/users/migrations/__pycache__/0011_auto_20160703_1227.cpython-34.pyc differ diff --git a/users/migrations/__pycache__/0012_auto_20160703_1230.cpython-34.pyc b/users/migrations/__pycache__/0012_auto_20160703_1230.cpython-34.pyc new file mode 100644 index 00000000..2ecee417 Binary files /dev/null and b/users/migrations/__pycache__/0012_auto_20160703_1230.cpython-34.pyc differ diff --git a/users/models.py b/users/models.py index 4490f3f2..c30e4a68 100644 --- a/users/models.py +++ b/users/models.py @@ -6,6 +6,15 @@ from django.utils import timezone from topologie.models import Room +def remove_user_room(room): + """ Déménage de force l'ancien locataire de la chambre """ + try: + user = User.objects.get(room=room) + except User.DoesNotExist: + return + user.room = None + user.save() + class User(models.Model): STATE_ACTIVE = 0 STATE_DEACTIVATED = 1 @@ -74,12 +83,19 @@ class UserForm(ModelForm): fields = '__all__' class InfoForm(ModelForm): + force = forms.BooleanField(label="Forcer le déménagement ?", initial=False, required=False) + def __init__(self, *args, **kwargs): super(InfoForm, self).__init__(*args, **kwargs) self.fields['name'].label = 'Nom' self.fields['surname'].label = 'Prenom' self.fields['school'].label = 'Etablissement' + def clean_force(self): + if self.cleaned_data.get('force', False): + remove_user_room(self.cleaned_data.get('room')) + return + class Meta: model = User fields = ['name','surname','pseudo','email', 'school', 'promo', 'room']