فهرست منبع

added edit-contact aka 'meine-daten'

Juan Carlos 4 سال پیش
والد
کامیت
561396f58c
3فایلهای تغییر یافته به همراه54 افزوده شده و 31 حذف شده
  1. 3 0
      marktplatz/models.py
  2. 5 1
      marktplatz/urls.py
  3. 46 30
      marktplatz/views.py

+ 3 - 0
marktplatz/models.py

@@ -48,6 +48,9 @@ class Contact(models.Model):
     skype_name = CharField(verbose_name="Video-Konferenzen (Zoom, teams, google)", blank=True,max_length = 300)
     website = URLField(verbose_name="Website", blank=True)
 
+    def user_can_manage(self, user):
+        return user.contact.id == self.contact.id
+
     def __str__(self):
         return self.first_name + ' ' + self.last_name
 

+ 5 - 1
marktplatz/urls.py

@@ -11,9 +11,13 @@ urlpatterns = [
     path('about/', views.about, name='about'),
     path('submit/', views.submit, name='submit'),
     path('admin_panel/', views.AdminView.as_view(), name='admin-panel'),
-    path('register/', views.registerView.as_view(), name='register-view'),
     path('meine-projekte/', views.UsersProducts.as_view(), name='meine-projekte'),
 
+    # Contact
+    path('register/', views.registerView.as_view(), name='register-view'),
+    path('meine-daten/', views.ContactUpdateView.as_view(), name='meine-daten'),
+
+
     path('products-list/', views.ProductsListView.as_view(), name='products-list'),
     path('products-list/embed', views.ProductsListView.as_view(  embed=True,  ), name='products-list-embed'),
 

+ 46 - 30
marktplatz/views.py

@@ -74,6 +74,52 @@ def home(request):
         return  HttpResponseRedirect(reverse('products'))
 
 
+class genericView(TemplateView):
+    template_name =  'marktplatz/generic.html'
+    def get(self, request, *args, **kwargs):
+        instance = get_object_or_404(Wohnprojekt, pk=2 )
+        context = {}
+        context['object'] = model_to_dict ( instance )
+        context['object']['myfield'] = '----------------------------'
+        return render(request, self.template_name, context )
+
+
+
+class pagesView(TemplateView):
+    template_name =  'marktplatz/generic.html'
+    def get(self, request, *args, **kwargs):
+        context = {}
+        context['content_a'] = ""
+        context['content_b'] = config
+        # print (config.items() )
+
+        if 'page' in kwargs:
+            context['content_a'] = kwargs['page']
+            try:
+
+                context['content_a'] = '<br><h2>' + kwargs['page'] + "</h2><br><br>"
+                context['content_b'] = getattr(config , kwargs['page'], '')
+            except KeyError:
+                raise Http404
+            # if config.get ( kwargs['page'] ) != None:
+            #     context['content_b'] = config.get ( kwargs['page'] )
+        return render(request, self.template_name, context )
+
+
+
+class ContactUpdateView(LoginRequiredMixin, UpdateView):
+    template_name = 'marktplatz/form.html'
+    model = Contact
+    form_class = RegisterForm
+    # success_url =
+
+    def get_object(self, queryset=None):
+        obj = super().get_object()
+        if (  obj.user_can_manage(self.request.user)  ):
+            return obj
+        raise PermissionDenied
+
+
 class  SubscribeRequestView( SubscribeRequestView):
 
     form_class = NewsletterForm
@@ -139,36 +185,6 @@ class AgentNewsletterSubscribeView( SubscribeRequestView ):
     #     return super(SubscribeRequestView, self).dispatch( request, *args, **kwargs )
 
 
-class genericView(TemplateView):
-    template_name =  'marktplatz/generic.html'
-    def get(self, request, *args, **kwargs):
-        instance = get_object_or_404(Wohnprojekt, pk=2 )
-        context = {}
-        context['object'] = model_to_dict ( instance )
-        context['object']['myfield'] = '----------------------------'
-        return render(request, self.template_name, context )
-
-
-
-class pagesView(TemplateView):
-    template_name =  'marktplatz/generic.html'
-    def get(self, request, *args, **kwargs):
-        context = {}
-        context['content_a'] = ""
-        context['content_b'] = config
-        # print (config.items() )
-
-        if 'page' in kwargs:
-            context['content_a'] = kwargs['page']
-            try:
-
-                context['content_a'] = '<br><h2>' + kwargs['page'] + "</h2><br><br>"
-                context['content_b'] = getattr(config , kwargs['page'], '')
-            except KeyError:
-                raise Http404
-            # if config.get ( kwargs['page'] ) != None:
-            #     context['content_b'] = config.get ( kwargs['page'] )
-        return render(request, self.template_name, context )
 
 
 class SearchAgentCreate(CreateView):