From e200757aca0c55a0bafa6e02de6a066aff23a49f Mon Sep 17 00:00:00 2001 From: chirac Date: Sun, 3 Jul 2016 15:26:44 +0200 Subject: [PATCH] Demenagement de force --- users/migrations/0009_user_room.py | 22 ++++++++++++++++++ users/migrations/0010_auto_20160703_1226.py | 20 ++++++++++++++++ users/migrations/0011_auto_20160703_1227.py | 20 ++++++++++++++++ users/migrations/0012_auto_20160703_1230.py | 20 ++++++++++++++++ .../__pycache__/0009_user_room.cpython-34.pyc | Bin 0 -> 869 bytes .../0010_auto_20160703_1226.cpython-34.pyc | Bin 0 -> 788 bytes .../0011_auto_20160703_1227.cpython-34.pyc | Bin 0 -> 800 bytes .../0012_auto_20160703_1230.cpython-34.pyc | Bin 0 -> 809 bytes users/models.py | 16 +++++++++++++ 9 files changed, 98 insertions(+) create mode 100644 users/migrations/0009_user_room.py create mode 100644 users/migrations/0010_auto_20160703_1226.py create mode 100644 users/migrations/0011_auto_20160703_1227.py create mode 100644 users/migrations/0012_auto_20160703_1230.py create mode 100644 users/migrations/__pycache__/0009_user_room.cpython-34.pyc create mode 100644 users/migrations/__pycache__/0010_auto_20160703_1226.cpython-34.pyc create mode 100644 users/migrations/__pycache__/0011_auto_20160703_1227.cpython-34.pyc create mode 100644 users/migrations/__pycache__/0012_auto_20160703_1230.cpython-34.pyc 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 0000000000000000000000000000000000000000..c67c148b7970c01419cad8c5b1a57ad5d92094d2 GIT binary patch literal 869 zcmZvaOK;Oa5P-+e*d}QMRJ<;54Tr=H5)TPb5h5HAEh?3ea#^{ZiRH-lhPBa9Ka#Ssk%J{w>G>3Jc~I zSY~ZQZbRX~+=0S{x!YMC$UT_*@DW`=4}Nf<2jsxA2Ui^119af)$iL>KFtYTpDYG+) zB=W2#mE_gP)=`nADycJBR@yJvnOBErCVn#ptQ_#HQWgY;h=Jxd;2prbklKccTv&SM zaP$HB*Z?pD@(l<^fVTkqKmja6Sh6vKC0ho7J8%UK?g9>3aZ@h04|toA_jLGq!==Mo zu4FFLjP(6Dj$etSsim04`_JPS@iVbMjbrUK6{$+^vHztox=@s66_-iKHJZ9anG~d5 zXf_G9)x`(t#n!LWYxD9%^Qp9=AiQTPvb~v)v zTTs>GD7JK1>;Gbn209Qeln^=+f+3rnSnmt*y-9L|XjVuoDv`>wj4I`r(}Q=2GXt$$ zvy5g^QI?jU=u-Q*Ov+Sh8&7r6qVvt_-k0N}lMnAtbR<`N@$GH@1ofDAx8hGcIZxE& z;^JbWXeuXdGbh`ZF=^Z0wUzraUR^4W_Xa$x9Tt7Zu|hYreEyzVt#1^VnifsnD6T^B zg9jaUaAQ1e>*(ko-WbQ-^BZrl)g#{2CfkyB+7pv4c-?jEt;t>aEQa)Po| literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7371f03de159119c28d53253047a23d22d8e13d2 GIT binary patch literal 788 zcmZ8f!H&}~5S=7WnuNC7(;_7JfLxNaNQ+iNXwi!0fY?P#C8S=gwDwjBPTX}8s`grb zhF|iP6BoF1Vw|WfB8f-OKrw&=#twiv@GcPM~m2s$K>2 zfDM3qMg{YM`%nZ>;5LNf5wHMQ2n@jx*vQ}mkOMe|3O!@gJJG@WqbTjRHCMGBr)hdl z4W>%U5@j2yw8~1ZiE(SvK)%{j}=+9mfB`Z?RP41272(}_GbR(a;`(U!4Y+H`3CAK-tNrr^W;mW zlI?bzC_a-(*PY~HhDn-EQ<}Anq_cE-mcB@z)9Gw>7H@XSMG_xZ9ikaJ0SPP*-_9TT zrnI}ZX%!ZuY>d!BuP|oIuAIJvCx4xB|F^_P?dmaJ>c}4C_UM^m^I!Ijdu6z556#3r HwT8|ggRsvR literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b4a3f5e55139e8bf8d44078307662ad1eb022834 GIT binary patch literal 800 zcmZWnOOMkq5T3jrq)Ye0;{f+unzTr}LPBT}VmTmo(NYPi7b~s3Re}?DorJ1;Eq{jJ z!awkp6Bm8}C&rG-BH_fJ#^ZT>Gvi;$DE{v5K6y645BO)fD4*eOFA*sI7I1*tf`tW^ zKHI=;s2x~1P`j{j2dx9#gM|-osSDJDuW0B2bD#=fkG26&2R^3$PYepFrN(_zt^{R- zmmQM@Z&O>vb-9*BSBj=pevOyBy;y1c!#YOc40l^0Fwl&U(82~fhBXp&fVoh4I@Q2} z`alCwWP*YytGTEw! zc|Ofa(RYH(^65!_nm;4c+3WwCJiAfCIr*=oS~c$a?=-F zC)Fp)HmsqnS(U7n4mzs%6~~^RYa-G$igO`Zxo+OEo$_f_G;5)3x>TVdgY!_qhpWr^ zo7Zy{iw%y;%;+1)C+Kb9_w(#aA+zmvn@Khkndwn>H_r^aHT}O^r<2W2dKe_c-Np!s z6S z48P(t(P=k_=V{gbPa#UNZvBg)ivn0(YPs!2x|oz#MoVd*3lA#Fn0Pb+ML= zQ&F^B<)Vpg9ahCg>j$aL-UMA6Nh^1nxr_K#9f>%6q`@jew2K?E%OE91{vHC&)X|!P_I0cDshFMxUkW zY)130l{8CdkJF3voX)cB0{IOyt@Da&Vth3jbR}h_-J607rrnju>yHZ^$eN-zZ@IQx zxj$*;RtmW(`1IO%le!b)Dz^7S(*6IE#$)Z%J|(3(q!bZ4!BLMW{nX{c0GJcwTV69> zuM6HN2ivE^=K?$b%0MY%4C8st7ZOEp(;h4HdLy;XR@(1LaWH!H?s~p>`C_3%xy8Bl z!}<#9AqMEh&nL;}TqV2RE>S#_N#C;MZm^6=^H zv2Uuo>Do?VJ<3K89Snq1w(2Vys(A3nI30eW>5*NX;YWS2JKRBgWTN>`hu%Fiu^SJ? J#J+Du&TkCg(f0rV literal 0 HcmV?d00001 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']