From 9908fcad027fad4eaae0785371519f548786f4e0 Mon Sep 17 00:00:00 2001 From: emaric Date: Fri, 12 Jan 2024 10:11:50 +0100 Subject: [PATCH] prije restarta --- .../__pycache__/models.cpython-38.pyc | Bin 1020 -> 1020 bytes .../__pycache__/serializers.cpython-38.pyc | Bin 674 -> 1116 bytes .../__pycache__/urls.cpython-38.pyc | Bin 473 -> 529 bytes .../__pycache__/views.cpython-38.pyc | Bin 1618 -> 1934 bytes plovidba_aplikacija/models.py | 14 +++++-- plovidba_aplikacija/serializers.py | 12 ++++-- plovidba_aplikacija/urls.py | 4 +- plovidba_aplikacija/views.py | 37 ++++++++++++------ 8 files changed, 47 insertions(+), 20 deletions(-) diff --git a/plovidba_aplikacija/__pycache__/models.cpython-38.pyc b/plovidba_aplikacija/__pycache__/models.cpython-38.pyc index 98902cc95c480f41b078b7c9fb5fd2665524f7f7..a3796bd656c4c9e3eb896da46f750a6839fa1370 100644 GIT binary patch delta 23 dcmeyv{)e3}l$V!_0SIiE7N+{JZsdE%3;;&A1=9ck delta 23 dcmeyv{)e3}l$V!_0SNvcpP#yzWh37^W&l?s2dw}A diff --git a/plovidba_aplikacija/__pycache__/serializers.cpython-38.pyc b/plovidba_aplikacija/__pycache__/serializers.cpython-38.pyc index 2a36828db8f92ecdcd828b66365873eccabd54cb..115b4cc062aef3769a988c0c3b92e791d4652fdf 100644 GIT binary patch literal 1116 zcma)4zi-n(6uw_}oHj|Lim3}5QkF=p2%$<;u+UT@>S9?sxw%W_dMH(dk!Qap%N$E)4g}T?|c5fcirtC5m@TS7yXSA@*R`iB_KJ6?JgiFqNpJ` zjVUFHDQ;NKW1fpxQ1X^2p@L6D1)9!+dme{S2~`U!t>2ZFipFHnegGsgp#Ioto24dO zY3m+wOtgh$~=Ep+)nVt?&6S~!**v7G>NGqF#|rT81S)s7IVdc zOZc;W!10Fk02O;^P@n9eY90$k<3KUMfuEQ0UtXCA)-xwAnnGmXYkPeXUSXdyJujVPocwYN#^S_jPaWW1*_P`(CH&YGIada6l~1=i`R-;TC;c zL$eOESQ!l>-?Q)oa%w@mkA}>@@fV+->~Z delta 255 zcmcb^v51u~l$V!_0SM;anVtHXVIrRlquxYqNq0sDcZL*}6xJ4o6xLM6ES6^GDAp9V zUcCMSMVppC(HYNVJFpL~w!#kZ=)16P(2hVzB}VHXtr$0umgI qV7{Lw+vK;*N|Qxcg!Do3*fieau*uC&Da}c>V+QF4+0Vns!vp|3WH599 diff --git a/plovidba_aplikacija/__pycache__/urls.cpython-38.pyc b/plovidba_aplikacija/__pycache__/urls.cpython-38.pyc index c5327a157a2986453bbdcc8b31f14fd7bde74d88..a310f7ffc7a3e0c943286fab1559a3cdc469a241 100644 GIT binary patch delta 211 zcmcb~JduSrl$V!_0SNwnS&+JLBCjlC#6)dHn_RXiHb#aNh7^_@_FU#DW=4io#uV06 zmIWLO8B*9%*n63Qe2!FBFrO2|PiKnaOyLS<(Bz(2A;ZW#ajG8QEoPtmbWO%vtYw+0 z<;4>ZM>29vmSq(8DB=LxSHub;*gyn3khmpWkdt4QnUa(kpIDHSnVp!NnU#2pJ+U|* sr1=(iX;Dr=Vo6DAQC{&%h9W+YHonOzjG25O#|touF!C@9Fbezw09hS3FaQ7m delta 152 zcmbQpa+8@il$V!_0SNw`nV)Jkkyn<{W1_aA4kJS%_zyn1LE;ap2e8S!vSOpFbXgO@jn1<4BsFWB)~e$6kB#p~qf&>Nk{S*-9vooFQkpAHSKQUbI?u3+=amFXcaLmi0F& zcbg045MBR;L0Ez%R?0YIB-@FdI@~d`lelSxSB&f?)wITIMy^2ixCgl^YROt!=k>I~ z8%Fn%X4>K{W4D&H({;XXcFHGXM zQen3La&P|M<3IEu5di1REWsCOHE`4CuH$GcX&(4VK_~S zAR%ynT51E%X87;r(f5NFS}Hv_DW*bZ#dm|pQlAz1WH3qcSu9S&L3%E;*{vE(R8Dj) z7s5#rpM_C84hJ*DK_5)cRSREeqiY+3$Bg~~3l8=U$>>WA3l^j^b}uVe)@4<&E5>Wm z<7=|c8#l~!S2>}Omz6Ah8_)W^rdr2Qida=08axbTZ5}0EI$@HOUao{x!RdMFy`D;S zjz}pgoYDsmH{lJUB-GlV=Kkb1jyKD<^v#Lfqz_R%XkAw^c+6)mGiwordeMjs>PP6B ztS_vwHD>SF1smI!&XtAWGm2_WNnpdp+$lhDFN~smniX2@zzHeqYMBhx11QT_D#B4V zDJvKEB5O@$Z!yH+Gt3cve$j}3>IM$Q05Av=zzFsS9tP;nJNv@AbT8~H^H2bw-S08( zr0Z=LvmS?Y4Epk?l4zr zFn9eNCWcbW@mZCrFQDI}l<2*sbQj8;Qo+t_y-;Jd+7(k0eT7bAvn34XY+GzsBwXy2%5N)tRD|es7<56*4RsDm))= za&>lKidPY8zO%Bmcrq2G%LltKHqWf0R4d!}eN_dEimC#X=Rzjh6s5vHlvOsC#Afgc5Z$pI$4MN=N!oHLG*kj90#)UXkPwIp38jaM11qFpyxU;MvCFP=pi0Pr zUO|fd1860F5jR%+2u>UkvxcZpWvzLhdAsvw_Ty9QtLr^)HtPh(lb@e?&slog@MU@D z=_?@2W=_(WxYR|Tuv*fbc+@NXdeWNs)CY1vScAD|gt^@RVA3|mP3B?jaVPE|(?zDm zd}MrNHjvq5?IY6fEPotyLHUQTV?NH0qR~{Onarc&5Wd@OY)7<Im>GS3uoFp3uVH5{_pxu=}97bW5=0TLo zepNWAt*ROBG|Z(kgCtQ^!QW1~%$18j@osn$h+u+qBc3b!I7)IZ`lhlZPmYySE|EBc zwZb5evPCNX91#kOj#hUuakyHyiHt1o6zbrC11_B2Tz4FM|7H#Pj_|Z#OM|bWhM;`O zMHD2_DHp>q38WP6W8|rS5{#l$x0C+mZ|I!M#!63jC%Onak~V?^7FdSp;zhooR|@Kr z61sh{r9oeF*@W29-a6?XPVAyd3&Fwt3e61qTgATp{a#dVN7 z=2Fy)Z}yJez%+bazwB$!EpAnJANDk{rlfN2Pck-5_yheUrEb*46aMcreXG;{4MG^l AU;qFB diff --git a/plovidba_aplikacija/models.py b/plovidba_aplikacija/models.py index 611b0f4..645d4aa 100644 --- a/plovidba_aplikacija/models.py +++ b/plovidba_aplikacija/models.py @@ -18,10 +18,16 @@ class ObjektSigurnosti(models.Model): return self.naziv # class Log(models.Model): -# user = models.ForeignKey(User, on_delete=models.CASCADE) -# akcija = models.CharField(max_length=255) + +# AKCIJA_CHOICES = ( +# ('Brisanje', 'Brisanje'), +# ('Unos', 'Unos'), +# ('Uređivanje', 'Uređivanje') +# ) +# user = models.ForeignKey("user.User", null=True, related_name='user_logs', on_delete=models.SET_NULL) +# timestamp = models.DateTimeField(auto_now_add=True) +# akcija = models.CharField(max_length=255, choices=AKCIJA_CHOICES) # opis = models.TextField() -# vrijeme = models.DateTimeField(default=timezone.now) # def __str__(self): -# return f"{self.user.username} - {self.akcija} - {self.opis}" \ No newline at end of file +# return self.opis \ No newline at end of file diff --git a/plovidba_aplikacija/serializers.py b/plovidba_aplikacija/serializers.py index 963593b..e67cdb6 100644 --- a/plovidba_aplikacija/serializers.py +++ b/plovidba_aplikacija/serializers.py @@ -1,9 +1,15 @@ -# serializers.py - from rest_framework import serializers -from .models import ObjektSigurnosti +from .models import ObjektSigurnosti, Log class ObjektSigurnostiSerializer(serializers.ModelSerializer): class Meta: model = ObjektSigurnosti fields = '__all__' + +# class LogSerializer(serializers.ModelSerializer): + +# user_full_name = serializers.ReadOnlyField(source='user.full_name') + +# class Meta: +# model = Log +# fields = ('id', 'user', 'user_full_name', 'timestamp', 'akcija', 'opis') \ No newline at end of file diff --git a/plovidba_aplikacija/urls.py b/plovidba_aplikacija/urls.py index 6e7ec8c..f03f0a1 100644 --- a/plovidba_aplikacija/urls.py +++ b/plovidba_aplikacija/urls.py @@ -1,8 +1,10 @@ from django.urls import path, include -from .views import ObjektSigurnostiList, ObjektSigurnostiDetail +from .views import ObjektSigurnostiList, ObjektSigurnostiDetail, Log +from plovidba_aplikacija import views urlpatterns = [ path('objekti/', ObjektSigurnostiList.as_view(), name='objektisigurnosti-list'), path('objekti//', ObjektSigurnostiDetail.as_view(), name='objektisigurnosti-detail' ), + # path('logs/', views.Log.as_view(), name='log-list') ] diff --git a/plovidba_aplikacija/views.py b/plovidba_aplikacija/views.py index f316738..1eec7d7 100644 --- a/plovidba_aplikacija/views.py +++ b/plovidba_aplikacija/views.py @@ -4,37 +4,49 @@ from rest_framework.generics import ListAPIView from rest_framework.response import Response from rest_framework import status from rest_framework import generics -from .models import ObjektSigurnosti +from .models import ObjektSigurnosti, Log from .serializers import ObjektSigurnostiSerializer 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 - def get_queryset(self): #queryset je data iz database, listing and creating objects - queryset = ObjektSigurnosti.objects.all() - location = self.request.query_params.get('lokacija') - if location is not None: - queryset = queryset.filter(lokacija__icontains=location) - return queryset +def get_queryset(self): + user = self.request.user + return user.accounts.all() + # def get_queryset(self): #queryset je data iz database, listing and creating objects + # queryset = ObjektSigurnosti.objects.all() + # location = self.request.query_params.get('lokacija') + # if location is not None: + # queryset = queryset.filter(lokacija__icontains=location) + # return queryset - # def get_serializer_class(self): - # if self.request.method == "GET": - # return ObjektSigurnostiSerializer - # return self.serializer_class() +def perform_create(self, serializer): + #used to customize the behavior when creating an object, and in this case, + #it sets the operater field and creates a log entry for the created object. + serializer.save(operater=self.request.user) + instance = serializer.instance + self.create_log(instance) + +def get_serializer_class(self): + if self.request.method == "GET": + return ObjektSigurnostiSerializer + return self.serializer_class() class ObjektSigurnostiDetail(generics.RetrieveUpdateDestroyAPIView): #retrieving, updating, and deleting a specific object queryset = ObjektSigurnosti.objects.all() serializer_class = ObjektSigurnostiSerializer - + # def perform_update(self, serializer): # instance = serializer.save() # opis = "Korisnik je uredio objekt sigurnosti {} (ID: {})".format( @@ -48,3 +60,4 @@ class ObjektSigurnostiDetail(generics.RetrieveUpdateDestroyAPIView): #ret # instance.vrsta.naziv, instance.id # ) # Log.objects.create(user=self.request.user, akcija="Brisanje", opis=opis) +