Juan Carlos 5 rokov pred
rodič
commit
0b2852b2dc

+ 1 - 1
marktplatz/templates/marktplatz/file_upload.html

@@ -53,7 +53,7 @@
   {{warning}}
 </div>
 {% endif %}
-    <p style="margin-top: 10px">Bitte laden Sie nicht mehr als 7 Bilder und zwei Videos hoch.</p>
+    <p style="margin-top: 10px">Bitte laden Sie nicht mehr als sieben Bilder und zwei Videos hoch.</p>
 
     {% if video_count and media_count%}
     <p style="margin-top: 10px">Sie haben zu viele Medienelemente hochgeladen. Sie können Medien löschen, um sie erneut hochzuladen.</p>

+ 1 - 0
marktplatz/urls.py

@@ -11,6 +11,7 @@ urlpatterns = [
     path('about/', views.about, name='about'),
     path('submit/', views.submit, name='submit'),
     path('projekte/', views.ProductsView.as_view(), name='products'),
+    path('projekte/filter/<slug:filter>/', views.FilterProductsView.as_view(), name='products-filter-view'),
     path('projekte/search', views.SearchProductsView.as_view(), name='search-products'),
     path('products-list/', views.ProductsListView.as_view(), name='products-list'),
     path('products-list/embed', views.ProductsListView.as_view(  embed=True,  ), name='products-list-embed'),

+ 44 - 32
marktplatz/views.py

@@ -323,6 +323,50 @@ class ProductsView(generic.ListView):
 
     template_name = 'marktplatz/product_overview.html'
 
+
+
+class FilterProductsView(ProductsView):
+
+
+    def get_queryset(self, qfilter=None, **kwargs ):
+        # original qs
+        qs = super().get_queryset()
+
+        if qfilter!=None:
+            mfilter = {}
+            mfilter[qfilter] = True
+            qs =  qs.filter ( **mfilter  )
+
+        qs = qs.order_by('frei')
+
+        return qs.filter(public = True)
+
+    def get(self, request, *args, **kwargs):
+
+        qfilter = kwargs.get('filter', "")
+        if qfilter != "":
+            self.object_list = self.get_queryset(qfilter= qfilter  )
+
+
+        allow_empty = self.get_allow_empty()
+
+        # if not allow_empty:
+        #     # When pagination is enabled and object_list is a queryset,
+        #     # it's better to do a cheap query than to load the unpaginated
+        #     # queryset in memory.
+        #     if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):
+        #         is_empty = not self.object_list.exists()
+        #     else:
+        #         is_empty = not self.object_list
+        #     if is_empty:
+        #         raise Http404(_("Empty list and '%(class_name)s.allow_empty' is False.") % {
+        #             'class_name': self.__class__.__name__,
+        #         })
+        context = self.get_context_data()
+        return self.render_to_response(context)
+
+
+
 class SearchProductsView(ProductsView):
 
 
@@ -475,38 +519,6 @@ class ProductsListView(generic.ListView):
             kwargs['embed']  = True
         return super().get_context_data(**kwargs)
 
-    # def post(self, request, *args, **kwargs):
-    #     # print (request.POST.dict())
-    #     context = request.POST.dict()
-    #     public = {k: v for k, v in context.items() if k.startswith('product_p')}
-    #
-    #     for elemk in public:
-    #         # print(elemk + " -  " + public[elemk] )
-    #         keys = elemk.split(".")
-    #         current_product = Product.objects.get(pk=keys[1])
-    #         if public[elemk] == 'true':
-    #             current_product.public = True
-    #             current_product.save()
-    #         else:
-    #             current_product.public = False
-    #             current_product.save()
-    #
-    #     edit = {k: v for k, v in context.items() if k.startswith('product_e')}
-    #     # print (edit)
-    #     for elemk in edit:
-    #         # print(elemk + " -  " + edit[elemk] )
-    #         keys = elemk.split(".")
-    #         current_product = Product.objects.get(pk=keys[1])
-    #         if edit[elemk] == 'true':
-    #             current_product.edit = True
-    #             current_product.save()
-    #         else:
-    #             current_product.edit = False
-    #             current_product.save()
-    #
-    #     return HttpResponseRedirect('')
-
-
 
 
 class lightboximg(LoginRequiredMixin, TemplateView):