Jelajahi Sumber

fixed form action urls for update views

Juan Carlos 4 tahun lalu
induk
melakukan
43b7cc8e5c
3 mengubah file dengan 47 tambahan dan 31 penghapusan
  1. 24 8
      marktplatz/forms.py
  2. 7 4
      marktplatz/urls.py
  3. 16 19
      marktplatz/views.py

+ 24 - 8
marktplatz/forms.py

@@ -202,10 +202,12 @@ class SignUpForm(UserCreationForm):
         model = User
         fields = ('username', 'password1', 'password2')
 
-class ProductForm(forms.ModelForm, GeneralFields):
+#
+# CREATE
+#
 
-        # terms = forms.BooleanField(required=True,  label= ('Ich habe die Teilnahmebedingungen gelesen und akzeptiert.'))
 
+class ProductForm(forms.ModelForm, GeneralFields):
 
     class Meta:
         model = Product
@@ -215,7 +217,7 @@ class ProductForm(forms.ModelForm, GeneralFields):
         'edit','public','type', )
 
 
-    def __init__(self,*args, **kwargs):
+    def __init__(self,  *args, **kwargs):
        super(ProductForm, self).__init__(*args, **kwargs)
 
        self.fields['orga'].widget        = ListTextWidget(data_list=Product.ORGANIZATION,  name='orga_list')
@@ -232,6 +234,18 @@ class ProductForm(forms.ModelForm, GeneralFields):
        self.fields['orga'].help_text        = extend_help_text (self.fields['orga'].help_text, Product.ORGANIZATION)
        self.fields['rechtsform'].help_text  = extend_help_text (self.fields['rechtsform'].help_text, Product.RECHTSFORM)
 
+
+       #
+       # FORM HELPER
+       #
+
+       if 'instance' in kwargs:
+           self.redirect_to_pics    = reverse_lazy( 'projekt-bearbeiten-submit-pics', kwargs=  { 'type': self.Meta.type }  )
+           self.redirect_to_publish = reverse_lazy( 'projekt-bearbeiten-publish',     kwargs=  { 'type': self.Meta.type }  )
+       else:
+           self.redirect_to_pics    = reverse_lazy( 'neues-projekt-submit-pics',  kwargs =  { 'type': self.Meta.type }  )
+           self.redirect_to_publish = reverse_lazy( 'neues-projekt-publish',      kwargs =  { 'type': self.Meta.type }  )
+
        self.helper = FormHelper(  )
        self.helper.attrs = {'id': 'upload_mab', 'enctype': 'multipart/form-dat' }
        # self.helper.form_tag = True
@@ -270,29 +284,26 @@ class ProductForm(forms.ModelForm, GeneralFields):
        self.submit_layout = Layout(
         'terms',
 
-
-
         HTML("<br>"),
 
         Div(
           Div(
               ButtonHolder(
               Submit('submit', 'Speichern',
-              onclick='this.form.action="./";',
               css_class='border-thin mybtn')
               ),
           css_class='col-sm-4 col-4'),
           Div(
             ButtonHolder(
               Submit('submit', 'Speichern & Bilder hochladen',
-                onclick='this.form.action="{}";'.format(  reverse_lazy( 'neues-projekt-submit-pics', kwargs=  { 'type': self.Meta.type }  )  ),
+                onclick='this.form.action="{}";'.format(  self.redirect_to_pics  ),
                 css_class='border-thin mybtn')
           ),
           css_class='col-sm-4 col-4'),
           Div(
             ButtonHolder(
                 Submit('submit', 'Speichern und Freischaltung Anfragen',
-                  onclick='this.form.action="{}";'.format(  reverse_lazy( 'neues-projekt-publish', kwargs=  { 'type': self.Meta.type }  )  ),
+                  onclick='this.form.action="{}";'.format(  self.redirect_to_publish  ),
                   css_class='border-thin mybtn'
                   ),
              HTML("<br><p>Dein Projekt ist noch nicht für jede Person sichtbar, damit wir dein Projekt freischalten, klicke auf diesen Button.</p>")
@@ -429,6 +440,11 @@ class WohnprojektForm(ProductForm):
            self.submit_layout,
        )
 
+#
+# UPDATE
+#
+
+
 
 
 

+ 7 - 4
marktplatz/urls.py

@@ -37,10 +37,13 @@ urlpatterns = [
     # UPDATE
     path('projekt-bearbeiten/<slug:type>/<int:pk>', views.ProductGenericUpdateView.as_view(),     name='projekt-bearbeiten-type'),
     path('projekt-bearbeiten/<int:pk>',             views.ProductUpdateView.as_view(),            name='projekt-bearbeiten'),
-    path('wohnprojekt-bearbeiten/<int:pk>',         views.WohnProjektUpdateView.as_view(),        name='wohnprojekt-bearbeiten'),
-    path('mobilitaetsprojekt-bearbeiten/<int:pk>',  views.MobilitaetsProjektUpdateView.as_view(), name='mobilitaetsprojekt-bearbeiten'),
-    path('ernaehrungsprojekt-bearbeiten/<int:pk>',  views.ErnaehrungsProjektUpdateView.as_view(), name='ernaehrungsprojekt-bearbeiten'),
-    path('energyprojekt-bearbeiten/<int:pk>',       views.EnergyProjektUpdateView.as_view(),      name='energyprojekt-bearbeiten'),
+    path('up-submit-pics/<slug:type>/',  views.ProductUpdateAddPicsView.as_view(),     name='projekt-bearbeiten-submit-pics'),
+    path('up-publish/<slug:type>/',      views.ProductUpdatePublishView.as_view(),     name='projekt-bearbeiten-publish'),
+
+    # path('wohnprojekt-bearbeiten/<int:pk>',         views.WohnProjektUpdateView.as_view(),        name='wohnprojekt-bearbeiten'),
+    # path('mobilitaetsprojekt-bearbeiten/<int:pk>',  views.MobilitaetsProjektUpdateView.as_view(), name='mobilitaetsprojekt-bearbeiten'),
+    # path('ernaehrungsprojekt-bearbeiten/<int:pk>',  views.ErnaehrungsProjektUpdateView.as_view(), name='ernaehrungsprojekt-bearbeiten'),
+    # path('energyprojekt-bearbeiten/<int:pk>',       views.EnergyProjektUpdateView.as_view(),      name='energyprojekt-bearbeiten'),
 
     # DELETE
     path('projekt/<int:pk>/delete', views.ProductDelete.as_view(), name='product-delete'),

+ 16 - 19
marktplatz/views.py

@@ -770,13 +770,13 @@ class ProductUpdateView(LoginRequiredMixin, UpdateView):
     gotoPics = False
     # success_url =
 
-
-
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context['info_txt'] = Template(config.INFO_TXT).render(Context(context))
         return context
 
+    def get_success_url(self):
+        return reverse_lazy('meine-projekte')
 
     def get_object(self, queryset=None):
         obj = super().get_object()
@@ -798,11 +798,7 @@ class ProductUpdateView(LoginRequiredMixin, UpdateView):
         product.contact = Contact.objects.get(user = self.request.user)
         product.save()
 
-        if (self.gotoPics):
-            return HttpResponseRedirect(reverse('add-image', kwargs={'pk': product.pk}))
-        else:
-            return HttpResponseRedirect(  reverse('meine-projekte')  )
-
+        return HttpResponseRedirect(self.get_success_url())
 
 
 class ProductGenericUpdateView(ProductUpdateView):
@@ -834,21 +830,22 @@ class ProductGenericUpdateView(ProductUpdateView):
         raise Http404('Keine Objekte gefunden' )
 
 
-class WohnProjektUpdateView(ProductUpdateView):
-    model = Wohnprojekt
-    form_class = WohnprojektForm
+class ProductUpdateAddPicsView (ProductGenericUpdateView):
 
-class MobilitaetsProjektUpdateView(ProductUpdateView):
-    model = MobilitaetsProjekt
-    form_class = MobilitaetsForm
+    def get_success_url(self):
+        return reverse_lazy('add-image',  kwargs={'pk': self.object.id }  )
 
-class ErnaehrungsProjektUpdateView(ProductUpdateView):
-    model = ErnaehrungsProjekt
-    form_class = ErnaehrungsForm
 
-class EnergyProjektUpdateView(ProductUpdateView):
-    model = EnergyProjekt
-    form_class = EnergyForm
+class ProductUpdatePublishView (ProductGenericUpdateView):
+
+    def get_success_url(self):
+        return reverse_lazy('product-publish',  kwargs={'pk': self.object.id }  )
+
+
+
+#
+# USERS USERS USERS USERS USERS USERS USERS USERS
+#