Procházet zdrojové kódy

improved forms; switched to class based views

Juan Carlos před 4 roky
rodič
revize
6301feaa5f

+ 49 - 38
marktplatz/forms.py

@@ -237,45 +237,13 @@ class SignUpForm(UserCreationForm):
 
 
 class ProductForm(forms.ModelForm, GeneralFields):
 class ProductForm(forms.ModelForm, GeneralFields):
 
 
-    # terms = forms.BooleanField(required=True,  label= ('Ich habe die Teilnahmebedingungen gelesen und akzeptiert.'))
-    product_fields = ( 'terms', 'name','claim','beschreibung','learning','gruendungsjahr','betriebgenommen','status','adresse', 'adresse_zusatz', 'plz', 'website','email','frei','kfrei','ort','rechtsform','orga','mitmachen','edit','public', )
-    product_layout = Layout(
-        Fieldset(
-            ('Über dein Projekt'),
-            'name','claim','beschreibung',
-            Div(
-                Div('frei',  css_class='col-sm-6 col-6 '),
-                Div('kfrei', css_class='col-sm-6 col-6 ' ),
-            css_class='form-row row mab-field-highlight'),
-            'learning','status',
-           Div(
-               Div('adresse',  css_class='col-sm-6 col-6'),
-               Div('adresse_zusatz', css_class='col-sm-6 col-6'),
-               css_class='form-row  row'),
-           Div(
-               Div('plz',  css_class='col-sm-6 col-6'),
-               Div('ort', css_class='col-sm-6 col-6'),
-               css_class='form-row  row'),
+        # terms = forms.BooleanField(required=True,  label= ('Ich habe die Teilnahmebedingungen gelesen und akzeptiert.'))
 
 
-           'rechtsform','orga',
-           Div(
-               Div('website',  css_class='col-sm-6 col-6'),
-               Div('email', css_class='col-sm-6 col-6'),
-               css_class='form-row  row'),
-           Div(
-               Div('gruendungsjahr',  css_class='col-sm-6 col-6'),
-               Div('betriebgenommen', css_class='col-sm-6 col-6'),
-               css_class='form-row  row'),
-          'edit','public', 'mitmachen',
-        ),
-    )
 
 
     class Meta:
     class Meta:
         model = Product
         model = Product
-        fields = (
-         'terms',
-        'name','claim','beschreibung','learning','gruendungsjahr','betriebgenommen','status','adresse','website','email','frei','kfrei', 'mitmachen','rechtsform','ort','orga',
-         )
+        fields = ( 'terms', 'name','claim','beschreibung','learning','gruendungsjahr','betriebgenommen','status','adresse', 'adresse_zusatz', 'plz', 'website','email','frei','kfrei','ort','rechtsform','orga','mitmachen','edit','public', )
+
 
 
     def __init__(self,*args, **kwargs):
     def __init__(self,*args, **kwargs):
        super(ProductForm, self).__init__(*args, **kwargs)
        super(ProductForm, self).__init__(*args, **kwargs)
@@ -295,11 +263,54 @@ class ProductForm(forms.ModelForm, GeneralFields):
        self.helper = FormHelper()
        self.helper = FormHelper()
        self.helper.form_tag = False
        self.helper.form_tag = False
 
 
+       self.product_layout = Layout(
+               Fieldset(
+                   ('Über dein Projekt'),
+                   'name','claim','beschreibung',
+                   Div(
+                       Div('frei',  css_class='col-sm-6 col-6 '),
+                       Div('kfrei', css_class='col-sm-6 col-6 ' ),
+                   css_class='form-row row mab-field-highlight'),
+                   'learning','status',
+                  Div(
+                      Div('adresse',  css_class='col-sm-6 col-6'),
+                      Div('adresse_zusatz', css_class='col-sm-6 col-6'),
+                      css_class='form-row  row'),
+                  Div(
+                      Div('plz',  css_class='col-sm-6 col-6'),
+                      Div('ort', css_class='col-sm-6 col-6'),
+                      css_class='form-row  row'),
+
+                  'rechtsform','orga',
+                  Div(
+                      Div('website',  css_class='col-sm-6 col-6'),
+                      Div('email', css_class='col-sm-6 col-6'),
+                      css_class='form-row  row'),
+                  Div(
+                      Div('gruendungsjahr',  css_class='col-sm-6 col-6'),
+                      Div('betriebgenommen', css_class='col-sm-6 col-6'),
+                      css_class='form-row  row'),
+                 'edit','public', 'mitmachen',
+               ),
+           )
+       self.helper.layout = self.product_layout
+
 
 
 class MobilitaetsForm(ProductForm):
 class MobilitaetsForm(ProductForm):
 
 
-    pass
-    
+    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 WohnprojektForm(ProductForm):
 
 
@@ -308,7 +319,7 @@ class WohnprojektForm(ProductForm):
 
 
     class Meta:
     class Meta:
         model = Wohnprojekt
         model = Wohnprojekt
-        fields = ProductForm.product_fields + (
+        fields = ProductForm.Meta.fields + (
          'eigentum', 'inseratstext', 'altneu', 'schwerpunkt', 'wohnbaufoerderung', 'artmodell', 'bautraeger', 'architektur', 'aerwachsene', 'akinder', 'awohnungen', 'wohnflaeche', 'gewerbeflaechen', 'gemeinschaftsflaeche', 'sonstige_flaechen', 'flaeche', 'kflaechen', 'gemeinschaftr', 'kgemeinschaftr', 'gewerbe', 'sonderwohnformen', 'raumangebot', 'kraumangebot', 'parbeiten', 'karbeiten', 'bauweise', 'zielgruppen', 'gprojekte', 'oekologie', 'freiraumangebote', 'gaestwohnungen', 'urbanem',
          'eigentum', 'inseratstext', 'altneu', 'schwerpunkt', 'wohnbaufoerderung', 'artmodell', 'bautraeger', 'architektur', 'aerwachsene', 'akinder', 'awohnungen', 'wohnflaeche', 'gewerbeflaechen', 'gemeinschaftsflaeche', 'sonstige_flaechen', 'flaeche', 'kflaechen', 'gemeinschaftr', 'kgemeinschaftr', 'gewerbe', 'sonderwohnformen', 'raumangebot', 'kraumangebot', 'parbeiten', 'karbeiten', 'bauweise', 'zielgruppen', 'gprojekte', 'oekologie', 'freiraumangebote', 'gaestwohnungen', 'urbanem',
          )
          )
 
 

+ 10 - 11
marktplatz/models.py

@@ -214,8 +214,7 @@ class SearchAgent(models.Model):
     hash            = CharField          ( max_length=255, default=hash_gen )
     hash            = CharField          ( max_length=255, default=hash_gen )
 
 
 
 
-class Mobilityprojekt(Product):
-    pass
+class MobilitaetsProjekt(Product):
 
 
     @property
     @property
     def kind_of_product(self):
     def kind_of_product(self):
@@ -477,15 +476,15 @@ def auto_delete_video_on_delete(sender, instance, **kwargs):
 
 
 
 
 
 
-class Vote(models.Model):
-    product = ForeignKey(Product, on_delete=models.CASCADE)
-    juryMember = ForeignKey(User, on_delete = models.CASCADE)
-    vote = PositiveSmallIntegerField(default=0)
-    comment = CharField(blank=True, max_length =300)
-
-    def __iter__(self):
-        for field in self._meta.fields:
-            yield (field.verbose_name, field.value_to_string(self))
+# class Vote(models.Model):
+#     product = ForeignKey(Product, on_delete=models.CASCADE)
+#     juryMember = ForeignKey(User, on_delete = models.CASCADE)
+#     vote = PositiveSmallIntegerField(default=0)
+#     comment = CharField(blank=True, max_length =300)
+#
+#     def __iter__(self):
+#         for field in self._meta.fields:
+#             yield (field.verbose_name, field.value_to_string(self))
 
 
 
 
 
 

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

@@ -61,7 +61,7 @@
         <span class="">
         <span class="">
           &nbsp;&nbsp;&nbsp;
           &nbsp;&nbsp;&nbsp;
         </span>
         </span>
-        <input type="submit" name="addImage" class="btn border-thin mybtn" value="Absenden & Bilder hochladen">
+        <input type="submit" name="add-image" class="btn border-thin mybtn" value="Absenden & Bilder hochladen">
         <br><br>
         <br><br>
       </div>
       </div>
     </div>
     </div>

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

@@ -36,7 +36,7 @@
 
 
  </table>
  </table>
 
 
-         <a href="{% url 'add-Image' Product.pk %}"> <button class="btn border-dark rounded-0 mybtn" type="submit">Add Media </button> </a>
+         <a href="{% url 'add-image' Product.pk %}"> <button class="btn border-dark rounded-0 mybtn" type="submit">Add Media </button> </a>
 </div>
 </div>
 
 
 
 

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

@@ -37,7 +37,7 @@ $('form').submit(function () {
 
 
     </tr>
     </tr>
     {% for product in product_list %}
     {% for product in product_list %}
-    <tr class="{% get_sucsess product %}"   >
+    <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"><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' product.pk %}">   {{product.name|upper }} </a></td>
           <td scope="col">
           <td scope="col">
@@ -45,7 +45,7 @@ $('form').submit(function () {
         {{category.short_name}}{% if not forloop.last %} | {% endif %}
         {{category.short_name}}{% if not forloop.last %} | {% endif %}
              {% endfor %}
              {% endfor %}
         </td>
         </td>
-        <td scope="col"> {% if product.edit %} <a href="{% url 'edit-product' 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"> {% if product.edit %} <a href="{% url 'edit-product' 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="">Löschen</a>   </td>
         <td scope="col"> <a href="{% url 'product-publish' pk=product.pk %}" target="" rel="">Freischaltung</a>   </td>
         <td scope="col"> <a href="{% url 'product-publish' pk=product.pk %}" target="" rel="">Freischaltung</a>   </td>
 
 
@@ -56,11 +56,11 @@ $('form').submit(function () {
 
 
 
 
  </table>
  </table>
-    <a href="{% url 'new-submit-view' %}"><button class="btn border-dark rounded-0 mybtn" type="submit">Add product </button> </a>
+    <a href="{% url 'neues-wohnprojekt' %}"><button class="btn border-dark rounded-0 mybtn" type="submit">Add product </button> </a>
  {% else %}
  {% else %}
 <div class="container-fluid">
 <div class="container-fluid">
 
 
-    <h6>Scheint, als hättest du noch nichts eingetragen :( <br> Gib jetzt ein Projekt ein:<a href="{% url 'new-submit-view' %}"><button class="btn border-dark rounded-0 mybtn" type="submit">Projekt eintragen </button> </a></h6>
+    <h6>Scheint, als hättest du noch nichts eingetragen :( <br> Gib jetzt ein Projekt ein:<a href="{% url 'neues-wohnprojekt' %}"><button class="btn border-dark rounded-0 mybtn" type="submit">Projekt eintragen </button> </a></h6>
 </div>
 </div>
 
 
 {% endif %}
 {% endif %}

+ 86 - 0
marktplatz/templates/marktplatz/product_create.html

@@ -0,0 +1,86 @@
+{% extends "base_generic.html" %}
+{% load static %}
+{% load compress %}
+{% load crispy_forms_tags %}
+{% crispy product product.helper %}
+{% crispy credits credits.helper %}
+
+{% block content %}
+<link rel="stylesheet" href="{% static "ajaxuploader/css/fileuploader.css" %}">
+
+<style media="screen">
+  .form-error {
+    padding: 60 0 0 20;
+    color: #F00;
+
+  }
+</style>
+
+<div class="container-lg">
+  <form id='upload_mab' enctype="multipart/form-data" method="post">
+    {% csrf_token %}
+    <div class="col-sm-10">
+      <div class="">
+      &nbsp;
+      </div>
+      <h3>Reichen Sie Ihr Projekt ein</h3>
+      <div class="">
+      &nbsp;
+      </div>
+      <div class="col-sm-10" style="margin-bottom: 5px">{{info_txt|safe}}</div>
+      <div class="">
+      &nbsp;
+      </div>
+    </div>
+    <div class="col-sm-10">
+    {% crispy form %}
+    </div>
+
+
+    <div class="col-sm-10">
+
+    </div>
+
+
+
+       <div class="col-sm-10">
+
+         <div class='form-error' style="" >{{ form_errors }}</div>
+      {{ form.terms|as_crispy_field  }}
+
+    </div>
+             <div class="col-sm-10">
+
+
+             </div>
+
+    <div class="col-sm-10" style="margin-bottom: 5px">
+      <br><br>
+      <div class="buttonHolder">
+        <input type="submit" name="submit" class=" btn border-thin mybtn" style="margin-right: " value="Absenden">
+        <span class="">
+          &nbsp;&nbsp;&nbsp;
+        </span>
+        <input type="submit" name="add-image" class="btn border-thin mybtn" value="Absenden & Bilder hochladen">
+        <br><br>
+      </div>
+    </div>
+
+  </form>
+
+</div>
+
+<div class="">
+  &nbsp; &nbsp;
+</div>
+
+  {% compress js  %}
+  <script src="{% static "ajaxuploader/js/fileuploader.js" %}"></script>
+  <script src="{% static "file_form/file_form.js" %}"></script>
+  {% endcompress %}
+<script>
+  $(function() {
+    initUploadFields($('#upload_mab'));
+  });
+</script>
+{% endblock %}

+ 90 - 90
marktplatz/templatetags/tags.py

@@ -7,7 +7,7 @@ from django.template.defaulttags import register
 from django.conf import settings
 from django.conf import settings
 from django.db.models import Avg
 from django.db.models import Avg
 
 
-from ..models import Product, User, Vote, Media, Contact
+from ..models import Product, User,  Media, Contact
 
 
 # from django_user_agents.utils import get_user_agent,get_and_set_user_agent
 # from django_user_agents.utils import get_user_agent,get_and_set_user_agent
 
 
@@ -34,40 +34,40 @@ def get_item(dictionary, key):
 
 
 
 
 
 
-@register.simple_tag
-def get_vote(Product, user):
-    if user.groups.filter(name='jury').exists():
-        try:
-            vote = Vote.objects.get(juryMember=user, product=Product)
-        except Vote.DoesNotExist:
-            return 'VOTE !'
-
-        return 'VOTE: ' + str(vote.vote)
-    return ''
-
-@register.simple_tag
-def get_int_vote(Product, user):
-
-    try:
-        vote = Vote.objects.get(juryMember=user, product=Product)
-
-    except Vote.DoesNotExist:
-        return 0
-
-    return vote.vote
-
-@register.simple_tag
-def get_comment(Product, user):
-
-    try:
-        vote = Vote.objects.get(juryMember=user, product=Product)
-
-    except Vote.DoesNotExist:
-        return 'Here is some space for your comments (not obligatory)'
-    if vote.comment=='':
-        return 'Here is some space for your comments (not obligatory)'
-
-    return vote.comment
+# @register.simple_tag
+# def get_vote(Product, user):
+#     if user.groups.filter(name='jury').exists():
+#         try:
+#             vote = Vote.objects.get(juryMember=user, product=Product)
+#         except Vote.DoesNotExist:
+#             return 'VOTE !'
+#
+#         return 'VOTE: ' + str(vote.vote)
+#     return ''
+#
+# @register.simple_tag
+# def get_int_vote(Product, user):
+#
+#     try:
+#         vote = Vote.objects.get(juryMember=user, product=Product)
+#
+#     except Vote.DoesNotExist:
+#         return 0
+#
+#     return vote.vote
+#
+# @register.simple_tag
+# def get_comment(Product, user):
+#
+#     try:
+#         vote = Vote.objects.get(juryMember=user, product=Product)
+#
+#     except Vote.DoesNotExist:
+#         return 'Here is some space for your comments (not obligatory)'
+#     if vote.comment=='':
+#         return 'Here is some space for your comments (not obligatory)'
+#
+#     return vote.comment
 
 
 
 
 @register.simple_tag
 @register.simple_tag
@@ -86,61 +86,61 @@ def get_ratio(media):
 
 
 
 
 
 
-@register.simple_tag
-def get_vote_simple(Product, user):
-    try:
-        vote = Vote.objects.get(juryMember=user, product=Product)
-
-    except Vote.DoesNotExist:
-        return '-'
-
-    return str(vote.vote)
-
-
-@register.simple_tag
-def get_avg(Product):
-    try:
-        votes = Vote.objects.filter(product=Product)
-
-    except Vote.DoesNotExist:
-        return '-'
-
-    return votes.aggregate(Avg('vote'))['vote__avg']
-
-
-@register.simple_tag
-def get_vote_class(Product, user):
-
-    try:
-        Vote.objects.get(juryMember=user, product=Product)
-
-    except Vote.DoesNotExist:
-        return 'notvote'
-
-    return 'vote'
-
-@register.simple_tag
-def get_sucsess(Product):
-    try:
-        votes = Vote.objects.filter(product=Product)
-
-    except Vote.DoesNotExist:
-        return ''
-    if votes.aggregate(Avg('vote'))['vote__avg'] is not None:
-        if votes.aggregate(Avg('vote'))['vote__avg'] >= 7:
-            return 'table-success'
-
-    return ''
-
-@register.simple_tag
-def get_vote_txt(Product, user):
-    try:
-        vote = Vote.objects.get(juryMember=user, product=Product)
-
-    except Vote.DoesNotExist:
-        return ''
-
-    return str(vote.comment)
+# @register.simple_tag
+# def get_vote_simple(Product, user):
+#     try:
+#         vote = Vote.objects.get(juryMember=user, product=Product)
+#
+#     except Vote.DoesNotExist:
+#         return '-'
+#
+#     return str(vote.vote)
+
+
+# @register.simple_tag
+# def get_avg(Product):
+#     try:
+#         votes = Vote.objects.filter(product=Product)
+#
+#     except Vote.DoesNotExist:
+#         return '-'
+#
+#     return votes.aggregate(Avg('vote'))['vote__avg']
+#
+#
+# @register.simple_tag
+# def get_vote_class(Product, user):
+#
+#     try:
+#         Vote.objects.get(juryMember=user, product=Product)
+#
+#     except Vote.DoesNotExist:
+#         return 'notvote'
+#
+#     return 'vote'
+#
+# @register.simple_tag
+# def get_sucsess(Product):
+#     try:
+#         votes = Vote.objects.filter(product=Product)
+#
+#     except Vote.DoesNotExist:
+#         return ''
+#     if votes.aggregate(Avg('vote'))['vote__avg'] is not None:
+#         if votes.aggregate(Avg('vote'))['vote__avg'] >= 7:
+#             return 'table-success'
+#
+#     return ''
+
+# @register.simple_tag
+# def get_vote_txt(Product, user):
+#     try:
+#         vote = Vote.objects.get(juryMember=user, product=Product)
+#
+#     except Vote.DoesNotExist:
+#         return ''
+#
+#     return str(vote.comment)
 
 
 @register.filter(name='has_group')
 @register.filter(name='has_group')
 def has_group(user, group_name):
 def has_group(user, group_name):

+ 4 - 4
marktplatz/urls.py

@@ -29,11 +29,11 @@ urlpatterns = [
     path('admin_panel/', views.AdminView.as_view(), name='admin-panel'),
     path('admin_panel/', views.AdminView.as_view(), name='admin-panel'),
     # path('light-box/', lightboximg.as_view(template_name="mab18/importold.html"),name='lightbox'),
     # path('light-box/', lightboximg.as_view(template_name="mab18/importold.html"),name='lightbox'),
     path('register/', views.registerView.as_view(), name='register-view'),
     path('register/', views.registerView.as_view(), name='register-view'),
-    path('neues-wohnprojekt/', views.NewWohnprojektView.as_view(), name='new-submit-view'),
-    path('neues-mobilitaetsprojekt/', views.NewWohnprojektView.as_view(), name='new-submit-view'),
-    path('meine-projekte/', views.UsersProducts.as_view(), name='my-products'),
+    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('editProduct/<int:pk>', views.EditView.as_view(), name='edit-product'),
     path('editProduct/<int:pk>', views.EditView.as_view(), name='edit-product'),
-    path('addImage/<int:pk>', views.uploadView.as_view(), name='add-Image'),
+    path('add-image/<int:pk>', views.addImageView.as_view(), name='add-image'),
     # path('generic-test/', views.genericView.as_view(), name='generic-test'),
     # 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('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('generic/', TemplateView.as_view(template_name="marktplatz/generic.html"), name='generic'),

+ 94 - 61
marktplatz/views.py

@@ -67,7 +67,7 @@ def error_404_view(request, exception):
 def home(request):
 def home(request):
     user = request.user
     user = request.user
     if user.groups.filter(name='submission').exists():
     if user.groups.filter(name='submission').exists():
-        return HttpResponseRedirect(reverse('my-products'))
+        return HttpResponseRedirect(reverse('meine-projekte'))
     else:
     else:
         return  HttpResponseRedirect(reverse('products'))
         return  HttpResponseRedirect(reverse('products'))
 
 
@@ -449,27 +449,26 @@ class DetailView(generic.DetailView):
 
 
 
 
     def post(self, request, *args, **kwargs):
     def post(self, request, *args, **kwargs):
-        vote = int(request.POST['vote'])
+        # vote = int(request.POST['vote'])
         comment = str(request.POST['comment'])
         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()
 
 
-        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()
-
-        else:
-            return HttpResponseRedirect(request.path)
+        # else:
+        #   return HttpResponseRedirect(request.path)
 
 
         return HttpResponseRedirect(reverse('products'))
         return HttpResponseRedirect(reverse('products'))
 
 
@@ -698,64 +697,97 @@ class NewProductView(LoginRequiredMixin, FormView):
 
 
     model = Product
     model = Product
 
 
-class NewWohnprojektView(LoginRequiredMixin, FormView):
-    # use_ajax = True
-    template_name = 'marktplatz/add.html'
 
 
+class ProductCreateView(CreateView, LoginRequiredMixin):
+    template_name = 'marktplatz/product_create.html'
     model = Product
     model = Product
-
-    def get(self, request,*args, **kwargs):
-        # form = self.form_class()
-
-
-        context = request.GET.dict()
-        context['product'] =        WohnprojektForm
-        # context['use_ajax'] = True
-        context['info_txt'] = Template(config.INFO_TXT).render(Context(context))
-
-
-        return render(request, self.template_name, context)
+    form_class = ProductForm
+    gotoPics = False
+    # success_url =
 
 
 
 
-    def post(self, request):
+    # def get_success_url():
+    #     return reverse_lazy('add-image' date days)
 
 
-        product_f   = WohnprojektForm(request.POST, request.FILES)
 
 
-        if product_f.is_valid():
+    def get_context_data(self, **kwargs):
+        context = super().get_context_data(**kwargs)
+        context['info_txt'] = Template(config.INFO_TXT).render(Context(context))
+        return context
 
 
-            product   = product_f.save(commit=False)
+    def post(self, request, *args, **kwargs):
+        if 'add-image' in request.POST:
+            self.gotoPics = True
+        return super().post(self, request, *args, **kwargs)
 
 
-            product.contact = Contact.objects.get(user = self.request.user)
+    def form_valid(self, form):
+        product = form.save(commit=False)
+        product.contact = Contact.objects.get(user = self.request.user)
+        product.save()
 
 
-            product.edit=True
-            product.public = False
-            product.sumbitted = config.CURRENT_EVENT
+        if (self.gotoPics):
+            return HttpResponseRedirect(reverse('add-image', kwargs={'pk': product.pk}))
+        else:
+            return HttpResponseRedirect(  reverse('meine-projekte')  )
 
 
-            product.save(  )
-            # product_f.save_m2m()
 
 
-            if 'addImage' in request.POST:
-                return HttpResponseRedirect(reverse('add-Image', kwargs={'pk': product.pk}))
 
 
-            return HttpResponseRedirect(reverse('my-products'))
+class MobilitaetsProjektCreateView(ProductCreateView):
+    model = MobilitaetsProjekt
+    form_class = MobilitaetsForm
 
 
-        else:
 
 
-            context = request.POST.dict()
-            context['product'] =        product_f
-            context['product_errors']  = product_f.errors
-            # context['use_ajax'] = True
-            return render(request, self.template_name, context)
-
-
-class uploadView(LoginRequiredMixin, FormView):
+class WohnProjektCreateView(ProductCreateView):
+    model = Wohnprojekt
+    form_class = WohnprojektForm
+
+
+# class NewWohnprojektView(LoginRequiredMixin, FormView):
+#     template_name = 'marktplatz/add.html'
+#     model = Product
+#
+#     def get(self, request,*args, **kwargs):
+#         context = request.GET.dict()
+#         context['product'] =        WohnprojektForm
+#         context['info_txt'] = Template(config.INFO_TXT).render(Context(context))
+#
+#         return render(request, self.template_name, context)
+#
+#
+#     def post(self, request):
+#
+#         product_f   = WohnprojektForm(request.POST, request.FILES)
+#
+#         if product_f.is_valid():
+#             product   = product_f.save(commit=False)
+#             product.contact = Contact.objects.get(user = self.request.user)
+#             product.save(  )
+#
+#             if 'add-image' in request.POST:
+#                 return HttpResponseRedirect(reverse('add-image', kwargs={'pk': product.pk}))
+#
+#             return HttpResponseRedirect(reverse('meine-projekte'))
+#
+#         else:
+#
+#             context = request.POST.dict()
+#             context['product'] =        product_f
+#             context['product_errors']  = product_f.errors
+#             return render(request, self.template_name, context)
+
+
+class addImageView(LoginRequiredMixin, FormView):
     use_ajax = True
     use_ajax = True
     template_name = 'marktplatz/file_upload.html'
     template_name = 'marktplatz/file_upload.html'
 
 
     def get(self, request, pk):
     def get(self, request, pk):
         user = self.request.user
         user = self.request.user
         contact = Contact.objects.get(user=user)
         contact = Contact.objects.get(user=user)
+        print (contact.id)
+        product = Product.objects.filter(contact=contact)
+
         if not Product.objects.filter(contact=contact).filter(pk=pk).exists():
         if not Product.objects.filter(contact=contact).filter(pk=pk).exists():
+            print( "no product 1" )
             raise Http404
             raise Http404
 
 
         product = Product.objects.get(pk=pk)
         product = Product.objects.get(pk=pk)
@@ -764,7 +796,8 @@ class uploadView(LoginRequiredMixin, FormView):
 
 
         context = request.GET.dict()
         context = request.GET.dict()
         contact = Contact.objects.get(user=self.request.user)
         contact = Contact.objects.get(user=self.request.user)
-        product = get_object_or_404(Wohnprojekt, (Q(pk=pk) & Q(contact=contact)))
+        print( "before 404" )
+        product = get_object_or_404(Product, (Q(pk=pk) & Q(contact=contact)))
         context['product'] = product
         context['product'] = product
         context['images'] = Media.objects.filter(product=product)
         context['images'] = Media.objects.filter(product=product)
         context['video'] = Video.objects.filter(product=product)
         context['video'] = Video.objects.filter(product=product)
@@ -776,7 +809,7 @@ class uploadView(LoginRequiredMixin, FormView):
         if video >= 2:
         if video >= 2:
             context['video_count'] = True
             context['video_count'] = True
 
 
-        context['use_ajax'] = True
+        # context['use_ajax'] = True
         context['warning'] = False
         context['warning'] = False
 
 
         return render(request, self.template_name, context)
         return render(request, self.template_name, context)
@@ -887,10 +920,10 @@ class EditView(LoginRequiredMixin, FormView):
                 product.save( update_fields=update_fields )
                 product.save( update_fields=update_fields )
                 # product.save( )
                 # product.save( )
 
 
-            if 'addImage' in request.POST:
-                return HttpResponseRedirect(reverse('add-Image', kwargs={'pk': pk}))
+            if 'add-image' in request.POST:
+                return HttpResponseRedirect(reverse('add-image', kwargs={'pk': pk}))
 
 
-            return HttpResponseRedirect(reverse('my-products'))
+            return HttpResponseRedirect(reverse('meine-projekte'))
 
 
         else:
         else:
             context = request.GET.dict()
             context = request.GET.dict()

+ 2 - 2
project_base/templates/base_generic.html

@@ -245,7 +245,7 @@
     </li>
     </li>
     <li class="nav-item">
     <li class="nav-item">
       <div class="mab-nav-fix">
       <div class="mab-nav-fix">
-        <a class=" nav-link active nav-right boldkur mab-menu-elm" style="" href="{% url 'my-products' %}">Meine Projekte</a>
+        <a class=" nav-link active nav-right boldkur mab-menu-elm" style="" href="{% url 'meine-projekte' %}">Meine Projekte</a>
       </div>
       </div>
     </li>
     </li>
 
 
@@ -289,7 +289,7 @@
       <!-- <a class=" nav-link active nav-right boldkur mab-menu-elm  " style="" href="{% url 'login' %}">Suchagent</a> -->
       <!-- <a class=" nav-link active nav-right boldkur mab-menu-elm  " style="" href="{% url 'login' %}">Suchagent</a> -->
     </li>
     </li>
     <li class="nav-item mab-nav-item mab-menu-mega">
     <li class="nav-item mab-nav-item mab-menu-mega">
-      <span class=" active boldkur mab-menu-elm" onclick="window.location='{% url 'new-submit-view' %}' ">Projekt eintragen</span>
+      <span class=" active boldkur mab-menu-elm" onclick="window.location='{% url 'neues-wohnprojekt' %}' ">Projekt eintragen</span>
       <!-- <a class=" nav-link active nav-right boldkur mab-menu-elm " style="" href="{% url 'login' %}">Projekt eintragen</a> -->
       <!-- <a class=" nav-link active nav-right boldkur mab-menu-elm " style="" href="{% url 'login' %}">Projekt eintragen</a> -->
     </li>
     </li>