From f46bc8337e9c92c090ea487987d62b71cb802f3c Mon Sep 17 00:00:00 2001 From: emaric Date: Thu, 18 Jan 2024 14:29:48 +0100 Subject: [PATCH] PROSLI TESTOVI --- .../__pycache__/models.cpython-38.pyc | Bin 1020 -> 975 bytes .../__pycache__/serializers.cpython-38.pyc | Bin 1867 -> 1514 bytes .../__pycache__/tests.cpython-38.pyc | Bin 2747 -> 2704 bytes .../__pycache__/views.cpython-38.pyc | Bin 1910 -> 1629 bytes plovidba_aplikacija/models.py | 2 +- plovidba_aplikacija/serializers.py | 34 +++---- plovidba_aplikacija/tests.py | 4 +- plovidba_aplikacija/views.py | 18 +--- user/__pycache__/permissions.cpython-38.pyc | Bin 0 -> 1388 bytes user/__pycache__/serializers.cpython-38.pyc | Bin 0 -> 6319 bytes user/__pycache__/tests.cpython-38.pyc | Bin 0 -> 206 bytes user/__pycache__/utils.cpython-38.pyc | Bin 0 -> 1601 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 176 bytes ...er_options_alter_user_managers_and_more.py | 93 ++++++++++++++++++ ...lter_user_managers_and_more.cpython-38.pyc | Bin 0 -> 2014 bytes 15 files changed, 114 insertions(+), 37 deletions(-) create mode 100644 user/__pycache__/permissions.cpython-38.pyc create mode 100644 user/__pycache__/serializers.cpython-38.pyc create mode 100644 user/__pycache__/tests.cpython-38.pyc create mode 100644 user/__pycache__/utils.cpython-38.pyc create mode 100644 user/management/__pycache__/__init__.cpython-38.pyc create mode 100644 user/migrations/0002_organization_alter_user_options_alter_user_managers_and_more.py create mode 100644 user/migrations/__pycache__/0002_organization_alter_user_options_alter_user_managers_and_more.cpython-38.pyc diff --git a/plovidba_aplikacija/__pycache__/models.cpython-38.pyc b/plovidba_aplikacija/__pycache__/models.cpython-38.pyc index 02806990b3b35b640e2aac5a578a9d990973023e..17ad5fe8e5ff66f6fa5b4bccae10dcde3b6fdbb8 100644 GIT binary patch delta 247 zcmeyvex98-l$V!_0SHbiu1qbQ$ScceHBnn#-<=_aIfbQ#A%!KCF^jdCIf^ZXHJCw@ z?IlR5CgUx(-29Z(oMIr0CA2uTXyVKtl59YkB6c8gi!~`HF)v$_3Ct_voV<$Bj*(~b zOU6TtT$9%@RXFj1RPvw_ydW+MkYEMkVi6$0!N|kN$0z`V5E95@2CMMXWS^YI>}kR3 f3vvTk2%BlQIBbB9EX_%^V+0uqavl%RNFF8tw(~9| delta 270 zcmX@l{)e46l$V!_0SNdSmZt_zw#iz|(wt0S zwx1^FWItw4U!Ih##Ju!;z0#7*oZ=!DpsHJ}z97edRbeyg7KaVcwWT?!c8oyP#UN+# IFoGcy02k{y=l}o! diff --git a/plovidba_aplikacija/__pycache__/serializers.cpython-38.pyc b/plovidba_aplikacija/__pycache__/serializers.cpython-38.pyc index ff5b698f18317c2046237d37610c0ddfc63e2888..0bd93e72674ca86b0ee59f8174a177dd41d1de2e 100644 GIT binary patch delta 813 zcmZ8f%}x|S5bnR}ZD4<7{ei`R5d*sFMQ;)lV@xC-SPvTyZcH}Ac4KB4XV#v9C>g>5 z5>6aQUp*{G9)P1y;2U&eyc=J@n^gmQu_yI)byrPw)mQbS{(GkOu2!2Sur5~4jXbR_ z(zVk^&!nz&Nn4#3>u)$3VP$IohV-Z=J+@9X)$E99cF1~Mb1jZYPv}5P*n?xTMRi51 zBh{0~M35c^n{p?7-+gB*tpEb~;8Uti?B!NuVx656TO-67YF>y9lZO?2Pyi?@sBM5U zU;vYa5l~)%WX}N#I>wC18FL?kr*r4B<5iq)hl6MsdLE|XP40vFjHnV86*8$r6@+tbo)30EdhdZyLB+J8OVE%jA&*o|0nvpe` zN%Am{(ggF&N^0od*dY}`ECbgk#-5)S_li1AKXtd-&%UnvyN?>=1N~*5-eQ*^+S>)bMA)sG5 zB4uOj9Xu|(&vNnpJygqjX% L8eOW8M3wymzQL)8 literal 1867 zcmaJ>&2Aev5GJ`lS}Bs9q-}zv1=0YyED#9jtq6j`K#KIzs0EB%76J%*Nf|4xb`_Fx zVnIGBXnJX{z4YLmiabDHhS#3*3O#j(Yg=mvH5Z&6&T@w{-+aTDgF%nL_~qBX)T@w? ze{j(rU?Y1l&5s}?k+dXpno){6E7?5A0?-2)mf<|gB1(QBGLrFIB4b6T@g~SRVCl#N zED2Z=uykd2pQOEy;E|-%-7rcQqAXTQ8(2m^*F|MN(&ppMpAM#KX7`K3rLJmYiyZ%I z4+e`pnC3AEMKUT$##C?`z9(69_Kqc$>@CSU7%99H89@ZG+x2JdU!0$#v-5#^0P`74 zvjbvHr#Pvke=_);jZ)@~{`1Ni&j@v|r6myoL& z@7twRmHlS?y)rXfFUE_qJ}Tsa7|)MYb#$@h3teOOTZ34X#Z2VIRE%4w4Hw7mmaVx~ z3#|-z7PhFXF2?N>qN|5j5*>cB`;*io_}!;|9~4V0T|?sc$cB22p|(L7f{{*Ohwgw# znMTB1G%0IgVRZvnp%hkl3>tx0`gozvN>`%fN1|M+KA5kI_ww#h+I0!%m6$8eU61p5 zEte(gea>GkMcI7O2!QK7$9SF>s+2y?CgNTAq;I3Z`m_WFsACX_fx+w&3J*&HZ_UAQ zX<*Jc%(o!66x@(31oC_8Nw#5G^o~rZr(lxBO`Bw$cO(Qt0+1bd|0>yA%=8De1op=s zO!GO2?U`99X%Xj`i_CJNwDtwVy6CS^+yapXo?{xx<904Lzz6EOoad!5hVw1;yqi0)-=Hf(`}8JV zJ-!C2>w5)(y6BZBuvpVmD7sILLQ2pnAcK2EhBEpsI0-D92Gei?d)7e#ApF68rzhb$ z#2abUWOmU|#oqujT#BL5g#;jiMZNGX*3_p{!|j+`Cebw{C8$sMfJ3Q1Q}ofJ?#nY(L3<09$o{_+0osr4B8e7{WZly?{08blw2YA zS^+%3eLjl2pkcMonlENMVL#Gn9i=_2v$1@lq4!_cde-##T{#uiVLi<2%Ie}^cvzU> xp{h-DBgLM{rh%=u?JM8VZubT9yk*6cT7hlpo;+>tneVXwd~|&vP@moI{RfaJvHk!6 diff --git a/plovidba_aplikacija/__pycache__/tests.cpython-38.pyc b/plovidba_aplikacija/__pycache__/tests.cpython-38.pyc index 8523ccd6dda1c85677ede3e6e6c854ade9475b4f..1d0ffb75144166e3d7fc727ceb7231016a1e6bfc 100644 GIT binary patch delta 921 zcmZ`%&rcIU6yDixcW28ktrQT8g@6ZKq){Z%#1PaVXkvl{%7qJAnL&z`HgC4Z5P}Dd zo=n8KcrtM8-Gd47|1f*^;NM_kd~Zk!O>{T;cD{MPzqcm?9|yv?)(v$3mW+k!s5 zWFO>QYL0Oh*!qXPG1-p{`nsV=lq1j}%0}P}xQ;XLuY->)vcbU*6cE}B@^n5+LD6Ye z$z-ir)Fo$;E$i61J+f~dc?sX~cXGlJ`~y4cIkt`&vuLWw*I%3`uNjPCY!m?1O`Rr= zW@cWFG7b_(psX|MFN5LLxw3(>X-Ky0S38^bz zp+>5mG3};~h?5vDP|8l{HWc-2cD#QOZxxlaY|iXIuG7y7x|zLuZ-Cs%3Kt1V1XBc^ z6sISn-w+z;UXfIs@eB;1f@K}Jp9_~MXqaGxU{rr~r?N1CXZ_0^Es?HpiQp`;$yw6l z-oYJG2YLvMW4Acaiw0bfSxWbOI9}>~7pAW1pp342VXKK+NKx61_i8U;l=6-fT%knX z=`OO(IN99(Z#|f#fOF02-(1c7ORi~hoay#9ab~`XKK6@V1yP8k;7zV3|I|Rw#nf_^MjOSlV`nWT(MSG81ewvMrWc zRqS-<{mP(C!t`>(s|Twt_Z;7AyS#I}MdsxunYgy6ywRDur`G6Ol_*SsB(3x_(^#*$ z+kq#%%@(gWMBvT%o(MvnyQ1X>!ZzdwvS5YO5yIucQay|@CvfCfk|h~Q)%_$zHH4C+ zY7u#$RwvJa%`>NQ7EJ?y+Jy?Bgd6f(JSXS1+MKPHIC^ZA$Ka0-0S*Zt#P@C`EE2|r z8>}^lfDvt>YbIvTjj;OhuZJr z0~j)l=s8ASkB<%DVIsOIl@j$h5gU?EE{C`zct zM?mtCRRELc5o3sPd6bwoLLIMSBM|aSBA>+x@EoFBII1}+^ZI@f^>Pyt1)i46EpWgn zqw)PM4qRbY7HC#}*I%=!i2~NS2xyzFCfu&eX6jDc+vVfvxP+Jh*e7F-H=ST(>%Rx{ zNlfVJTK=Ho(ZA+4i-A{9M|X!e4GwHdBmgixN@EelR|o9r@>mjyFegJ;7TM(&rh=qEABb5Z%4K10=_>f*?8hYB1So485^5G>Qe-&=7Q2yaOfd9u~w-8cW>PP8&<( z&+s2yVq#)zZS5?b?qpvwGw;2;%#ZisdZ(F88o_&Nyoein>6P*Ga%Wj;A)e)QfjAYZ zaN~~j3VgkTSnl=v5o1^1TMRe#o5fsC7O0ouHY^?eX;t*Q?RSe{c#A?5Vva|aq>~5UOQ6-qWEcConcVbc9{MbN zWv-CI6kMS!nb&=1>TkhNmJL)5n1m|_Su^U2ti!-?R+&;b4cgVL&5E(ECcZRH)^HuT Q+rGJp3#tDUp(N-20%a*yQ2+n{ delta 678 zcmY+Bzi(495XXJClRly(*=-Gvalr-lTBv4TXx-vu_ zVStI59sUOfrY9jGF|#rtA#pZT1zUH%JH7Mw^Uhz&KdROHl}d@x`nr5)t`=6+4fwFS zwz{Fu>e?|&TDqehpA@bFScud&QNc zqHv%1K*XxzK8l--yk-sVkEi?3435(2*jo2XTz8wr<`SC(P$#nyxd>_?X@_bGR5@9k z0&lm;Y=hhpo3IHyha;HqH{vZLQHYhy*U-!t#%8%(kZ2N(({#3YoLTHplj6CwX1a$P zlpx72gJ2yFI>tCuWb??paV3eYvTRgc9B!HU~yYIYz z$HV>^h=xZTYZ>36{O?$JoQv(d_mm8}dGWwx4`&+Bc$sx_3Ic=M6~p=k%59MxgR*~z zEw?M@{Wj%ce&~fxJF)Ku#qI!yRP`1*BPjV!pT}xFas9%#a+qJhr5k@1F2Rr*FJJWk SQYNAQwyep diff --git a/plovidba_aplikacija/models.py b/plovidba_aplikacija/models.py index 4b7a7e9..b3f0763 100644 --- a/plovidba_aplikacija/models.py +++ b/plovidba_aplikacija/models.py @@ -1,7 +1,6 @@ from django.db import models from django.contrib.gis.db import models from django.contrib.auth.models import User -from django.utils import timezone class ObjektSigurnosti(models.Model): naziv = models.CharField(max_length=255) @@ -13,6 +12,7 @@ class ObjektSigurnosti(models.Model): fotografija = models.CharField(max_length=255, null=True, blank=True) id_ais = models.CharField(max_length=255, null=True, blank=True) simbol_oznaka = models.CharField(max_length=255, null=True, blank=True) + #operater = models.ForeignKey(User, on_delete=models.CASCADE) def __str__(self): return self.naziv diff --git a/plovidba_aplikacija/serializers.py b/plovidba_aplikacija/serializers.py index 47668bc..3aac045 100644 --- a/plovidba_aplikacija/serializers.py +++ b/plovidba_aplikacija/serializers.py @@ -2,30 +2,24 @@ from rest_framework import serializers from django.contrib.gis.geos import Point from .models import ObjektSigurnosti -class PointSerializer(serializers.Serializer): - lat = serializers.FloatField() - lon = serializers.FloatField() - - def to_representation(self, instance): - return {'lat': instance.y, 'lon': instance.x} - - def to_internal_value(self, data): - return Point(float(data['lon']), float(data['lat'])) - class ObjektSigurnostiSerializer(serializers.ModelSerializer): - lokacija = PointSerializer() class Meta: model = ObjektSigurnosti fields = '__all__' + + def create(self, validated_data): + lokacija_data = validated_data.pop('lokacija', None) + lokacija = Point(lokacija_data['lon'], lokacija_data['lat'], srid=3765) + objekt = ObjektSigurnosti.objects.create(lokacija=lokacija, **validated_data) + return objekt def to_representation(self, instance): - representation = super().to_representation(instance) - representation['lokacija'] = PointSerializer(instance.lokacija).data - return representation - - def create(self, validated_data): - lokacija_data = validated_data.pop('lokacija') - lokacija = Point(lokacija_data['lon'], lokacija_data['lat'], srid=3765) - objekt = ObjektSigurnosti.objects.create(lokacija=lokacija, **validated_data) - return objekt \ No newline at end of file + return {'lon': instance.lokacija.x, 'lat': instance.lokacija.y} + + def update(self, instance, validated_data): + lokacija_data = validated_data.pop('lokacija', None) + lokacija = Point(lokacija_data['lon'], lokacija_data['lat'], srid=3765) if lokacija_data else None + instance.lokacija = lokacija + instance.save() + return super().update(instance, validated_data) diff --git a/plovidba_aplikacija/tests.py b/plovidba_aplikacija/tests.py index 12ef9c0..c71f8b5 100644 --- a/plovidba_aplikacija/tests.py +++ b/plovidba_aplikacija/tests.py @@ -4,7 +4,7 @@ from django.urls import reverse from rest_framework import status from rest_framework.test import APITestCase from plovidba_aplikacija.models import ObjektSigurnosti -from plovidba_aplikacija.serializers import PointSerializer + # Testiranje listanja objekata class ObjektSigurnostiListTest(APITestCase): @@ -13,7 +13,6 @@ class ObjektSigurnostiListTest(APITestCase): response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertIn('results', response.data) # Testiranje stvaranja objekata class ObjektSigurnostiCreateTest(APITestCase): @@ -27,6 +26,7 @@ class ObjektSigurnostiCreateTest(APITestCase): } response = self.client.post(self.url, data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertTrue(ObjektSigurnosti.objects.filter(naziv='test-naziv').exists()) # Testiranje dohvaćanja pojedinog objekata diff --git a/plovidba_aplikacija/views.py b/plovidba_aplikacija/views.py index ca40c9d..aeca831 100644 --- a/plovidba_aplikacija/views.py +++ b/plovidba_aplikacija/views.py @@ -9,29 +9,19 @@ from django.shortcuts import get_object_or_404 from rest_framework.pagination import LimitOffsetPagination - class CustomObjektSigurnostiPagination(LimitOffsetPagination): default_limit = 20 - class ObjektSigurnostiList(generics.ListCreateAPIView): queryset = ObjektSigurnosti.objects.all().order_by("naziv") serializer_class = ObjektSigurnostiSerializer pagination_class = CustomObjektSigurnostiPagination permission_classes = [] - -def get_queryset(self): - user = self.request.user - return user.accounts.all() - -def perform_create(self, serializer): - serializer.save(operater=self.request.user) - -def get_serializer_class(self): - if self.request.method == "GET": - return ObjektSigurnostiSerializer - return self.serializer_class() + def get_serializer_class(self): + if self.request.method == "GET": + return ObjektSigurnostiSerializer + return self.serializer_class class ObjektSigurnostiDetail(generics.RetrieveUpdateDestroyAPIView): diff --git a/user/__pycache__/permissions.cpython-38.pyc b/user/__pycache__/permissions.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a64ae1422391e4d34158fcd98ecf3da83666f5f2 GIT binary patch literal 1388 zcmZuwJ#*VO7{&*`Ovy^>CjGqTIAl==xm|m`UQ%0jhQ{@sPAMmxzCo$SJ?_KX=K%x{ZSPDAb-E6CQ^X03gGL)U zPd14XBNMr(u9K{)~QZbzNOq> z(h~m?{ff#R9>9l(Z^08jH#)Jw;qZsycsM?Khb^gRX#{mL_c=DoB^QfqF5twws4~-! zZ7>&RD!Fo{rk&CAqak}a9KZPS(0Z*;C#!3wWF=U^m80H<^1Kwe(U!gv#!{fmb}qB3 z5t>znHhs@}T2vP{RN^&k8tXZ>Y;+&!9a0}boWEWkd^2&<=*h@5P?!07awzo7$a+#& z^0MIP*<^k#7ME+2)k>CPW+tw($woRosIP5rnrXJ#>p%+a@*o;xk91*1F!yj56GZ;G z`NE~%bj9F(@7$?%KSEfnm0N(ZR_+n3@RH6}`hj{nS!)SeftFvrrytyC^@9e5C-|A% z`b*zM`xM;<%V6o1^iIrW)14FL(jSdg0I#%@PqW1<(MsAU)<1ndK6qj2>DgFC zaISU$`mu5ZsIG%u2Totx-O_i|s;PSJ@PUJe4n6?rhicEQKXmX2z*3N0J%&~KV8bxu zMGoS+jaJYVeC+N&c5JTNWJ{9I;Yfc1fJltvRt_i29wnIk9e6RhdHO%1{3pywKd=#F zu8$eBF=KPd8|Y7FyNtbVvg+<6WQ@z4G38RKCk|XcY=Ns)-T#-`kqa&2M-SUQm*z8G z0@ZSm%Y{+J`5 N!;o6LLb|w1{{_%_WPAVs literal 0 HcmV?d00001 diff --git a/user/__pycache__/serializers.cpython-38.pyc b/user/__pycache__/serializers.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e0c2258205d3b1c4d979ec99b7dc4560f94f110a GIT binary patch literal 6319 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 H+p+!y!yS*_ literal 0 HcmV?d00001 diff --git a/user/management/__pycache__/__init__.cpython-38.pyc b/user/management/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3f88157122e7c31dab9545943ec49dfe4c1c322b GIT binary patch literal 176 zcmWIL<>g`kf&kW)sUZ3>h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o11>*(xTqIJKxa zCb*`{R!RNFI_QI8$3!Rlj=O?M9IsW4r#@|Yr zeH>Em(LcRQFEGFijmYenrjo7DitLUZIUPsqc3A3^9~$65>1P8V%vmg~?A z3|P>z2TfR{H4VzRG&W&*tZFIiHJ$f5+z2eV2`jKVwhQkZd0!)Mlj^)aS);7CboJY0 ze`9RTM8BzXIq;V1YR3LH*&7r+t*o-Vqph?3DC@ibljFU@etRZ&3EuxttUjRFqHDtH zLoEL`|GPm_Yg&=CkBX>|HKI+@7I1N}G$;?22iNfW;0Ao6u`L(aDzrXTQQ%DCZo(RT zmLnF-byi@Vm~lr|cdlqaoNz`d3hAw{uis%j<{9@x>FtTYkNLT#inKT!K9JVqt(GG_ zf0QMxC(zFjWPK=j1w7Wv<^5aS>_ zmW^H#XMQhZ82LQBc&Q>RSvm^+_(UvdO*H8v%YBX^q@p}yt0Y5Bi_RJ8)w_eWvYvZ(>Zd)-;Su%wgAC8`>XC<7Y`?4!WAht!RAETsELocdXM z!j+D(tZc_Y$kStSi~6~6Ra3UC^o|qW!&I!0uDh3YAe7i3;jwNa$1YBuF&{vd@=d?W zx1@F}%cGb-9igmI-)W{>y!b&msyt?f-zZRjDR17NV3P+(~%#lhLr|5#25%~PUzWczx7Q` zupKoip>9O!-RHpuQSX5wf~;;H`yv->+lo86ys!~wDD>1 zY(&6hce-1co@B|eI}DRk4o7}BI>Y#Mq7rA50iI-CHJ0x5mhaNB{+!K@iTMg6rs7y} zf@V!uhlu$x(7*()4bMc0I#Vo9e^r8Qy>d#9X<5tWoH>7Ky>wjCO!_*-S9$4IyVP+c zEl#AV&70V!($qVZrrtu*b!$|6&Rl&#RqJ`R>zB@-y3>|R2T#vsO))#4Lbb5Kk!Dy< ss+EaxO+SLrjLp2Pw@99`_X^(8u{W|CJH;S#Px|KY0-gNDM0f=5qGynhq literal 0 HcmV?d00001