|
|
@@ -299,46 +299,40 @@ class ProductsView(generic.ListView):
|
|
|
context_object_name = 'product_list'
|
|
|
#context_object_name = 'Products'
|
|
|
|
|
|
- def get_queryset(self):
|
|
|
- # original qs
|
|
|
- # qs = super().get_queryset()
|
|
|
|
|
|
- wohnprojekte = Wohnprojekt.objects.all()
|
|
|
- mobilitaetsprojekte = MobilitaetsProjekt.objects.all()
|
|
|
- ernaehrungsprojekte = ErnaehrungsProjekt.objects.all()
|
|
|
- energyprojekte = EnergyProjekt.objects.all()
|
|
|
+ def filter_queryset(self, qs):
|
|
|
|
|
|
- # qs = qs.order_by('frei')
|
|
|
- qs = sorted ( itertools.chain(wohnprojekte, mobilitaetsprojekte, ernaehrungsprojekte, energyprojekte), key= lambda product: product.frei )
|
|
|
|
|
|
- self.user = self.request.user
|
|
|
- user = self.user
|
|
|
|
|
|
+ user = self.request.user
|
|
|
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():
|
|
|
- contact = Contact.objects.get(user=user)
|
|
|
- return qs.filter(contact = contact)
|
|
|
-
|
|
|
if user.is_superuser:
|
|
|
return qs
|
|
|
|
|
|
- # qs = qs.filter(public = True)
|
|
|
qs = list ( filter( lambda product: (product.public == True) , qs ) )
|
|
|
|
|
|
+ if 1==1:
|
|
|
+ return qs
|
|
|
+
|
|
|
+ def get_queryset(self):
|
|
|
+
|
|
|
+ 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 )
|
|
|
+
|
|
|
+ qs = self.filter_queryset(qs)
|
|
|
return qs
|
|
|
|
|
|
+
|
|
|
+
|
|
|
def get_context_data(self, **kwargs):
|
|
|
context = super().get_context_data(**kwargs)
|
|
|
|
|
|
@@ -363,12 +357,19 @@ class WohnprojekteView(ProductsView):
|
|
|
model = Wohnprojekt
|
|
|
template_name = 'marktplatz/product_overview.html'
|
|
|
|
|
|
+ def get_queryset(self):
|
|
|
+
|
|
|
+ wohnprojekte = Wohnprojekt.objects.all()
|
|
|
+ qs = sorted ( itertools.chain(wohnprojekte), key= lambda product: product.frei )
|
|
|
+ qs = self.filter_queryset(qs)
|
|
|
+ return qs
|
|
|
+
|
|
|
def get_context_data(self, **kwargs):
|
|
|
context = super().get_context_data(**kwargs)
|
|
|
|
|
|
raum_agebote = {}
|
|
|
|
|
|
- for product in context['product_list']:
|
|
|
+ for product in context['object_list']:
|
|
|
for raum in product.raumangebot:
|
|
|
if not (raum in raum_agebote):
|
|
|
raum_agebote[raum] = product.raumangebot.choices[raum]
|
|
|
@@ -384,14 +385,33 @@ class MobilitaetsProjekteView(ProductsView):
|
|
|
model = MobilitaetsProjekt
|
|
|
template_name = 'marktplatz/product_overview.html'
|
|
|
|
|
|
+ def get_queryset(self):
|
|
|
+ mobilitaetsprojekte = MobilitaetsProjekt.objects.all()
|
|
|
+ qs = sorted ( itertools.chain(mobilitaetsprojekte), key= lambda product: product.frei )
|
|
|
+ qs = self.filter_queryset(qs)
|
|
|
+ return qs
|
|
|
+
|
|
|
+ # def get_context_data(self, *, object_list=self.qs, **kwargs):
|
|
|
+
|
|
|
class ErnaerungsProjekteView(ProductsView):
|
|
|
model = ErnaehrungsProjekt
|
|
|
template_name = 'marktplatz/product_overview.html'
|
|
|
|
|
|
+ def get_queryset(self):
|
|
|
+ ernaehrungsprojekte = ErnaehrungsProjekt.objects.all()
|
|
|
+ qs = sorted ( itertools.chain(ernaehrungsprojekte), key= lambda product: product.frei )
|
|
|
+ qs = self.filter_queryset(qs)
|
|
|
+ return qs
|
|
|
+
|
|
|
class EnergyProjekteView(ProductsView):
|
|
|
model = EnergyProjekt
|
|
|
template_name = 'marktplatz/product_overview.html'
|
|
|
|
|
|
+ def get_queryset(self):
|
|
|
+ energyprojekte = EnergyProjekt.objects.all()
|
|
|
+ qs = sorted ( itertools.chain(energyprojekte), key= lambda product: product.frei )
|
|
|
+ qs = self.filter_queryset(qs)
|
|
|
+ return qs
|
|
|
|
|
|
|
|
|
class FilterProductsView(ProductsView):
|
|
|
@@ -571,6 +591,9 @@ class ProduktCardDetailView(ProduktDetailView):
|
|
|
template_name = 'marktplatz/product_detail_card.html'
|
|
|
|
|
|
|
|
|
+class ProductDispatchView(TemplateView):
|
|
|
+
|
|
|
+ template_name = 'marktplatz/product_create_dispatch.html'
|
|
|
|
|
|
|
|
|
class ProductCreateView(LoginRequiredMixin, CreateView):
|
|
|
@@ -599,6 +622,33 @@ class ProductCreateView(LoginRequiredMixin, CreateView):
|
|
|
else:
|
|
|
return HttpResponseRedirect( reverse('meine-projekte') )
|
|
|
|
|
|
+class ProductGenericCreateView(ProductCreateView):
|
|
|
+
|
|
|
+ def dispatch(self, request, *args, **kwargs):
|
|
|
+
|
|
|
+ if self.kwargs['type'] == 'BASE':
|
|
|
+ super().dispatch(request, *args, **kwargs)
|
|
|
+ elif self.kwargs['type'] == 'WOHN':
|
|
|
+ self.model = Wohnprojekt
|
|
|
+ self.form_class = WohnprojektForm
|
|
|
+ return super().dispatch(request, *args, **kwargs)
|
|
|
+ elif self.kwargs['type'] == 'MOBI':
|
|
|
+ self.model = MobilitaetsProjekt
|
|
|
+ self.form_class = MobilitaetsForm
|
|
|
+ return super().dispatch(request, *args, **kwargs)
|
|
|
+ elif self.kwargs['type'] == 'ERNA':
|
|
|
+ self.model = ErnaehrungsProjekt
|
|
|
+ self.form_class = ErnaehrungsForm
|
|
|
+ return super().dispatch(request, *args, **kwargs)
|
|
|
+ elif self.kwargs['type'] == 'ENER':
|
|
|
+ self.model = EnergyProjekt
|
|
|
+ self.form_class = EnergyForm
|
|
|
+ return super().dispatch(request, *args, **kwargs)
|
|
|
+
|
|
|
+ raise Http404('Keine Objekte gefunden' )
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
class WohnProjektCreateView(ProductCreateView):
|
|
|
model = Wohnprojekt
|
|
|
form_class = WohnprojektForm
|