From 670b2bce6c5e8b395898e2969b04ba370db72d78 Mon Sep 17 00:00:00 2001 From: "holger.trampe" Date: Sat, 15 Feb 2020 00:21:57 +0100 Subject: [PATCH] Dateisystem einmal umgeschrieben und auf Objekte umgestellt, dragndrop angefangen --- cloud/__pycache__/models.cpython-38.pyc | Bin 1240 -> 2573 bytes cloud/__pycache__/urls.cpython-38.pyc | Bin 432 -> 374 bytes cloud/__pycache__/views.cpython-38.pyc | Bin 3002 -> 2074 bytes cloud/models.py | 36 ++++- cloud/templates/cloud/cloud_main.html | 184 +++++++++++++----------- cloud/urls.py | 4 +- cloud/views.py | 74 ++++++++++ users/__pycache__/views.cpython-38.pyc | Bin 17283 -> 17567 bytes users/templates/users/base.html | 2 +- users/views.py | 13 +- 10 files changed, 221 insertions(+), 92 deletions(-) diff --git a/cloud/__pycache__/models.cpython-38.pyc b/cloud/__pycache__/models.cpython-38.pyc index 07c3bcdf4a1fc9d1f4b5c7412a4bdb9a2e2cfe51..e24ec80db42d463e5ed7d7ffd1b56e7ec7dae96d 100644 GIT binary patch literal 2573 zcmb`JS#R7_6vw^Ij6LxznJnGd%Qh@YTM$TWYDt=aPy?dV7i)y&nR}Bs_1NLqLzylw zwBjw_03>+KSKw3dd|!F$SKtNy=X$1XT7?RMBmaHRUCy=d`JFSl)@alXTtA)J{N`uR zF#cfU(aV8x5qJIrL>R(MjFB0bCbzA`8rgxZ+jioNDnVsb4XWCHbe@ycMsDDuzapyl zjKJG8L`}H&4B<+1uYT7K=FsDbI(q8U9v?k(!bguk?P-X{RioRykM}UTrmBuIA(I>} z=UOhQYpLp`9hnX%YOZ{4Qa0Yluv^3#CZM z2O{QIbK^8GqI4*g%L~(JBo7U0VB0@GUi+ZWACUJy%aR>Q{q<}(9?7)G``og!@ski#Qs&{#c7zXb*88xvH=(;?4_* zGy+o?fhFxdN0`DAHvXIgC#ayOigrcTMD@T9T-cth@6CzYff@KmtOl&6Y(d+?J+Oj# zZFisx99XPgEW;Tr2@eO`P|i9|^#1QP!%#-=&{6eK^nHk<*(r8aO~~zNoD`}uNTT$* za?){<-2V$NduY=MJcuKvyzzdLMItP+Lz9+x)Kp%UhTuXLa_i8dXL&A<3{A-F;x-?T zj=hgYF^&9P^D2C7b!}zm1u2JPh0Qryz$}-^wvJgTO)ONkFvQF-T!v8|xp~v)FI$-o zbeEMIhU_8?RXq$5xpBg6KMcPeM@czC{5r~8+l^==mWd!vO66@}|I+3#(u>^LfOpvg z(&Ye$QrT&CL-{~dhC`Bg2-VS666FPN8E?nvt8Zi^64B4{8ITsF_%g_^|1#C~UEevh*oVJ)hs061(M=YRjofeBgcS+Sa!0R#5JidfFkRB~SH|Pv^ zybK9^q+}k(fDzBGO$>)pC>}a#&EDSqcU}4Zzbw47M z*yDkJ2eUZ7IUhFz?`!Bw>=yz4vPC@S3Gg3O+aEFd6!8DIY72y$lJRa&Q)L+`(gegO zbp377dw7}00j87Od5T4o%s6e)bI_ns?8Z5tdYmE(z*3XY?O8(1 zIO?AKXN>3#cKx7G{udZ@9O*;$cWnLR^JCs}E`&$wA6Gyg-Rd@#C-$OrCtDGNvc#XB z+QST}#e`d0#EiFq`>f%W-Sb8fxw1~x}o?HZ53R7qpHffn9GgC6Nl$N5x z_Ta_ClCwWa@TfU?^;hW2w$)1mdHM3bmoH!PzVv^v-a)t9Avm^q zKqQf%NdYM=aG={oltzd{*}f)e{D#O##@9r~3MOnu(~e~C3Ge*&Y8+g};v{((;{{~i(I$Ue89ThBK+HGLE@%NQJ+p6M!+qNzBT zl^bnVl>)_8qei@C9{So9`zjuMe1xzeS7ZW{)(nj|^bVsn81cY`XC^Nj7o6l;xuDDn zL!U^J~Gexnb za0N4Ha!;(&( PT$6(tBUyMD`ThX_P1zhO delta 199 zcmeyyw1Jr~l$V!_0SKPH z!VTi3Gexnd@B}kx@=h$%H07}=E-A9gNi9pwvD2>-P0qBeq8yrBo=~IB+D&(}AFp1& zexO~wL&`A+loO~D2{$Be+~D6pLh=Q=So3ncKy!8aZ8GXqx3D3m>)b(HRj_W}? zC1TL>BZl>uyKB4$nQHWotx4AGsk+w2PYz_2K2v}nza2BRguA+iVEl2SWTlOl7WG8L z%=D8~XOHDxkyVF=3v^||nN22QFm!zQ$G> z!@V-es?CSGEaExCi>%RVc=By9obpK{l?leGet_+A`KT4^i5*Doa>T^PV_6CHnhj(7 z83!g%^3g=17i&A}VT!Zgje?{oT*5(GS6V*RYRy?RS#?mz&-U~0iP}KTpIh4>e!knB ze8+B1O>f(N{8LQv5?(c%2!wKQlZLPiON;^q{&yHG(Rqk)F4B3YL;YWVpx(t7sjck! z@KLbKajiu`KnKVef~}@%j1rtu!Oozg)0YR12c{Vkj<%L~NIUGlcTBOr44K8xb#_N4 zaU`sF8lDj#Ezf(%9nW&7EBS1=ocXtfC^U01YqKPW`1dCK9rHrYX+8Vmb z$J}tMoR!*f!>gZEwn5D#O=Z)>1LK!cKdgnaRZ?$T7+P4j@Ro(^7TjarB#)(|hhd2j zY7uW@U&YqoeG8T|YIFl}6wL^>SMTR0(6St3g053Dcn59F0G*(E|5=hJPd`9SV?Ekd zMKFK?y$VYZq7?e-ChFt$AFo9BV9U_DnI(A@wXRq0{(^f;3FTshTV*XKh5X2Nv$=lq Pb$_`J3zR~%j%)2dL;@nM literal 3002 zcmZ`5O>Y~=b!NG{TrNNLNl~_Cw>8qTDCmABLE*MZt&iAnR5g-|V!?L1+8I(y?Q*Hv zp(G2-lMLkKAlITjNS6Y+^_XAM!(4mHUod*;dqdK45{JaTdGp?znfEpC&9iFNCGh*l z-?#qyeua?#;^fVr1(Ofp%l-p^5k_N@P>&{tXHc9QaUn51Q{#o$N^H+gie52sJSQo6 zrNs4I%`@Y2Qt>Jpx8iD2^J*HmVNKnu172iK+(;I@1x+u-i^-C=r0H(FoUC{&nqH1q zlcv|ycqLv-T3$=z)p$L*<=xVFExw)H@$P869&dOXJA^gZ!VAI{xXG6;P46ySWJ@oI zcaPQgNqhM#u#L10WeYxJTqs9y76~58HdTvH(|$DkgrAIo!ak19qhZ@p?jyki$^R7b zGvz#uGO025*@(@l?k1N(6i?}!Jmynr*wK8JaRFm3#+`jJ+Zrg91D=fH*$!V(R0_m5 z0~x^RY^Nf@?Er5)iqkRskg@G3=150=#-)sg{S5FrKk^zyEN5%inzb z3E-6{Sqdg)qjZ?@-4LyR^H-QnvY!INiANdn3|{a|Mm_6O(xc2^g%^%zYuscO;Kfgg zNjwL+WksDW~YeI>1FUeIor`HtpvUZi(19!cm4?H&; zA3}tqVJ~f)Vik^8_LQV-aMv(=uB`NI2w|#-26BrSC7wxT?)_o^Kv~<5pKk4o8nOy~ z4&*V!R24@e#Un%u8DyC&TNuv zIrFkVbb zc`0{}ZSm!NkE;e-hI8HAl?z{|T~fBPMp|T2&dZ>UA^yi!HQt0IbDCsQk&83yDs1f~ z1^E_8S9AMnDX(5rN^2{`SRr7^WD)h@Qh@wNlj~aAGDiWy*%AJxANLUlGoVE zdt_4koSy8?C1(28A)!~;dTxUxUI^{8yv}a@)7B>&`$S9JX6q3oJLrN@TD@wrJ78_& z^=t!X3wZMajC#iuoyzm5CMN!tBU%32?-E01y6r0B~<}8{lBn2l!-f z2jFOk_}=c$g#~ophvCWI7S322o&zgoxJk--uV`0bGAkmQFtn*x!()9P>U?$<$s>WO zuPl9cpmLRiP)4WRkE7wSvb2WEghG)4N0$Xn51KDAaaODp9 z*$i*D#P^ZifI8ua=}_`>>7y^iEg*}#2<{=!MZ*{!t74S-!5}!F)|X;>IDl4^DH{%# zP)dw6Q^gp14jdqsV5KT#QYicQED-$+3eG5wq$dfhG}Wnbz7CQaTsza;A0W%60B8M)mdE+ zc^v!x)G%$Gwo{w90)}Dj)%6-pFpWx4AoXkI8S@qU=%cwPqmo3}-;7;VoSojL;sE$C z=oHf@y>_OmO!M^cIp)|OaUb27sd$EKzNZ>&5DfciCp$`o497AP$QRhD)%uKw$swY{ zPB4~7odh36nJ_`XTb>C_`w-k2E}~H2D^g&)7exfvl0*r>ckGuk9%lj{rfTDD2QnVQ zvj(0vnZPzB;Nc1l9AbpabW?7UdQ={M^cW&GAt0kL4dK;K7J$qH&JmOPIK(H7~u?WWdpMKHhkay JJLcl={ttVS8^Ztq diff --git a/cloud/models.py b/cloud/models.py index 668db3c..9ac20c6 100644 --- a/cloud/models.py +++ b/cloud/models.py @@ -1,6 +1,6 @@ from django.db import models from django.contrib.auth.models import User -from users.models import Agency +from users.models import Agency, AgencyGroup # Create your models here. from django.db import models from django.utils import timezone @@ -19,6 +19,36 @@ class Data(models.Model): owner = models.ForeignKey(User, on_delete=models.PROTECT) agency = models.ForeignKey(Agency, on_delete=models.CASCADE, default=None) - def __str__(self): - print(self.file.name) + def __str__(self): return str(self.file.name) + + + +class DataDir(models.Model): + name = models.CharField(max_length=2000, default="", blank=True, null=True) + is_root = models.BooleanField(default=False) + dirs = models.ManyToManyField('self', blank=True, related_name='dirs_in_dirs', symmetrical = False) + datafiles = models.ManyToManyField('DataFile', blank=True, related_name='files_in_dir') + visibleby = models.ManyToManyField(AgencyGroup, blank=True, related_name='visible_by_user') + date_created = models.DateTimeField(default = timezone.now) + date_last_modified = models.DateTimeField(default = timezone.now) + owner = models.ForeignKey(User, on_delete=models.PROTECT, blank=True, null=True) + agency = models.ForeignKey(Agency, on_delete=models.CASCADE) + parent = models.ForeignKey('DataDir', on_delete=models.CASCADE, blank=True, null=True, related_name='dir_in_dir') + + def __str__(self): + return str(self.name) + + +class DataFile(models.Model): + name = models.CharField(max_length=2000, default="", blank=True, null=True) + file = models.FileField(null=True, max_length=255, upload_to=user_directory_path) + date_created = models.DateTimeField(default = timezone.now) + date_last_modified = models.DateTimeField(default = timezone.now) + owner = models.ForeignKey(User, on_delete=models.PROTECT) + agency = models.ForeignKey(Agency, on_delete=models.CASCADE, default=None) + parent = models.ForeignKey(DataDir, on_delete=models.PROTECT, related_name='thisfileindir') + + def __str__(self): + return str(self.name) + diff --git a/cloud/templates/cloud/cloud_main.html b/cloud/templates/cloud/cloud_main.html index e49f215..3833a89 100644 --- a/cloud/templates/cloud/cloud_main.html +++ b/cloud/templates/cloud/cloud_main.html @@ -2,6 +2,7 @@ {% load crispy_forms_tags %} {% load counter_tag %} {% block content %} +