Browse Source

edit link to admin

boyska 4 years ago
parent
commit
96261bfa95
3 changed files with 11 additions and 1 deletions
  1. 6 0
      rxmap/rxmapp/models.py
  2. 1 0
      rxmap/rxmapp/urls.py
  3. 4 1
      rxmap/rxmapp/views.py

+ 6 - 0
rxmap/rxmapp/models.py

@@ -1,4 +1,5 @@
 from django.db import models
+from django.urls import reverse
 from datetime import datetime
 from django.contrib.auth.models import AbstractUser
 
@@ -43,6 +44,7 @@ class RapportoRicezione(models.Model):
 
     def serialize(self):
         d = {k: v for k, v in self.__dict__.items() if not k.startswith("_")}
+        d['id'] = self.id
         d["colore"] = self.colore
         d["radius"] = self.radius
         d["explaination"] = self.explaination
@@ -69,5 +71,9 @@ class RapportoRicezione(models.Model):
             self.author.display_name,
         )
 
+    @property
+    def edit_link(self):
+        return reverse('admin:rxmapp_rapportoricezione_change', kwargs=dict(object_id=self.id))
+
     def __str__(self):
         return "<Rapporto %s del %s>" % (self.pk, self.created)

+ 1 - 0
rxmap/rxmapp/urls.py

@@ -23,6 +23,7 @@ urlpatterns = [
     path("", TemplateView.as_view(template_name="index.html"), name="home"),
     path("add", views.add_page, name="add"),
     path("api/rapporti/get", views.rapporti_get),
+    path("api/rapporti/<int:pk>/edit", views.rapporto_edit_redirect),
     path("api/rapporti/add", views.rapporto_add),
     path("api/rapporti/delete", views.rapporto_delete),
 ]

+ 4 - 1
rxmap/rxmapp/views.py

@@ -1,4 +1,4 @@
-from django.shortcuts import render
+from django.shortcuts import render,redirect
 from django.http import JsonResponse
 from django.views.decorators.csrf import csrf_exempt
 
@@ -21,6 +21,9 @@ def rapporti_get(request):
         dict(rapporti=[r.serialize() for r in RapportoRicezione.objects.all()])
     )
 
+def rapporto_edit_redirect(request, pk):
+    r = RapportoRicezione.objects.get(pk=pk) # request.GET["rid"])
+    return redirect(r.edit_link)
 
 @csrf_exempt
 def rapporto_add(request):