Преглед изворни кода

Updated URLs for detail views. Changed overview query

Juan Carlos пре 4 година
родитељ
комит
e1af8f3c50

+ 6 - 0
marktplatz/models.py

@@ -147,6 +147,12 @@ class Product(models.Model):
     def type(self):
     def type(self):
             return "BASE"
             return "BASE"
 
 
+    @property
+    def viewURL(self):
+        return reverse ( 'product-detail-type', kwargs= {'pk': self.pk, 'type': self.type} )
+
+
+
     name            = CharField   ( 'Name', max_length = 128, help_text="Name des Projekts. Beispiel: Seestern", null = True, blank=True )
     name            = CharField   ( 'Name', max_length = 128, help_text="Name des Projekts. Beispiel: Seestern", null = True, blank=True )
     claim           = CharField   ( 'Claim / Untertitel', max_length = 256, help_text="Beispiel: Wohnprojekt Seestern Aspern", null = True, blank=True )
     claim           = CharField   ( 'Claim / Untertitel', max_length = 256, help_text="Beispiel: Wohnprojekt Seestern Aspern", null = True, blank=True )
     beschreibung    = TextField   ( 'Projektbeschreibung', max_length = 2048, help_text="Beispiel: Das Wohnprojekt Seestern Aspern wurde als eines von fünf Baugruppenprojekten in der Seestadt aspern auf dem Baufeld D13 realisiert. Der Seestern ist ein Projekt für Menschen jeden Alters, die Initiative übernehmen und mit anderen einen gemeinsamen Mehrwert in einem eigenen Wohnhaus schaffen wollen. Gut erreichbar mit der U2 und in der Nähe der Lobau. Ein Wohnprojekt, das von Anfang an von den zukünftigen BewohnerInnen mitgestaltet wurde und mit den Menschen wächst. In der gemeinsam formulierten Vision steht die lebendige Architektur, die Gemeinschaft und Privatsphäre im Vordergrund.", null = True, blank=True )
     beschreibung    = TextField   ( 'Projektbeschreibung', max_length = 2048, help_text="Beispiel: Das Wohnprojekt Seestern Aspern wurde als eines von fünf Baugruppenprojekten in der Seestadt aspern auf dem Baufeld D13 realisiert. Der Seestern ist ein Projekt für Menschen jeden Alters, die Initiative übernehmen und mit anderen einen gemeinsamen Mehrwert in einem eigenen Wohnhaus schaffen wollen. Gut erreichbar mit der U2 und in der Nähe der Lobau. Ein Wohnprojekt, das von Anfang an von den zukünftigen BewohnerInnen mitgestaltet wurde und mit den Menschen wächst. In der gemeinsam formulierten Vision steht die lebendige Architektur, die Gemeinschaft und Privatsphäre im Vordergrund.", null = True, blank=True )

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

@@ -25,7 +25,7 @@
     {% for product in product_list %}
     {% for product in product_list %}
     <tr class="">
     <tr class="">
       <td scope="col"><img src="{{product.media_set.first.image_small.url}}" width="50" height="50" alt="{{ product.pk }}"> </td>
       <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"> <a href="{% url 'product-detail-type' type=product.type pk=product.pk  %}"> {{product.name|upper }} </a></td>
       <!-- <td scope="col">
       <!-- <td scope="col">
         {% for category in product.category.all %}
         {% for category in product.category.all %}
         {{category.short_name}}{% if not forloop.last %} | {% endif %}
         {{category.short_name}}{% if not forloop.last %} | {% endif %}

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

@@ -39,7 +39,7 @@
         <!-- image -->
         <!-- image -->
         <div class="col-sm-1"><img src="{{product.media_set.first.image_small.url}}"  width="50" height="50" alt="{{ product.pk }}"></div>
         <div class="col-sm-1"><img src="{{product.media_set.first.image_small.url}}"  width="50" height="50" alt="{{ product.pk }}"></div>
         <!-- titel -->
         <!-- titel -->
-        <div class="col-sm-4"><a href="{% url 'product-detail' product.pk %}">   {{ product.name }} </a></div>
+        <div class="col-sm-4"><a href="{% url 'product-detail-type' type=product.type pk=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-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-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 class="col-sm-2"><a href="{% url 'product-publish' pk=product.pk %}" target="" rel="">Freischaltung</a></div>

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

@@ -37,7 +37,7 @@
 
 
   <div class="row">
   <div class="row">
     <div class="col-sm-2"><img src="{{product.media_set.first.image_small.url}}" width="50" height="50" alt="{{ product.pk }}"> </div>
     <div class="col-sm-2"><img src="{{product.media_set.first.image_small.url}}" width="50" height="50" alt="{{ product.pk }}"> </div>
-    <div class="col-sm-2"><a href="{% url 'product-detail' product.pk %}"> {{product.name|upper }} </a></div>
+    <div class="col-sm-2"><a href="{% url 'product-detail-type' type=product.type pk=product.pk  %}"> {{product.name|upper }} </a></div>
     <div class="col-sm-2"> <span>{{product.claim }}</span></div>
     <div class="col-sm-2"> <span>{{product.claim }}</span></div>
     <div class="col-sm-2"> <span>{{product.get_status_display }}</span></div>
     <div class="col-sm-2"> <span>{{product.get_status_display }}</span></div>
     <div class="col-sm-2"> <span>{{product.adresse }}, {{product.plz }} {{product.adresse_zusatz }} </span> </div>
     <div class="col-sm-2"> <span>{{product.adresse }}, {{product.plz }} {{product.adresse_zusatz }} </span> </div>

+ 2 - 2
marktplatz/templates/marktplatz/product_overview.html

@@ -349,7 +349,7 @@ $(document).ready(function(){
         <div class="mab-card-face mab-card-face--front toogle-overflow">
         <div class="mab-card-face mab-card-face--front toogle-overflow">
           <!--  -->
           <!--  -->
           <div class="mab-card {{product.ort}} {{product.status}} {{product.frei}} {{product.altneu}}   {% if product.frei == 'JAJA' %} mab-card-highlight {% endif %}" style="">
           <div class="mab-card {{product.ort}} {{product.status}} {{product.frei}} {{product.altneu}}   {% if product.frei == 'JAJA' %} mab-card-highlight {% endif %}" style="">
-            <a href="{% url 'product-detail' product.pk %}">
+            <a href="{% url 'product-detail-type' type=product.type pk=product.pk  %}">
               <div style="position: relative;text-align: center;">
               <div style="position: relative;text-align: center;">
                 <img class="{% for category in product.category.all %} {{category.short_name}} {% endfor %} card-img-top" data-otherclass="rounded-0"
                 <img class="{% for category in product.category.all %} {{category.short_name}} {% endfor %} card-img-top" data-otherclass="rounded-0"
                   src="{{product.media_set.first.image_norm.url}}" alt="image" loading="lazy">
                   src="{{product.media_set.first.image_norm.url}}" alt="image" loading="lazy">
@@ -426,7 +426,7 @@ $(document).ready(function(){
               </div>
               </div>
             </div>
             </div>
 
 
-            <a href="{% url 'product-detail' product.pk %}">
+            <a href="{% url 'product-detail-type' type=product.type pk=product.pk  %}">
               <div style="position: relative;text-align: center;">
               <div style="position: relative;text-align: center;">
 
 
                 &nbsp;
                 &nbsp;

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

@@ -27,7 +27,7 @@
     {% for Product in Product_list %}
     {% for Product in Product_list %}
     <tr class="{% get_sucsess Product %}"   >
     <tr class="{% get_sucsess Product %}"   >
         <td  scope="col"><img src="{{Product.media_set.first.image_small.url}}"  width="50" height="50" alt="image"> </td>
         <td  scope="col"><img src="{{Product.media_set.first.image_small.url}}"  width="50" height="50" alt="image"> </td>
-        <td  scope="col"> <a href="{% url 'product-detail' Product.pk %}">   {{Product.name|upper }} </a></td>
+        <td  scope="col"> <a href="{% url 'product-detail-type' type=product.type pk=product.pk  %}">   {{Product.name|upper }} </a></td>
          <td scope="col">
          <td scope="col">
         {% for category in Product.category.all %}
         {% for category in Product.category.all %}
         {{category.short_name}}{% if not forloop.last %} | {% endif %}
         {{category.short_name}}{% if not forloop.last %} | {% endif %}

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

@@ -44,7 +44,7 @@ $('form').submit(function () {
     {% for Product in Product_list %}
     {% for Product in Product_list %}
     <tr class="{% get_sucsess Product %}"   >
     <tr class="{% get_sucsess Product %}"   >
         <td  scope="col"><img src="{{Product.media_set.first.image_small.url}}"  width="50" height="50" alt="{{ Product.pk }}"> </td>
         <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"> <a href="{% url 'product-detail-type' type=product.type pk=product.pk  %}">   {{Product.name|upper }} </a></td>
          <td scope="col">
          <td scope="col">
         {% for category in Product.category.all %}
         {% for category in Product.category.all %}
         {{category.short_name}}{% if not forloop.last %} | {% endif %}
         {{category.short_name}}{% if not forloop.last %} | {% endif %}

+ 28 - 12
marktplatz/views.py

@@ -301,12 +301,31 @@ class ProductsView(generic.ListView):
 
 
     def get_queryset(self):
     def get_queryset(self):
         # original qs
         # original qs
-        qs = super().get_queryset()
+        # qs = super().get_queryset()
+
+        wohnprojekte = Wohnprojekt.objects.all()
+        mobilitaetsprojekte = MobilitaetsProjekt.objects.all()
+        ernaehrungsprojekte = ErnaehrungsProjekt.objects.all()
+        energyprojekte = EnergyProjekt.objects.all()
+
+        # qs = qs.order_by('frei')
+        qs = sorted ( itertools.chain(wohnprojekte, mobilitaetsprojekte, ernaehrungsprojekte, energyprojekte), key= lambda product: product.frei )
 
 
         self.user = self.request.user
         self.user = self.request.user
         user = self.user
         user = self.user
 
 
-        qs = qs.order_by('frei')
+        if user.groups.filter(name='submission').exists():
+            contact = Contact.objects.get(user=user)
+
+            # def filter_usr(product):
+            #     print( product.contact.pk, contact.pk,  product.contact.pk == contact.pk )
+            #     return product.contact.pk == contact.pk
+            # qs = list( filter(  filter_usr , qs ) )
+
+            qs = list ( filter(  lambda product: (product.contact.pk == contact.pk) , qs ) )
+
+            return qs
+
 
 
         if user.groups.filter(name='submission').exists():
         if user.groups.filter(name='submission').exists():
             contact = Contact.objects.get(user=user)
             contact = Contact.objects.get(user=user)
@@ -315,30 +334,28 @@ class ProductsView(generic.ListView):
         if user.is_superuser:
         if user.is_superuser:
             return qs
             return qs
 
 
-        qs = qs.filter(public = True)
+        # qs = qs.filter(public = True)
+        qs = list ( filter(  lambda product: (product.public == True) , qs ) )
 
 
         return qs
         return qs
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
             context = super().get_context_data(**kwargs)
             context = super().get_context_data(**kwargs)
-            user =self.request.user
-            context['user'] = user
-
-            context['textSearchForm'] = textSearchForm()
-
-            context['sponsor_cards'] =  Template( config.SPONSOR_CARDS ).render( Context(context) )
-            context['main_card'] =      Template( config.MAIN_CARD ).render( Context(context) )
 
 
             orts = {}
             orts = {}
             for product in context['product_list']:
             for product in context['product_list']:
 
 
                 if not product.ort in orts:
                 if not product.ort in orts:
                     orts[product.ort] = product.get_ort_display()
                     orts[product.ort] = product.get_ort_display()
-
             context['ort_dict'] = orts
             context['ort_dict'] = orts
 
 
+            user =self.request.user
+            context['user'] = user
             context['frei_list'] = Product.FREI
             context['frei_list'] = Product.FREI
             context['status_list'] = Product.STATUS
             context['status_list'] = Product.STATUS
+            context['sponsor_cards'] =  Template( config.SPONSOR_CARDS ).render( Context(context) )
+            context['main_card'] =      Template( config.MAIN_CARD ).render( Context(context) )
+            context['textSearchForm'] = textSearchForm()
 
 
             return context
             return context
 
 
@@ -360,7 +377,6 @@ class WohnprojekteView(ProductsView):
             context['frei_list'][0] =  ('JAJA', 'Platz frei')
             context['frei_list'][0] =  ('JAJA', 'Platz frei')
             context['altneu_list'] = Wohnprojekt.ALTNEU
             context['altneu_list'] = Wohnprojekt.ALTNEU
 
 
-
             return context
             return context