فهرست منبع

edit views url dispatcher. updated "my projects".

Juan Carlos 4 سال پیش
والد
کامیت
fa37254b11
3فایلهای تغییر یافته به همراه75 افزوده شده و 38 حذف شده
  1. 25 32
      marktplatz/templates/marktplatz/myProducts.html
  2. 12 5
      marktplatz/urls.py
  3. 38 1
      marktplatz/views.py

+ 25 - 32
marktplatz/templates/marktplatz/myProducts.html

@@ -2,15 +2,14 @@
 {% load tags %}
 {% block script %}
 <script>
-    $(document).ready(function(){
-$('form').submit(function () {
-
+  $(document).ready(function(){
+  $('form').submit(function () {
 
     if () {
         alert('CID doubled');
         return false;
     }
-});
+  });
 
 });
 </script>
@@ -23,41 +22,35 @@ $('form').submit(function () {
 <h3 style="margin-top: 10px"> {{user.username}}'s products </h3>
 
 {% if object_list %}
- <table class="table table-sm table-hover">
-    <caption>Projekte</caption>
 
-     <thead class="">
-    <tr>
-        <th scope="col"></th>
-        <th scope="col"> Projekt</th>
-        <th scope="col"> </th>
-        <th scope="col"> Bearbeiten</th>
-        <th scope="col"> Löschen</th>
-        <th scope="col"> Freischaltung beantragen</th>
+<div class="container">
+    <div class="row">
+        <div class="col-sm-1">Bild</div>
+        <div class="col-sm-4">Projekt</div>
+        <div class="col-sm-3">Bearbeiten</div>
+        <div class="col-sm-2">Löschen</div>
+        <div class="col-sm-2"> Freischaltung beantragen</div>
+    </div>
+    <div class="dropdown-divider" style="margin-bottom: 10px;" ></div>
+
 
-    </tr>
     {% for product in object_list %}
-    <tr class="{{ product.pk }}"   >
-        <td  scope="col"><img src="{{product.media_set.first.image_small.url}}"  width="50" height="50" alt="{{ product.pk }}"> </td>
-        <td  scope="col"> <a href="{% url 'product-detail' product.pk %}">   {{product.name|upper }} </a></td>
-          <td scope="col">
-        {% for category in product.category.all %}
-        {{category.short_name}}{% if not forloop.last %} | {% endif %}
-             {% endfor %}
-        </td>
-        <td scope="col"> {% if product.edit %} <a href="{% url 'wohnprojekt-bearbeiten' product.pk %}"> Projekt bearbeiten</a> ; <a href="{% url 'add-image' product.pk %}"> Media bearbeiten </a> {% else %} Es kann nicht bearbeitet werden {% endif %} </td>
-        <td scope="col"> <a href="{% url 'product-delete' pk=product.pk %}" target="" rel="">Löschen</a>   </td>
-        <td scope="col"> <a href="{% url 'product-delete' pk=product.pk %}" target="" rel=""> {{product.type }}</a>   </td>
-        <td scope="col"> <a href="{% url 'product-publish' pk=product.pk %}" target="" rel="">Freischaltung</a>   </td>
+    <div class="row proj-{{ product.pk }}" id="proj-id-{{ product.pk }}">
+        <!-- image -->
+        <div class="col-sm-1"><img src="{{product.media_set.first.image_small.url}}"  width="50" height="50" alt="{{ product.pk }}"></div>
+        <!-- titel -->
+        <div class="col-sm-4"><a href="{% url 'product-detail' product.pk %}">   {{ product.name }} </a></div>
+        <div class="col-sm-3">{% if product.edit %} <a href="{% url 'projekt-bearbeiten-type' type=product.type pk=product.pk %}"> Projekt bearbeiten</a> <br> <a href="{% url 'add-image' product.pk %}"> Media bearbeiten </a> {% else %} Es kann nicht bearbeitet werden {% endif %} </div>
+        <div class="col-sm-2"><a href="{% url 'product-delete' pk=product.pk %}" target="" rel="">Löschen</a> </div>
+        <div class="col-sm-2"><a href="{% url 'product-publish' pk=product.pk %}" target="" rel="">Freischaltung</a></div>
+    </div>
+    <div class="dropdown-divider"></div>
 
-    </tr>
     {% endfor %}
+</div>
 
+<a href="{% url 'neues-wohnprojekt' %}"><button class="btn border-dark rounded-0 mybtn" type="submit">Add product </button> </a>
 
-
-
- </table>
-    <a href="{% url 'neues-wohnprojekt' %}"><button class="btn border-dark rounded-0 mybtn" type="submit">Add product </button> </a>
  {% else %}
 <div class="container-fluid">
 

+ 12 - 5
marktplatz/urls.py

@@ -40,11 +40,18 @@ urlpatterns = [
 
 
     # UPDATE
-    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('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('projekt-bearbeiten/BASE/<int:pk>', views.ProductUpdateView.as_view(),            name='projekt-bearbeiten'),
+    # path('projekt-bearbeiten/WOHN/<int:pk>', views.WohnProjektUpdateView.as_view(),        name='wohnprojekt-bearbeiten'),
+    # path('projekt-bearbeiten/MOBI/<int:pk>', views.MobilitaetsProjektUpdateView.as_view(), name='mobilitaetsprojekt-bearbeiten'),
+    # path('projekt-bearbeiten/ERNA/<int:pk>', views.ErnaehrungsProjektUpdateView.as_view(), name='ernaehrungsprojekt-bearbeiten'),
+    # path('projekt-bearbeiten/ENER/<int:pk>', views.EnergyProjektUpdateView.as_view(),      name='energyprojekt-bearbeiten'),
 
     # DELETE
     path('projekt/<int:pk>/delete', views.ProductDelete.as_view(), name='product-delete'),

+ 38 - 1
marktplatz/views.py

@@ -21,7 +21,7 @@ from django.urls import reverse, reverse_lazy
 from django.http import HttpResponseRedirect, Http404, HttpResponse
 from django.db import models
 from django.db.models import Count
-from django.views import generic
+from django.views import generic, View
 from django.views.generic import TemplateView
 from django.views.generic import FormView
 from django.views.generic.edit import *
@@ -751,6 +751,12 @@ class EnergyProjektCreateView(ProductCreateView):
 
 
 
+# class ProductUpdateView(LoginRequiredMixin, View):
+#
+#     def  dispatch(request, *args, **kwargs):
+#
+#     pass
+
 
 
 class ProductUpdateView(LoginRequiredMixin, UpdateView):
@@ -767,6 +773,7 @@ class ProductUpdateView(LoginRequiredMixin, UpdateView):
         context['info_txt'] = Template(config.INFO_TXT).render(Context(context))
         return context
 
+
     def get_object(self, queryset=None):
         obj = super().get_object()
         if (  obj.user_can_manage(self.request.user)  ):
@@ -794,6 +801,36 @@ class ProductUpdateView(LoginRequiredMixin, UpdateView):
 
 
 
+class ProductGenericUpdateView(ProductUpdateView):
+
+    model = Product
+    form_class = ProductForm
+
+
+    def  dispatch(self, request, *args, **kwargs):
+
+        if self.kwargs['type'] == 'BASE':
+            super().dispatch(request, *args, **kwargs)
+        elif self.kwargs['type'] == 'WOHN':
+            self.model = Wohnprojekt
+            self.form_class = WohnprojektForm
+            return super().dispatch(request, *args, **kwargs)
+        elif self.kwargs['type'] == 'MOBI':
+            self.model = MobilitaetsProjekt
+            self.form_class = MobilitaetsForm
+            return super().dispatch(request, *args, **kwargs)
+        elif self.kwargs['type'] == 'ERNA':
+            self.model = ErnaehrungsProjekt
+            self.form_class = ErnaehrungsForm
+            return super().dispatch(request, *args, **kwargs)
+        elif self.kwargs['type'] == 'ENER':
+            self.model = EnergyProjekt
+            self.form_class = EnergyForm
+            return super().dispatch(request, *args, **kwargs)
+
+        raise Http404('Keine Objekte gefunden' )
+
+
 class WohnProjektUpdateView(ProductUpdateView):
     model = Wohnprojekt
     form_class = WohnprojektForm