ソースを参照

new models; some template fixes; detail card updated

Juan Carlos 4 年 前
コミット
360f297355

+ 20 - 8
marktplatz/forms.py

@@ -299,23 +299,35 @@ class ProductForm(forms.ModelForm, GeneralFields):
 class MobilitaetsForm(ProductForm):
 
     class Meta():
-
         model =  MobilitaetsProjekt
         fields = ProductForm.Meta.fields + ( )
 
     def __init__(self,*args, **kwargs):
         super(MobilitaetsForm, self).__init__(*args, **kwargs)
 
-        # self.helper = FormHelper()
-        # self.helper.form_tag = False
-        # self.helper.layout = Layout(
-        #     self.product_layout,
-        # )
 
-class WohnprojektForm(ProductForm):
+class ErnaehrungsForm(ProductForm):
+
+    class Meta():
+        model =  ErnaehrungsProjekt
+        fields = ProductForm.Meta.fields + ( )
+
+    def __init__(self,*args, **kwargs):
+        super(ErnaehrungsForm, self).__init__(*args, **kwargs)
+
 
-    # terms = forms.BooleanField(required=True,  label= ('Ich habe die Teilnahmebedingungen gelesen und akzeptiert.'))
+class EnergyForm(ProductForm):
 
+    class Meta():
+        model =  EnergyProjekt
+        fields = ProductForm.Meta.fields + ( )
+
+    def __init__(self,*args, **kwargs):
+        super(EnergyForm, self).__init__(*args, **kwargs)
+
+
+
+class WohnprojektForm(ProductForm):
 
     class Meta:
         model = Wohnprojekt

+ 38 - 5
marktplatz/models.py

@@ -141,7 +141,11 @@ class Product(models.Model):
 
     @property
     def kind_of_product(self):
-            return "Allgemeines Produkt"
+            return "Basis Projekt"
+
+    @property
+    def type(self):
+            return "BASE"
 
     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 )
@@ -198,10 +202,10 @@ class Product(models.Model):
     #         return True
     #     return False
 
-    def obj_check_manageable(self, user, *args, **kwargs):
-        if self.user_can_manage(user):
-            return True
-        return False
+    # def obj_check_manageable(self, user, *args, **kwargs):
+    #     if self.user_can_manage(user):
+    #         return True
+    #     return False
 
     def __str__(self):
         return str(self.name)
@@ -245,6 +249,31 @@ class MobilitaetsProjekt(Product):
     def kind_of_product(self):
             return "Mobilitätsprojekt"
 
+    @property
+    def type(self):
+            return "MOBI"
+
+class ErnaehrungsProjekt(Product):
+
+    @property
+    def kind_of_product(self):
+            return "Ernährungsprojekt"
+
+    @property
+    def type(self):
+            return "ERNA"
+
+class EnergyProjekt(Product):
+
+    @property
+    def kind_of_product(self):
+            return "Energyprojekt"
+
+    @property
+    def type(self):
+            return "ENER"
+
+
 
 class Wohnprojekt(Product):
 
@@ -362,6 +391,10 @@ class Wohnprojekt(Product):
     def kind_of_product(self):
             return "Wohnprojekt"
 
+    @property
+    def type(self):
+            return "WOHN"
+
     eigentum          = CharField    ( 'Rechtliche Konstruktion', max_length = 6,    choices=EIGENTUM, help_text="Wähle aus der Liste aus!", null = True, blank=True )
     altneu            = CharField    ( 'Altbau/Neubau',  max_length = 4, choices=ALTNEU, help_text="Wähle aus der Liste aus!", null = True, blank=False )
     schwerpunkt       = CharField    ( 'Inhaltlicher Schwerpunkt',   max_length = 1024,  help_text="Beispiel: Wir sind nicht nur eine Baugruppe sondern ein Kulturverein mit über 80 Veranstaltungen im Jahr. Darüberhinaus befindet sich bei uns eine Wohngemeinschaft für unbegleitete, minderjährige Geflüchtete.", null = True, blank=True )

+ 3 - 3
marktplatz/templates/marktplatz/modal-share.html

@@ -25,7 +25,7 @@
 
             <div class="cursor-pointer" onclick="">
 
-              <a href="mailto:{{ product.wohnprojekt.email |obfuscate }}?subject={{  product.wohnprojekt  }}&body=Guten%20Tag!%0D%0A%0D%0AIch%20finde%20das%20folgende%20Projekt%20sehr%20interesant!%0D%0A%0D%0A{% fullurl 'product-detail-embed' pk=product.wohnprojekt.pk %}"><i class="fas fa-envelope"></i> <br>Send mail</a>
+              <a href="mailto:{{ object.email |obfuscate }}?subject={{  product.wohnprojekt  }}&body=Guten%20Tag!%0D%0A%0D%0AIch%20finde%20das%20folgende%20Projekt%20sehr%20interesant!%0D%0A%0D%0A{% fullurl 'product-detail-embed' pk=object.pk %}"><i class="fas fa-envelope"></i> <br>Send mail</a>
 
             </div>
 
@@ -42,7 +42,7 @@
 
 
 
-        <input type="text" value="&lt;iframe src=&quot;{% fullurl 'product-detail-embed' pk=product.wohnprojekt.pk %}&quot; style=&quot;border:0px #ffffff none;&quot; name=&quot;myiFrame&quot; scrolling=&quot;yes&quot; frameborder=&quot;0&quot; marginheight=&quot;0px&quot; marginwidth=&quot;0px&quot; height=&quot;400px&quot; width=&quot;600px&quot; allowfullscreen&gt;&lt;/iframe&gt;" id="iframecode">
+        <input type="text" value="&lt;iframe src=&quot;{% fullurl 'product-detail-embed' pk=object.pk %}&quot; style=&quot;border:0px #ffffff none;&quot; name=&quot;myiFrame&quot; scrolling=&quot;yes&quot; frameborder=&quot;0&quot; marginheight=&quot;0px&quot; marginwidth=&quot;0px&quot; height=&quot;400px&quot; width=&quot;600px&quot; allowfullscreen&gt;&lt;/iframe&gt;" id="iframecode">
         <div class="cursor-pointer" onclick = "function copyiframecode() {
               var copyText = document.getElementById('iframecode');
               copyText.select();
@@ -57,7 +57,7 @@
         <div class=""> &nbsp; </div>
         <div class=""> <span>Link</span> </div>
 
-        <input type="text" value="{% fullurl 'product-detail-embed' pk=product.wohnprojekt.pk %}" id="embedlink">
+        <input type="text" value="{% fullurl 'product-detail-embed' pk=object.pk %}" id="embedlink">
         <div class="cursor-pointer"  onclick = "function copyembedlinkcode() {
               var copyText = document.getElementById('embedlink');
               copyText.select();

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

@@ -47,6 +47,7 @@ $('form').submit(function () {
         </td>
         <td scope="col"> {% if product.edit %} <a href="{% url 'projekt-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>
 
     </tr>

+ 14 - 14
marktplatz/templates/marktplatz/product_detail.html

@@ -90,7 +90,7 @@
 					<div class="row product-color">
 						<div class="col-sm-4">{% include "marktplatz/modal-share.html" %}</div>
 							<div class="col-sm-4"> {% include "marktplatz/modal-sa.html" %}</div>
-			        <div class="col-sm-4">{% if product.wohnprojekt.email  %} {{ product.wohnprojekt.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}{% endif %}</div>
+			        <div class="col-sm-4">{% if product.email  %} {{ product.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}{% endif %}</div>
 			    </div>
 
 					<div class="">
@@ -113,7 +113,7 @@
 								Wohnung frei.
 								{% if product.kfrei %}
 									{{ product.kfrei }}
-									{% if product.wohnprojekt.email  %}<p>{{ product.wohnprojekt.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}</p>{% endif %}
+									{% if product.email  %}<p>{{ product.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}</p>{% endif %}
 								{% endif %}
 							{% endif %}
 
@@ -134,7 +134,7 @@
 						{{  product.mitmachen  }}
 					</div> -->
 
-					<p>{% if product.wohnprojekt.inseratstext  %}<strong>{% field_name product.wohnprojekt 'inseratstext' %}</strong>:<br>{{ product.wohnprojekt.inseratstext }} {% if product.wohnprojekt.email  %}<p>{{ product.wohnprojekt.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}</p>{% endif %}{% endif %}</p>
+					<p>{% if product.wohnprojekt.inseratstext  %}<strong>{% field_name product.wohnprojekt 'inseratstext' %}</strong>:<br>{{ product.wohnprojekt.inseratstext }} {% if product.email  %}<p>{{ product.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}</p>{% endif %}{% endif %}</p>
 
 					<div class="">
 						&nbsp;
@@ -195,26 +195,26 @@
 					<h5 class=" mediumkur">Kontakt</h5>
 					<br />
 
-					<p>{{ product.wohnprojekt.adresse }}{% if product.wohnprojekt.adresse_zusatz  %},	{{ product.wohnprojekt.adresse_zusatz }}{% endif %}{% if product.wohnprojekt.plz  %}, {{ product.wohnprojekt.plz }}{% endif %}{% if product.wohnprojekt.ort %}, {{ product.wohnprojekt.get_ort_display }}{% endif %}</p>
+					<p>{{ product.adresse }}{% if product.adresse_zusatz  %},	{{ product.adresse_zusatz }}{% endif %}{% if product.plz  %}, {{ product.plz }}{% endif %}{% if product.ort %}, {{ product.get_ort_display }}{% endif %}</p>
 
 					<div class="row">
 							<div class="col-sm-4">
-								{% if product.wohnprojekt.email  %}<p>{{ product.wohnprojekt.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}</p>{% endif %}
+								{% if product.email  %}<p>{{ product.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}</p>{% endif %}
 
 							</div>
 							<div class="col-sm-8">
-									{% if product.wohnprojekt.email  %}<p><a href="mailto:{{ product.wohnprojekt.email | obfuscate }}" >{{ product.wohnprojekt.email | obfuscate }}</a></p>{% endif %}
+									{% if product.email  %}<p><a href="mailto:{{ product.email | obfuscate }}" >{{ product.email | obfuscate }}</a></p>{% endif %}
 
 							</div>
 					</div>
 
 					<div class="row">
 							<div class="col-sm-4">
-								{% if product.wohnprojekt.website  %}<p><a href="{{  product.wohnprojekt.website }}" target="_blank" rel="noopener">Webseite</a></p>{% endif %}
+								{% if product.website  %}<p><a href="{{  product.website }}" target="_blank" rel="noopener">Webseite</a></p>{% endif %}
 
 							</div>
 							<div class="col-sm-8">
-								{% if product.wohnprojekt.website  %}<p><a href="{{  product.wohnprojekt.website }}" target="_blank" rel="noopener">{{  product.wohnprojekt.website }}</a></p>{% endif %}
+								{% if product.website  %}<p><a href="{{  product.website }}" target="_blank" rel="noopener">{{  product.website }}</a></p>{% endif %}
 
 							</div>
 					</div>
@@ -227,12 +227,12 @@
 					<h5 class=" mediumkur">Steckbrief</h5>
 					<br />
 
-					<p>{{ product.wohnprojekt.kind_of_product }}, gegründet {{ product.wohnprojekt.gruendungsjahr }}{% if product.wohnprojekt.betriebgenommen  %}, in Betrieb genommen: {{ product.wohnprojekt.betriebgenommen }}{% endif %}.</p>
-					<p><strong>Rechtsform</strong>: {{ product.wohnprojekt.rechtsform }}</p>
-					<p>{{ product.wohnprojekt.artmodell }}</p>
-					<p>{% if product.wohnprojekt.orga  %}<strong>{% field_name product.wohnprojekt 'orga' %}</strong>: {{ product.wohnprojekt.orga }}{% endif %}</p>
-					<p>{% if product.wohnprojekt.eigentum  %}<strong>{% field_name product.wohnprojekt 'eigentum' %}</strong>: {{ product.wohnprojekt.get_eigentum_display }}{% endif %}</p>
-					<p>{% if product.wohnprojekt.gprojekte  %}<strong>Gemeinschaftliche Projekte</strong>: {{ product.wohnprojekt.gprojekte }}{% endif %}</p>
+					<p>{{ product.kind_of_product }}, gegründet {{ product.gruendungsjahr }}{% if product.betriebgenommen  %}, in Betrieb genommen: {{ product.betriebgenommen }}{% endif %}.</p>
+					<p><strong>Rechtsform</strong>: {{ product.rechtsform }}</p>
+					<!-- XXX --> <p>{{ product.wohnprojekt.artmodell }}</p>
+					<p>{% if product.orga  %}<strong>{% field_name product.wohnprojekt 'orga' %}</strong>: {{ product.orga }}{% endif %}</p>
+					<!-- XXX --> <p>{% if product.wohnprojekt.eigentum  %}<strong>{% field_name product.wohnprojekt 'eigentum' %}</strong>: {{ product.wohnprojekt.get_eigentum_display }}{% endif %}</p>
+					<!-- XXX -->  <p>{% if product.wohnprojekt.gprojekte  %}<strong>Gemeinschaftliche Projekte</strong>: {{ product.wohnprojekt.gprojekte }}{% endif %}</p>
 
 
 

+ 42 - 135
marktplatz/templates/marktplatz/product_detail_card.html

@@ -10,175 +10,82 @@
 <script src="{% static 'featherlight.gallery.min.js' %}" ></script>
 
 <script>
-	$(document).ready(function(){
-
-	$('.gallery').featherlightGallery({
+	$(document).ready(function() {
+		$('.gallery').featherlightGallery({
 			previousIcon: '«',
 			nextIcon: '»',
 			galleryFadeIn: 250,
 			openSpeed: 250,
 		});
-
 	});
-
-
 </script>
 
 
-
 {% endblock %}
 
 {% block content %}
 
 
 <style>
+	.image-detail {
 
+		margin: 40px 60px 40px 0px;
+	}
 
-.image-detail{
-
-	margin:40px 60px 40px 0px;
-
-}
-
-
-
-@media (min-width: 500px) {
-
-
-}
-
-
+	@media (min-width: 500px) {}
 </style>
 
 <!-- <hr style="color: black; background-color: black; margin-top: 0px; width: 130%; display: flex; margin-left: -20px; margin-right:20px "> -->
 
 <div class="container " style="">
-		<div class="row gemain-color">
-				<div class="col-sm-3">
-
-
-				</div>
-
-
-
- 			<!-- *************************************************************** -->
-
-
-				<div class="col-sm-6">
-
-					<h2 class="titlepro" style="margin-top: 7px; font-weight: bold">{{ product.name }} </h2>
-
-					<p class="lead kur"> {{ product.claim }}</p>
-
-
-					<div class="image-detail" style="">
-					<img href="{{product.media_set.first.image_big.url}}"  src="{{product.media_set.first.image_norm.url }}" class="gallery img-fluid img-responsive"  alt="" style="width: 100%;height: auto;vertical-align: middle;">
-
-					</div>
-
-
-					<br />
-					<h5 class=" mediumkur">Steckbrief</h5>
-					<br />
-
-					<p>{{ product.wohnprojekt.kind_of_product }}, gegründet {{ product.wohnprojekt.gruendungsjahr }}, in Betrieb genommen: {{ product.wohnprojekt.betriebgenommen }}.</p>
-					<p>Rechtsform: {{ product.wohnprojekt.rechtsform }}</p>
-					<p>{{ product.wohnprojekt.artmodell }}</p>
-					<p>{{ product.wohnprojekt.orga }}</p>
-					<p>{% if product.wohnprojekt.eigentum  %}{% field_name product.wohnprojekt 'eigentum' %}: {{ product.wohnprojekt.get_eigentum_display }}{% endif %}</p>
-					<p>Gemeinschaftliche Projekte: {{ product.wohnprojekt.gprojekte }}</p>
-					<p>Gemeinschaftsräume: {{ product.wohnprojekt.gemeinschaftr }}
-						{% if product.wohnprojekt.kgemeinschaftr  %} - {{ product.wohnprojekt.kgemeinschaftr }}{% endif %}
-					</p>
-
-					<p>{% if product.wohnprojekt.sonderwohnformen  %}{% field_name product.wohnprojekt 'sonderwohnformen' %}: {{ product.wohnprojekt.sonderwohnformen }}{% endif %}</p>
-					<p>Besondere Zielgruppen: {{ product.wohnprojekt.zielgruppen }}</p>
-					<p>Freiraumangebote: {{ product.wohnprojekt.freiraumangebote }}</p>
-					<p>{% if product.wohnprojekt.schwerpunkt  %}{% field_name product.wohnprojekt 'schwerpunkt' %}: {{ product.wohnprojekt.schwerpunkt }}{% endif %}</p>
-					<p>{{ product.wohnprojekt.oekologie }}</p>
-
-
-					<br />
-					<h5 class=" mediumkur">Kontakt</h5>
-					<br />
-
-					<p>{{ product.wohnprojekt.adresse }}, {{ product.wohnprojekt.get_ort_display }}</p>
-
-					{% if product.wohnprojekt.email  %}<p>{{ product.wohnprojekt.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}</p>{% endif %}
-					<p><a href="{{  product.wohnprojekt.website }}">Webseite</a></p>
-
-
-
-			    <!-- <p>{% if product.wohnprojekt.altneu  %}{% field_name product.wohnprojekt 'altneu' %}: {{ product.wohnprojekt.altneu }}{% endif %}</p> -->
-
-			    <!-- <p>{% if product.wohnprojekt.artmodell  %}{% field_name product.wohnprojekt 'artmodell' %}: {{ product.wohnprojekt.artmodell }}{% endif %}</p> -->
-			    <!-- <p>{% if product.wohnprojekt.bautraeger  %}{% field_name product.wohnprojekt 'bautraeger' %}: {{ product.wohnprojekt.bautraeger }}{% endif %}</p> -->
-			    <!-- <p>{% if product.wohnprojekt.aerwachsene  %}{% field_name product.wohnprojekt 'aerwachsene' %}: {{ product.wohnprojekt.aerwachsene }}{% endif %}</p>
-			    <p>{% if product.wohnprojekt.akinder  %}{% field_name product.wohnprojekt 'akinder' %}: {{ product.wohnprojekt.akinder }}{% endif %}</p>
-			    <p>{% if product.wohnprojekt.amitglieder  %}Anzahl an Mitglieder: {{ product.wohnprojekt.amitglieder }}{% endif %}</p> -->
-
-			    <!-- <p>{% if product.wohnprojekt.awohnungen  %}{% field_name product.wohnprojekt 'awohnungen' %}: {{ product.wohnprojekt.awohnungen }}{% endif %}</p> -->
-			    <!-- <p>{% if product.wohnprojekt.wohnflaeche  %}{% field_name product.wohnprojekt 'wohnflaeche' %}: {{ product.wohnprojekt.wohnflaeche }}{% endif %}</p>
-			    <p>{% if product.wohnprojekt.gewerbeflaechen  %}{% field_name product.wohnprojekt 'gewerbeflaechen' %}: {{ product.wohnprojekt.gewerbeflaechen }}{% endif %}</p>
-			    <p>{% if product.wohnprojekt.gemeinschaftsflaeche  %}{% field_name product.wohnprojekt 'gemeinschaftsflaeche' %}: {{ product.wohnprojekt.gemeinschaftsflaeche }}{% endif %}</p>
-			    <p>{% if product.wohnprojekt.sonstige_flaechen  %}{% field_name product.wohnprojekt 'sonstige_flaechen' %}: {{ product.wohnprojekt.sonstige_flaechen }}{% endif %}</p>
-			    <p>{% if product.wohnprojekt.flaeche  %}Fläche: {{ product.wohnprojekt.flaeche }}{% endif %}</p> -->
-
-			    <!-- <p>{% if product.wohnprojekt.gemeinschaftr  %}{% field_name product.wohnprojekt 'gemeinschaftr' %}: {{ product.wohnprojekt.gemeinschaftr }}{% endif %}</p> -->
-			    <!-- <p>{% if product.wohnprojekt.kgemeinschaftr  %}{% field_name product.wohnprojekt 'kgemeinschaftr' %}: {{ product.wohnprojekt.kgemeinschaftr }}{% endif %}</p> -->
-			    <!-- <p>{% if product.wohnprojekt.sonderwohnformen  %}{% field_name product.wohnprojekt 'sonderwohnformen' %}: {{ product.wohnprojekt.sonderwohnformen }}{% endif %}</p> -->
-
-			    <!-- <p>{% if product.wohnprojekt.parbeiten  %}{% field_name product.wohnprojekt 'parbeiten' %}: {{ product.wohnprojekt.parbeiten }}{% endif %}</p> -->
-
-			    <!-- <p>{% if product.wohnprojekt.bauweise  %}{% field_name product.wohnprojekt 'bauweise' %}: {{ product.wohnprojekt.bauweise }}{% endif %}</p> -->
-			    <!-- <p>{% if product.wohnprojekt.zielgruppen  %}{% field_name product.wohnprojekt 'zielgruppen' %}: {{ product.wohnprojekt.zielgruppen }}{% endif %}</p> -->
-			    <!-- <p>{% if product.wohnprojekt.gprojekte  %}{% field_name product.wohnprojekt 'gprojekte' %}: {{ product.wohnprojekt.gprojekte }}{% endif %}</p> -->
-			    <!-- <p>{% if product.wohnprojekt.oekologie  %}{% field_name product.wohnprojekt 'oekologie' %}: {{ product.wohnprojekt.oekologie }}{% endif %}</p> -->
-			    <!-- <p>{% if product.wohnprojekt.freiraumangebote  %}{% field_name product.wohnprojekt 'freiraumangebote' %}: {{ product.wohnprojekt.freiraumangebote }}{% endif %}</p> -->
-
-
-
-
-				</div>
-
-				<div class="col-sm-3">
-
-
-				</div>
-
-
+	<div class="row gemain-color">
+		<div class="col-sm-3">
+			<!-- --- -->
 		</div>
-
+		<div class="col-sm-6">
+			<h2 class="titlepro" style="margin-top: 7px; font-weight: bold">{{ object.name }} </h2>
+			<p class="lead kur"> {{ object.claim }}</p>
+			<div class="image-detail" style="">
+				<img href="{{object.media_set.first.image_big.url}}" src="{{object.media_set.first.image_norm.url }}" class="gallery img-fluid img-responsive" alt="" style="width: 100%;height: auto;vertical-align: middle;">
+			</div>
+			<br />
+			<h5 class=" mediumkur">Steckbrief</h5>
+			<br />
+			<p>Gegründet {{ object.gruendungsjahr }}, in Betrieb genommen: {{ object.betriebgenommen }}.</p>
+			<p>Rechtsform: {{ object.rechtsform }}</p>
+			<p>{{ object.artmodell }}</p>
+			<p>{{ object.orga }}</p>
+			<p>{% if object.eigentum  %}{% field_name object.wohnprojekt 'eigentum' %}: {{ object.get_eigentum_display }}{% endif %}</p>
+			<p>Gemeinschaftliche Projekte: {{ object.gprojekte }}</p>
+			<p>Gemeinschaftsräume: {{ object.gemeinschaftr }}
+				{% if object.kgemeinschaftr  %} - {{ object.kgemeinschaftr }}{% endif %}
+			</p>
+			<p>{% if object.sonderwohnformen  %}{% field_name object.wohnprojekt 'sonderwohnformen' %}: {{ object.sonderwohnformen }}{% endif %}</p>
+			<p>Besondere Zielgruppen: {{ object.zielgruppen }}</p>
+			<p>Freiraumangebote: {{ object.freiraumangebote }}</p>
+			<p>{% if object.schwerpunkt  %}{% field_name object.wohnprojekt 'schwerpunkt' %}: {{ object.schwerpunkt }}{% endif %}</p>
+			<p>{{ object.oekologie }}</p>
+			<br />
+			<h5 class=" mediumkur">Kontakt</h5>
+			<br />
+			<p>{{ object.adresse }}, {{ object.get_ort_display }}</p>
+			{% if object.email  %}<p>{{ object.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}</p>{% endif %}
+			<p><a href="{{  object.website }}">Webseite</a></p>
+		</div>
+		<div class="col-sm-3">
+		</div>
+	</div>
 </div>
 
 
 <div class="container">
-
 	<div class="row" style="margin-top: 10px">
-
 		<div class="col-sm-6">
 
-
-
-
-
-
 		</div>
 		<div class="col-sm-4">
-
-			 				 {% for field, value in product.wohnprojekt %}
-			          {% if value and not field == "ID" %}
-			           <!-- <p class="fieldname"><strong class="mediumkur"> {{ field }} :</strong> {{ value }}</p> -->
-			          {% endif %}
-			          {% endfor %}
-
 		</div>
-
 	</div>
-
 </div>
 
-
-
-
 {% endblock %}

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

@@ -351,7 +351,7 @@ $(document).ready(function(){
           <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 %}">
               <div style="position: relative;text-align: center;">
-                <img class="{% if user.is_authenticated %}{% get_vote_class product user %} {% endif %} {% 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">
                 <div class="mab-product-title" style=""><span>{{product.name }}</span></div>
 
@@ -370,7 +370,7 @@ $(document).ready(function(){
                 {% if request.user_agent.browser.family != 'Safari'  %}
                 <button id='product_{{product.pk}}_flipper' onclick="" class="border-thin mybtn flipper" data-flip-card="product_{{product.pk}}_card" style=""><i class="fas fa-sync-alt"></i> Steckbrief</button>
                 {% endif %}
-                <!-- <button id='product_{{product.pk}}_teilen' onclick="location.href = '{% url 'product-detail-card-embed' pk=product.pk %}'" class="border-thin mybtn" style=""><i class="fas fa-share"></i> Teilen</button> -->
+                <!-- <button id='product_{{product.pk}}_teilen' onclick="location.href = '{% url 'projekt-card-embed' pk=product.pk %}'" class="border-thin mybtn" style=""><i class="fas fa-share"></i> Teilen</button> -->
                 <button id='product_{{product.pk}}_{{product.frei}}' data-toggler='{{product.frei}}' class="border-thin mybtn btn-toggle {{product.frei}}" style="">#{{product.get_frei_display}}</button>
                 <button id='product_{{product.pk}}_{{product.status}}' data-toggler='{{product.status}}' class="border-thin mybtn btn-toggle {{product.status}}" style="">#{{product.get_status_display}}</button>
                 <button id='product_{{product.pk}}_{{product.ort}}' data-toggler='{{product.ort}}' class="border-thin mybtn btn-toggle {{product.ort}}" style="">#{{product.get_ort_display}}</button>

+ 349 - 0
marktplatz/templates/marktplatz/wohnprojekt_detail.html

@@ -0,0 +1,349 @@
+{% extends "base_generic.html" %}
+{% load fullurl %}
+{% load tags %}
+{% load static %}
+{% load email_obfuscator %}
+
+
+{% block script %}
+
+<link href="{% static 'featherlight.min.css' %}" type="text/css" rel="stylesheet" />
+<script src="{% static 'featherlight.min.js' %}"></script>
+<link href="{% static 'featherlight.gallery.min.css' %}" type="text/css" rel="stylesheet" />
+<script src="{% static 'featherlight.gallery.min.js' %}"></script>
+
+<script>
+	$(document).ready(function() {
+
+		$('.gallery').featherlightGallery({
+			previousIcon: '«',
+			nextIcon: '»',
+			galleryFadeIn: 250,
+			openSpeed: 250,
+		});
+
+	});
+</script>
+
+<style>
+	.image-detail {
+
+		margin: 40px 60px 40px 0px;
+
+	}
+
+	.product-text strong {
+
+		font-weight: bolder;
+		font: "NeuzeitGro-Bla", sans-serif;
+
+	}
+
+	.product-text {
+
+		line-height: 1.2;
+		color: #000;
+	}
+
+	.product-text h1,
+	h2,
+	h3,
+	h4,
+	h5 {
+
+		color: #469CA8;
+	}
+
+	.product-color {
+
+		color: #469CA8;
+
+	}
+
+
+	.titlepro {
+
+		margin-top: 40px;
+		font-family: NeuzeitGro-Bla;
+	}
+
+	@media (min-width: 500px) {}
+	
+</style>
+
+
+{% endblock %}
+
+{% block content %}
+
+
+<!-- <hr style="color: black; background-color: black; margin-top: 0px; width: 130%; display: flex; margin-left: -20px; margin-right:20px "> -->
+
+<div class="container " style="">
+		<div class="row gemain-color product-text">
+				<div class="col-sm-6">
+
+
+					<h1 class="titlepro" style="">{{ object.name }}</h1>
+
+					<p class="lead kur">{% if object.claim %}{{ object.claim }}{% endif %}</p>
+
+					<div class="row product-color">
+						<div class="col-sm-4">{% include "marktplatz/modal-share.html" %}</div>
+							<div class="col-sm-4"> {% include "marktplatz/modal-sa.html" %}</div>
+			        <div class="col-sm-4">{% if object.email  %} {{ object.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}{% endif %}</div>
+			    </div>
+
+					<div class="">
+						&nbsp;
+					</div>
+					<div class="">
+						&nbsp;
+					</div>
+					<div class="">
+						&nbsp;
+					</div>
+					<div class="">
+						&nbsp;
+					</div>
+
+					<div class="">
+						<p><strong>Wohnungsangebot</strong>:<br>
+
+							{% if object.frei == 'JAJA' %}
+								Wohnung frei.
+								{% if object.kfrei %}
+									{{ object.kfrei }}
+									{% if object.email  %}<p>{{ object.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}</p>{% endif %}
+								{% endif %}
+							{% endif %}
+
+							{% if object.frei == 'WART' %}
+								Wir haben derzeit keine Wohnung frei, aber wir melden uns, wenn etwas frei wird. Aktiviere die Benachrichtigung!
+							{% endif %}
+
+							{% if object.frei == 'NEIN' %}
+								Wir haben derzeit keine Wohnung  und führen auch keine Warteliste, auf die du dich setzen lassen kannst.
+							{% endif %}
+
+
+						</p>
+					</div>
+
+
+					<!-- <div class="">
+						{{  object.mitmachen  }}
+					</div> -->
+
+					<p>{% if object.inseratstext  %}<strong>{% field_name object.wohnprojekt 'inseratstext' %}</strong>:<br>{{ object.inseratstext }} {% if object.email  %}<p>{{ object.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}</p>{% endif %}{% endif %}</p>
+
+					<div class="">
+						&nbsp;
+					</div>
+
+
+					<p class="">{% if object.beschreibung %}<strong>{% field_name object.wohnprojekt 'beschreibung' %}</strong>:<br>{{ object.beschreibung | safe | linebreaks   }}{% endif %}</p>
+					<p class="">{% if object.learning %}<strong>{% field_name object.wohnprojekt 'learning' %}</strong>:<br>{{ object.learning | safe | linebreaks  }}{% endif %}</p>
+
+
+					<div class="">
+						&nbsp;
+					</div>
+					<div class="">
+						&nbsp;
+					</div>
+
+
+
+
+					{% for video in object.video_set.all %}
+
+						<video autoplay style="width: 100%;height: auto;vertical-align: middle; padding-bottom: 10px" controls>
+							<source src="{{video.image.url}}" type="video/mp4">
+						</video>
+
+					{% endfor %}
+
+					{% if object.media_set %}
+						{% for media in object.media_set.all %}
+							{% if not forloop.first %}
+								{% if forloop.counter < 6  %}
+									<div class="image-detail" style="flex: {% get_ratio media %}; ">
+										<img href="{{media.image_big.url}}" src="{{media.image_norm.url }}" class="gallery img-fluid img-responsive"  alt="" style="width: 100%;height: auto;vertical-align: middle;">
+									</div>
+								{% endif %}
+							{% endif %}
+						{% endfor %}
+					{% endif %}
+
+
+				</div>
+
+
+
+ 			<!-- *************************************************************** -->
+
+
+				<div class="col-sm-6">
+
+
+					<div class="image-detail" style="">
+						<img href="{{object.media_set.first.image_big.url}}"  src="{{object.media_set.first.image_norm.url }}" class="gallery img-fluid img-responsive"  alt="" style="width: 100%;height: auto;vertical-align: middle;">
+					</div>
+
+
+					<br />
+					<h5 class=" mediumkur">Kontakt</h5>
+					<br />
+
+					<p>{{ object.adresse }}{% if object.adresse_zusatz  %},	{{ object.adresse_zusatz }}{% endif %}{% if object.plz  %}, {{ object.plz }}{% endif %}{% if object.ort %}, {{ object.get_ort_display }}{% endif %}</p>
+
+					<div class="row">
+							<div class="col-sm-4">
+								{% if object.email  %}<p>{{ object.email | obfuscate_mailto:'<i class="fas fa-envelope"></i> Email'  }}</p>{% endif %}
+
+							</div>
+							<div class="col-sm-8">
+									{% if object.email  %}<p><a href="mailto:{{ object.email | obfuscate }}" >{{ object.email | obfuscate }}</a></p>{% endif %}
+
+							</div>
+					</div>
+
+					<div class="row">
+							<div class="col-sm-4">
+								{% if object.website  %}<p><a href="{{  object.website }}" target="_blank" rel="noopener">Webseite</a></p>{% endif %}
+
+							</div>
+							<div class="col-sm-8">
+								{% if object.website  %}<p><a href="{{  object.website }}" target="_blank" rel="noopener">{{  object.website }}</a></p>{% endif %}
+
+							</div>
+					</div>
+
+
+
+
+
+					<br />
+					<h5 class=" mediumkur">Steckbrief</h5>
+					<br />
+
+					<p>{{ object.kind_of_product }}, gegründet {{ object.gruendungsjahr }}{% if object.betriebgenommen  %}, in Betrieb genommen: {{ object.betriebgenommen }}{% endif %}.</p>
+					<p><strong>Rechtsform</strong>: {{ object.rechtsform }}</p>
+					<!-- XXX --> <p>{{ object.artmodell }}</p>
+					<p>{% if object.orga  %}<strong>{% field_name object.wohnprojekt 'orga' %}</strong>: {{ object.orga }}{% endif %}</p>
+					<!-- XXX --> <p>{% if object.eigentum  %}<strong>{% field_name object.wohnprojekt 'eigentum' %}</strong>: {{ object.get_eigentum_display }}{% endif %}</p>
+					<!-- XXX -->  <p>{% if object.gprojekte  %}<strong>Gemeinschaftliche Projekte</strong>: {{ object.gprojekte }}{% endif %}</p>
+
+
+
+					<p>{% if object.zielgruppen  %}<strong>Besondere Zielgruppen</strong>: {{ object.zielgruppen }}{% endif %}</p>
+					<p>{% if object.freiraumangebote  %}<strong>Freiraumangebote</strong>: {{ object.freiraumangebote }}{% endif %}</p>
+					<p>{% if object.oekologie  %}<strong>{% field_name object.wohnprojekt 'oekologie' %}</strong>: {{ object.oekologie }}{% endif %}</p>
+					<p>{% if object.schwerpunkt  %}<strong>{% field_name object.wohnprojekt 'schwerpunkt' %}</strong>: {{ object.schwerpunkt }}{% endif %}</p>
+
+
+					<br />
+					<h5 class=" mediumkur">Kenndaten</h5>
+					<br />
+
+					<p>{{ object.get_altneu_display }}, {{ object.bauweise }}</p>
+					<p><strong>Bautr&auml;ger</strong>: {{ object.bautraeger }}</p>
+					<p>{% if object.architektur  %}<strong>{% field_name object.wohnprojekt 'architektur' %}:</strong>  {{  object.architektur  }}{% endif %}</p>
+					<p>{% if object.wohnbaufoerderung  %}<strong>{% field_name object.wohnprojekt 'wohnbaufoerderung' %}:</strong>  {{ object.wohnbaufoerderung }}{% endif %}</p>
+
+					<p>im Haus Wohnen ca {{ object.aerwachsene }} Erwachsene und {{  object.akinder }} Kinder.
+						Anzahl der Mitglieder: {{ object.amitglieder }}
+					</p>
+					<p>{% if object.awohnungen  %}<strong>{% field_name object.wohnprojekt 'awohnungen' %}:</strong>  {{  object.awohnungen  }} Wohnungen{% endif %}</p>
+					<p>{% if object.gaestwohnungen  %}<strong>{% field_name object.wohnprojekt 'gaestwohnungen' %}:</strong>  {{ object.gaestwohnungen }}{% endif %}</p>
+					<p>{% if object.wohnflaeche  %}<strong>{% field_name object.wohnprojekt 'wohnflaeche' %}:</strong>  {{ object.wohnflaeche }} m<sup>2</sup>{% endif %}</p>
+					<p>{% if object.sonderwohnformen  %}<strong>{% field_name object.wohnprojekt 'sonderwohnformen' %}</strong>: {{ object.sonderwohnformen }}{% endif %}</p>
+			    <p>{% if object.gewerbeflaechen  %}<strong>{% field_name object.wohnprojekt 'gewerbeflaechen' %}:</strong>  {{ object.gewerbeflaechen }} m<sup>2</sup>{% endif %}</p>
+			    <p>{% if object.gewerbe %}<strong>{% field_name object.wohnprojekt 'gewerbe' %}:</strong>  {{ object.gewerbe }}{% endif %}</p>
+			    <p>{% if object.gemeinschaftsflaeche  %}<strong>{% field_name object.wohnprojekt 'gemeinschaftsflaeche' %}:</strong>  {{ object.gemeinschaftsflaeche }} m<sup>2</sup>{% endif %}</p>
+					<p><strong>Gemeinschaftsräume</strong>:
+						{{ object.gemeinschaftr }}{% if object.kgemeinschaftr  %}, {{ object.kgemeinschaftr }}{% endif %}
+					</p>
+			    <p>{% if object.sonstige_flaechen  %}<strong>{% field_name object.wohnprojekt 'sonstige_flaechen' %}:</strong>  {{ object.sonstige_flaechen }} m<sup>2</sup>{% endif %}</p>
+			    <p>{% if object.flaeche  %}<strong>{% field_name object.wohnprojekt 'flaeche' %}:</strong>  {{ object.flaeche }} m<sup>2</sup>{% endif %}</p>
+					<p>{% if object.kflaechen  %}<strong>{% field_name object.wohnprojekt 'kflaechen' %}:</strong>  {{ object.kflaechen }} m<sup>2</sup>{% endif %}</p>
+					<p>{% if object.parbeiten  %}Im Haus arbeiten ca {{ object.parbeiten }} Personen.{% endif %}
+						{% if object.karbeiten  %}{{ object.karbeiten }}{% endif %}</p>
+					<p>{% if object.raumangebot  %}<strong>{% field_name object.wohnprojekt 'raumangebot' %}:</strong>  {{ object.raumangebot }}{% if object.kraumangebot  %},
+						{{ object.kraumangebot }}
+						{% endif %}
+
+					{% endif %}</p>
+
+			    <!-- <p>{% if object.kraumangebot  %}<strong>{% field_name object.wohnprojekt 'kraumangebot' %}:</strong>  {{ object.kraumangebot }}{% endif %}</p> -->
+
+
+
+
+
+					<br />
+					<h5 class="mediumkur">Mediacredits</h5>
+					<br />
+					{% for media in object.media_set.all %}
+						{% if media.copyright %}
+							<p class="fieldname"> {{ media.copyright }}</p>
+						{% endif %}
+					{% endfor %}
+					{% for media in object.video_set.all %}
+						{% if media.copyright %}
+							<p class="fieldname"> {{ media.copyright }}</p>
+						{% endif %}
+					{% endfor %}
+
+					{% if object.media_set  %}
+						{% for media in object.media_set.all %}
+							{% if forloop.counter > 5  %}
+								<div style="flex: {% get_ratio media %}; margin:40px 60px 40px 0px;">
+									<img href="{{media.image_big.url}}"  src="{{media.image_norm.url }}" class="gallery img-fluid img-responsive"  alt="" style="width: 100%;height: auto;vertical-align: middle;">
+								</div>
+							{% endif %}
+						{% endfor %}
+					{% endif %}
+
+
+
+
+
+
+				</div>
+		</div>
+
+</div>
+
+
+<div class="container">
+
+	<div class="row" style="margin-top: 10px">
+
+		<div class="col-sm-6">
+
+
+
+
+
+
+		</div>
+		<div class="col-sm-4">
+
+			 				 {% for field, value in object.wohnprojekt %}
+			          {% if value and not field == "ID" %}
+			           <!-- <p class="fieldname"><strong class="mediumkur"> {{ field }} :</strong> {{ value }}</p> -->
+			          {% endif %}
+			          {% endfor %}
+
+		</div>
+
+	</div>
+
+</div>
+
+
+
+
+{% endblock %}

+ 31 - 15
marktplatz/urls.py

@@ -10,31 +10,47 @@ urlpatterns = [
     path('', RedirectView.as_view(url='projekte/'), name='index'),
     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'),
+
     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'),
-    path('agent_newsletter/', views.AgentNewslwtterFormView.as_view(), name='search-agent-form'),
-    path('agent_newsletter/embed/', views.AgentNewslwtterFormView.as_view( embed=True, ), name='search-agent-form-embed'),
-    path('agent_newsletter/<slug:newsletter_slug>/anmelden/', views.AgentNewslwtterSubscribeView.as_view(   ), name='agent-newsletter-create'),
-    # path('suchagent/embed', views.SearchAgentCreate.as_view( embed=True, ), name='search-agent-create-embed'),
-    path('suchagent/<int:pk>/<slug:hash>/', views.SearchAgentDelete.as_view(), name='search-agent-delete'),
-    path('projekt/<int:pk>/', views.DetailView.as_view(), name='product-detail'),
-    path('projekt/<int:pk>/delete', views.ProductDelete.as_view(), name='product-delete'),
-    path('projekt/<int:pk>/embed', views.DetailView.as_view( embed=True, ), name='product-detail-embed'),
-    path('projekt/<int:pk>/freigeben', views.ProductPublish.as_view(  ), name='product-publish'),
-    path('product-card/<int:pk>', views.CardDetailView.as_view(), name='product-detail-card'),
-    path('product-card/<int:pk>/embed', views.CardDetailView.as_view( embed=True, ), name='product-detail-card-embed'),
-    path('admin_panel/', views.AdminView.as_view(), name='admin-panel'),
-    # path('light-box/', lightboximg.as_view(template_name="mab18/importold.html"),name='lightbox'),
-    path('register/', views.registerView.as_view(), name='register-view'),
+
+    # CREATE
     path('neues-wohnprojekt/', views.WohnProjektCreateView.as_view(), name='neues-wohnprojekt'),
     path('neues-mobilitaetsprojekt/', views.MobilitaetsProjektCreateView.as_view(), name='neues-mobilitaetsprojekt'),
-    path('meine-projekte/', views.UsersProducts.as_view(), name='meine-projekte'),
+    path('neues-ernaehrungsprojekt/', views.MobilitaetsProjektCreateView.as_view(), name='neues-ernaehrungsprojekt'),
+
+    # UPDATE
     path('projekt-bearbeiten/<int:pk>', views.WohnProjektUpdateView.as_view(), name='projekt-bearbeiten'),
+
+    # DELETE
+    path('projekt/<int:pk>/delete', views.ProductDelete.as_view(), name='product-delete'),
+
+    #Detail views
+    path('projekt/<int:pk>/', views.WohnprojektDetailView.as_view(), name='product-detail'),
+    path('projekt/<int:pk>/embed', views.ProduktDetailView.as_view( embed=True, ), name='product-detail-embed'),
+    path('projekt/<int:pk>/freigeben', views.ProductPublish.as_view(  ), name='product-publish'),
+
+    # Cards
+    path('projekt-card/<int:pk>', views.ProduktCardDetailView.as_view(), name='projekt-card'),
+    path('projekt-card/<int:pk>/embed', views.ProduktCardDetailView.as_view( embed=True, ), name='projekt-card-embed'),
+
+
+    path('search-agent-form/', views.AgentNewslwtterFormView.as_view(), name='search-agent-form'),
+    path('search-agent-form/embed/', views.AgentNewslwtterFormView.as_view( embed=True, ), name='search-agent-form-embed'),
+    path('search-agent-create/<slug:newsletter_slug>/anmelden/', views.AgentNewsletterSubscribeView.as_view(   ), name='agent-newsletter-create'),
+    path('suchagent/<int:pk>/<slug:hash>/', views.SearchAgentDelete.as_view(), name='search-agent-delete'),
+    # path('suchagent/embed', views.SearchAgentCreate.as_view( embed=True, ), name='search-agent-create-embed'),
+
+
     path('add-image/<int:pk>', views.addImageView.as_view(), name='add-image'),
     # path('generic-test/', views.genericView.as_view(), name='generic-test'),
+
     path('pages/<slug:page>/', pagesView.as_view(template_name="marktplatz/generic.html"), name='pages-generic'),
     path('generic/', TemplateView.as_view(template_name="marktplatz/generic.html"), name='generic'),
     path('images/<int:pk>', views.MediaView.as_view(), name='media-overview'),

+ 20 - 22
marktplatz/views.py

@@ -91,7 +91,7 @@ class AgentNewslwtterFormView(TemplateView):
         context['bz'] = request.GET.get('bz', '') # used in template to check a district by default.
         return render(request, self.template_name, context )
 
-class AgentNewslwtterSubscribeView(SubscribeRequestView):
+class AgentNewsletterSubscribeView(SubscribeRequestView):
     action = 'subscribe'
     # form_class = AgentNewslwtterForm
     confirm = False
@@ -435,7 +435,7 @@ class SearchProductsView(ProductsView):
         return self.render_to_response(context)
 
 
-class DetailView(generic.DetailView):
+class ProduktDetailView(generic.DetailView):
     model = Product
     template_name = 'marktplatz/product_detail.html'
     embed = False
@@ -454,29 +454,19 @@ class DetailView(generic.DetailView):
         # vote = int(request.POST['vote'])
         comment = str(request.POST['comment'])
 
-        # if vote <= 10:
-        #
-        #      try:
-        #         get_vote = Vote.objects.get(juryMember=self.request.user, product=self.kwargs['pk'])
-        #
-        #         get_vote.vote = vote
-        #         get_vote.comment = comment
-        #         get_vote.save()
-        #
-        #
-        #      except Vote.DoesNotExist:
-        #
-        #         get_vote = Vote(product = Product.objects.get(pk=self.kwargs['pk']), juryMember= self.request.user, vote = vote, comment=comment)
-        #         get_vote.save()
+        return HttpResponseRedirect(  reverse('products')  )
 
-        # else:
-        #   return HttpResponseRedirect(request.path)
+class ProduktCardDetailView(ProduktDetailView):
+
+    template_name = 'marktplatz/product_detail_card.html'
+
+class WohnprojektDetailView(generic.DetailView):
+    model = Wohnprojekt
+    template_name = 'marktplatz/wohnprojekt_detail.html'
+    embed = False
 
-        return HttpResponseRedirect(reverse('products'))
 
-class CardDetailView(DetailView):
 
-    template_name = 'marktplatz/product_detail_card.html'
 
 class AdminView(LoginRequiredMixin, generic.ListView):
     model = Product
@@ -734,10 +724,18 @@ class ProductCreateView(LoginRequiredMixin, CreateView):
 
 
 
+
 class MobilitaetsProjektCreateView(ProductCreateView):
     model = MobilitaetsProjekt
     form_class = MobilitaetsForm
 
+class ErnaehrungsProjektCreateView(ProductCreateView):
+    model = ErnaehrungsProjekt
+    form_class = ErnaehrungsForm
+
+class EnergyProjektCreateView(ProductCreateView):
+    model = EnergyProjekt
+    form_class = EnergyForm
 
 class WohnProjektCreateView(ProductCreateView):
     model = Wohnprojekt
@@ -803,7 +801,7 @@ class ProductUpdateView(LoginRequiredMixin, UpdateView):
 
     def get_object(self, queryset=None):
         obj = super().get_object()
-        if (  obj.obj_check_manageable(self.request.user)  ):
+        if (  obj.user_can_manage(self.request.user)  ):
             return obj
         raise PermissionDenied