|
|
@@ -1,47 +1,50 @@
|
|
|
-from django.db import models
|
|
|
+import os
|
|
|
+import uuid
|
|
|
+import datetime
|
|
|
+import shutil
|
|
|
+
|
|
|
+
|
|
|
+from django.db.models import *
|
|
|
from django.core.validators import MinValueValidator, MaxValueValidator
|
|
|
from django.contrib.auth.models import User
|
|
|
-from imagekit.models import ImageSpecField
|
|
|
-from imagekit.processors import ResizeToFill
|
|
|
-from imagekit.processors import ResizeToCover
|
|
|
-from imagekit.processors import Thumbnail
|
|
|
-from imagekit.processors import ResizeToCover
|
|
|
-from imagekit.models import ProcessedImageField
|
|
|
from django.core.files.storage import FileSystemStorage
|
|
|
from django_countries.fields import CountryField
|
|
|
-import os
|
|
|
-import uuid
|
|
|
|
|
|
from django.db import models
|
|
|
from django.dispatch import receiver
|
|
|
from django.db.models.signals import post_delete, post_save
|
|
|
+from django.conf import settings
|
|
|
|
|
|
+from multiselectfield import MultiSelectField
|
|
|
|
|
|
+from imagekit.models import ImageSpecField
|
|
|
+from imagekit.processors import ResizeToFill
|
|
|
+from imagekit.processors import ResizeToCover
|
|
|
+from imagekit.processors import Thumbnail
|
|
|
+from imagekit.processors import ResizeToCover
|
|
|
+from imagekit.models import ProcessedImageField
|
|
|
|
|
|
-from django.conf import settings
|
|
|
-import datetime
|
|
|
-import shutil
|
|
|
|
|
|
from marktplatz.widgets import *
|
|
|
|
|
|
class Credit(models.Model):
|
|
|
- owner = models.CharField(verbose_name='Building or Product owner',blank=True,max_length = 300)
|
|
|
- architecture = models.CharField(verbose_name='Architecture',blank=True,max_length = 300)
|
|
|
- concept = models.CharField(verbose_name='Product artist/ concept/ design/ planning',blank=True,max_length = 300)
|
|
|
- structural_engeneering = models.CharField(verbose_name='Structural engineering',blank=True,max_length = 300)
|
|
|
- facade_design = models.CharField(verbose_name='Facade design',blank=True,max_length = 300)
|
|
|
- face_construction = models.CharField(verbose_name='Facade construction',blank=True,max_length = 300)
|
|
|
- kinetic_design = models.CharField(verbose_name='Kinetic engineering',blank = True,max_length = 300)
|
|
|
- light_design = models.CharField(verbose_name='Light design',blank = True,max_length = 300)
|
|
|
- tecnical_layout = models.CharField(verbose_name='Technical layout light',blank = True,max_length = 300)
|
|
|
- display_content = models.CharField(verbose_name='Display content/ visuals/ showreel',blank = True,max_length = 300)
|
|
|
- light_hardware = models.CharField(verbose_name='Light hardware (LED hardware)',blank = True,max_length = 300)
|
|
|
- lightning_software = models.CharField(verbose_name='Lighting control software',blank = True,max_length = 300)
|
|
|
- Product_coordination = models.CharField(verbose_name='Product co-ordination',blank = True,max_length = 300)
|
|
|
- membrane_skin = models.CharField(verbose_name='Membrane skin',blank = True,max_length = 300)
|
|
|
- interaction_design = models.CharField(verbose_name='Interaction design/ programming',blank = True,max_length = 300)
|
|
|
- sponsor = models.CharField(verbose_name='Product sponsor/ support',blank = True,max_length = 500)
|
|
|
- module_elems = models.CharField(verbose_name='Pixel or other basic module/ elements',blank = True,max_length = 300)
|
|
|
+ owner = CharField(verbose_name='Building or Product owner',blank=True,max_length = 300)
|
|
|
+ architecture = CharField(verbose_name='Architecture',blank=True,max_length = 300)
|
|
|
+ concept = CharField(verbose_name='Product artist/ concept/ design/ planning',blank=True,max_length = 300)
|
|
|
+ structural_engeneering = CharField(verbose_name='Structural engineering',blank=True,max_length = 300)
|
|
|
+ facade_design = CharField(verbose_name='Facade design',blank=True,max_length = 300)
|
|
|
+ face_construction = CharField(verbose_name='Facade construction',blank=True,max_length = 300)
|
|
|
+ kinetic_design = CharField(verbose_name='Kinetic engineering',blank = True,max_length = 300)
|
|
|
+ light_design = CharField(verbose_name='Light design',blank = True,max_length = 300)
|
|
|
+ tecnical_layout = CharField(verbose_name='Technical layout light',blank = True,max_length = 300)
|
|
|
+ display_content = CharField(verbose_name='Display content/ visuals/ showreel',blank = True,max_length = 300)
|
|
|
+ light_hardware = CharField(verbose_name='Light hardware (LED hardware)',blank = True,max_length = 300)
|
|
|
+ lightning_software = CharField(verbose_name='Lighting control software',blank = True,max_length = 300)
|
|
|
+ Product_coordination = CharField(verbose_name='Product co-ordination',blank = True,max_length = 300)
|
|
|
+ membrane_skin = CharField(verbose_name='Membrane skin',blank = True,max_length = 300)
|
|
|
+ interaction_design = CharField(verbose_name='Interaction design/ programming',blank = True,max_length = 300)
|
|
|
+ sponsor = CharField(verbose_name='Product sponsor/ support',blank = True,max_length = 500)
|
|
|
+ module_elems = CharField(verbose_name='Pixel or other basic module/ elements',blank = True,max_length = 300)
|
|
|
|
|
|
def __iter__(self):
|
|
|
for field in self._meta.fields:
|
|
|
@@ -51,13 +54,13 @@ class Credit(models.Model):
|
|
|
|
|
|
|
|
|
class Description(models.Model):
|
|
|
- facade = models.TextField(verbose_name='Facade type and geometry (structure)',blank = True,max_length = 900)
|
|
|
- light_creation = models.TextField(verbose_name='Kind of light creation',blank = True,max_length = 900)
|
|
|
- resolution = models.TextField(verbose_name='Resolution and transmitting behaviour',blank = True,max_length = 900)
|
|
|
- pixel_distance = models.CharField(verbose_name='Pixel distance',blank = True,max_length = 300)
|
|
|
- luminance = models.TextField(verbose_name='Luminace',blank = True,max_length = 900)
|
|
|
- urban_situation = models.TextField(verbose_name='Urban situation',blank = True,max_length = 900)
|
|
|
- description_showreel = models.TextField(verbose_name='Description of showreel',blank = True,max_length = 900)
|
|
|
+ facade = TextField(verbose_name='Facade type and geometry (structure)',blank = True,max_length = 900)
|
|
|
+ light_creation = TextField(verbose_name='Kind of light creation',blank = True,max_length = 900)
|
|
|
+ resolution = TextField(verbose_name='Resolution and transmitting behaviour',blank = True,max_length = 900)
|
|
|
+ pixel_distance = CharField(verbose_name='Pixel distance',blank = True,max_length = 300)
|
|
|
+ luminance = TextField(verbose_name='Luminace',blank = True,max_length = 900)
|
|
|
+ urban_situation = TextField(verbose_name='Urban situation',blank = True,max_length = 900)
|
|
|
+ description_showreel = TextField(verbose_name='Description of showreel',blank = True,max_length = 900)
|
|
|
|
|
|
def __iter__(self):
|
|
|
for field in self._meta.fields:
|
|
|
@@ -66,14 +69,14 @@ class Description(models.Model):
|
|
|
|
|
|
|
|
|
class Interaction(models.Model):
|
|
|
- communtity = models.TextField(verbose_name='Community or communities involved',blank = True,max_length = 900)
|
|
|
- host = models.CharField(verbose_name='Host organization',blank = True,max_length = 900)
|
|
|
- legal_form = models.CharField(verbose_name='Legal form',blank=True,max_length = 900)
|
|
|
- issues = models.TextField(verbose_name='Issues addressed',blank = True,max_length = 900)
|
|
|
- impact = models.TextField(verbose_name='Impact',blank = True,max_length = 900)
|
|
|
- tools = models.TextField(verbose_name='Tools developed',blank = True,max_length = 900)
|
|
|
- tools_used = models.TextField(verbose_name='Tools used',blank = True,max_length = 900)
|
|
|
- next_steps = models.TextField(verbose_name='Next steps',blank = True,max_length = 900)
|
|
|
+ communtity = TextField(verbose_name='Community or communities involved',blank = True,max_length = 900)
|
|
|
+ host = CharField(verbose_name='Host organization',blank = True,max_length = 900)
|
|
|
+ legal_form = CharField(verbose_name='Legal form',blank=True,max_length = 900)
|
|
|
+ issues = TextField(verbose_name='Issues addressed',blank = True,max_length = 900)
|
|
|
+ impact = TextField(verbose_name='Impact',blank = True,max_length = 900)
|
|
|
+ tools = TextField(verbose_name='Tools developed',blank = True,max_length = 900)
|
|
|
+ tools_used = TextField(verbose_name='Tools used',blank = True,max_length = 900)
|
|
|
+ next_steps = TextField(verbose_name='Next steps',blank = True,max_length = 900)
|
|
|
|
|
|
def __iter__(self):
|
|
|
for field in self._meta.fields:
|
|
|
@@ -84,18 +87,18 @@ class Interaction(models.Model):
|
|
|
|
|
|
|
|
|
class Contact(models.Model):
|
|
|
- user = models.OneToOneField(User, on_delete=models.CASCADE,blank=True)
|
|
|
- first_name = models.CharField(verbose_name="Vorname", max_length = 100)
|
|
|
- last_name = models.CharField(verbose_name="Nachname", max_length = 100)
|
|
|
- adress = models.CharField(verbose_name="Adresse", blank=True,max_length = 100)
|
|
|
- postcode = models.CharField(verbose_name="Postleitzahl", blank=True, max_length = 100)
|
|
|
- city = models.CharField(verbose_name="Stadt", blank=True,max_length = 100)
|
|
|
- country = models.CharField(verbose_name="Land", blank=True,max_length = 100)
|
|
|
- email = models.EmailField(verbose_name="E-Mail-Addresse", unique=True)
|
|
|
- phonenumber = models.CharField(verbose_name="1. Telefonnummer", blank=True,max_length = 100)
|
|
|
- alternate_phonenumber = models.CharField(verbose_name="2. Telefonnummer", blank = True,max_length = 100)
|
|
|
- skype_name = models.CharField(verbose_name="Skype", blank=True,max_length = 300)
|
|
|
- website = models.URLField(verbose_name="Website", blank=True)
|
|
|
+ user = OneToOneField(User, on_delete=models.CASCADE,blank=True)
|
|
|
+ first_name = CharField(verbose_name="Vorname", max_length = 100)
|
|
|
+ last_name = CharField(verbose_name="Nachname", max_length = 100)
|
|
|
+ adress = CharField(verbose_name="Adresse", blank=True,max_length = 100)
|
|
|
+ postcode = CharField(verbose_name="Postleitzahl", blank=True, max_length = 100)
|
|
|
+ city = CharField(verbose_name="Stadt", blank=True,max_length = 100)
|
|
|
+ country = CharField(verbose_name="Land", blank=True,max_length = 100)
|
|
|
+ email = EmailField(verbose_name="E-Mail-Addresse", unique=True)
|
|
|
+ phonenumber = CharField(verbose_name="1. Telefonnummer", blank=True,max_length = 100)
|
|
|
+ alternate_phonenumber = CharField(verbose_name="2. Telefonnummer", blank = True,max_length = 100)
|
|
|
+ skype_name = CharField(verbose_name="Skype", blank=True,max_length = 300)
|
|
|
+ website = URLField(verbose_name="Website", blank=True)
|
|
|
|
|
|
def __str__(self):
|
|
|
return self.first_name + ' ' + self.last_name
|
|
|
@@ -107,8 +110,8 @@ class Contact(models.Model):
|
|
|
|
|
|
|
|
|
class Category(models.Model):
|
|
|
- name = models.CharField(max_length=100)
|
|
|
- short_name = models.CharField(max_length=10)
|
|
|
+ name = CharField(max_length=100)
|
|
|
+ short_name = CharField(max_length=10)
|
|
|
|
|
|
def __str__(self):
|
|
|
return self.name
|
|
|
@@ -136,7 +139,7 @@ class Product(models.Model):
|
|
|
('Verein', 'Verein'),
|
|
|
('Genossenschaft', 'Genossenschaft'),
|
|
|
('GbR', 'GbR'),
|
|
|
- ('Andere', 'Andere'),
|
|
|
+ ('Sonstiges', 'Sonstiges'),
|
|
|
]
|
|
|
|
|
|
ORT = [
|
|
|
@@ -183,45 +186,45 @@ class Product(models.Model):
|
|
|
('Sonstiges', 'Sonstiges'),
|
|
|
]
|
|
|
|
|
|
- name = models.CharField( 'Name', max_length = 128, help_text="Name des Projekts", null = True, blank=True )
|
|
|
- claim = models.CharField( 'Claim / Untertitel', max_length = 256, help_text="Claim / Untertitel", null = True, blank=True )
|
|
|
- beschreibung = models.CharField( 'Beschreibung', max_length = 256, help_text="Beschreibung des Projektes", null = True, blank=True )
|
|
|
- learning = models.CharField( 'Learning', max_length = 256, help_text="Learning", null = True, blank=True )
|
|
|
- gruendungsjahr = models.IntegerField('Gründungsjahr', help_text="Gründungsjahr des Projekts", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
- betriebgenommen = models.IntegerField('in Betrieb genommen in Jahr', help_text="Wann wurde das Projekt in Betrieb genommen?", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
- status = models.CharField( 'Status', max_length = 3, choices=STATUS, default='ENT', help_text="Was ist der Status des Projektes" , null = True, blank=True )
|
|
|
- adresse = models.CharField( 'Adresse', max_length = 256, help_text="Adresse des Projektes", null = True, blank=True )
|
|
|
- plz = models.CharField ( 'Adresse', max_length = 256, help_text="PLZ des Projektes", null = True, blank=True )
|
|
|
- adresse_zusatz = models.CharField ( 'Adresse Zusatz', max_length = 256, help_text="Adresse Zusatz", null = True, blank=True )
|
|
|
- ort = models.CharField ( 'Ort', max_length = 4, choices=ORT, default='WELT', help_text="Ort des Projektes", null = True, blank=True )
|
|
|
- website = models.URLField ( 'Website', max_length = 2048, help_text="Website des des Projektes", null = True, blank=True )
|
|
|
- frei = models.CharField( 'Platz frei', max_length = 4, choices=FREI, default='NEIN', help_text="Gibt es freie Plätze?", null = True, blank=True )
|
|
|
- rechtsform = models.CharField ( 'Rechtsform', max_length = 32, help_text="Rechtsform des Projektes", null = True, blank=True )
|
|
|
- orga = models.CharField ( 'Organisationsform', max_length = 64, help_text="Organisationsform des Projektes.", null = True, blank=True )
|
|
|
- mitmachen = models.BooleanField( 'Mitmachen möglich', default=False, help_text="Kann jemand mitmachen?", null = True, blank=True )
|
|
|
-
|
|
|
- title = models.CharField('Product Title',max_length = 100)
|
|
|
+ name = CharField( 'Name', max_length = 128, help_text="Name des Projekts", null = True, blank=True )
|
|
|
+ claim = CharField( 'Claim / Untertitel', max_length = 256, help_text="Claim / Untertitel", null = True, blank=True )
|
|
|
+ beschreibung = CharField( 'Beschreibung', max_length = 256, help_text="Beschreibung des Projektes", null = True, blank=True )
|
|
|
+ learning = CharField( 'Learning', max_length = 256, help_text="Learning", null = True, blank=True )
|
|
|
+ gruendungsjahr = IntegerField('Gründungsjahr', help_text="Gründungsjahr des Projekts", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
+ betriebgenommen = IntegerField('in Betrieb genommen in Jahr', help_text="Wann wurde das Projekt in Betrieb genommen?", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
+ status = CharField( 'Status', max_length = 3, choices=STATUS, default='ENT', help_text="Was ist der Status des Projektes" , null = True, blank=True )
|
|
|
+ adresse = CharField( 'Adresse', max_length = 256, help_text="Adresse des Projektes", null = True, blank=True )
|
|
|
+ plz = CharField ( 'Adresse', max_length = 256, help_text="PLZ des Projektes", null = True, blank=True )
|
|
|
+ adresse_zusatz = CharField ( 'Adresse Zusatz', max_length = 256, help_text="Adresse Zusatz", null = True, blank=True )
|
|
|
+ ort = CharField ( 'Ort', max_length = 4, choices=ORT, default='WELT', help_text="Ort des Projektes", null = True, blank=True )
|
|
|
+ website = URLField ( 'Website', max_length = 2048, help_text="Website des des Projektes", null = True, blank=True )
|
|
|
+ frei = CharField( 'Platz frei', max_length = 4, choices=FREI, default='NEIN', help_text="Gibt es freie Plätze?", null = True, blank=False )
|
|
|
+ rechtsform = CharField ( 'Rechtsform', max_length = 32, help_text="Rechtsform des Projektes", null = True, blank=True )
|
|
|
+ orga = CharField ( 'Organisationsform', max_length = 64, help_text="Organisationsform des Projektes.", null = True, blank=True )
|
|
|
+ mitmachen = BooleanField( 'Mitmachen möglich', default=False, help_text="Kann jemand mitmachen?", null = True, blank=False )
|
|
|
+
|
|
|
+ title = CharField('Product Title',max_length = 100)
|
|
|
country = CountryField(blank=True,multiple=True, help_text="")
|
|
|
- city = models.CharField(max_length = 100,null = True, blank=True, help_text="")
|
|
|
- year = models.IntegerField('Year of Completion',null = True, blank=True, help_text="")
|
|
|
- owner = models.CharField(max_length = 300,null = True,blank=True, help_text="")
|
|
|
- teaser_txt = models.TextField(blank = True, max_length = 1050, help_text="")
|
|
|
- header = models.CharField(max_length = 900,null = True, help_text="")
|
|
|
- description_txt = models.TextField(max_length = 3000,null = True, help_text="")
|
|
|
- cid = models.IntegerField(null = True,blank=True, help_text="")
|
|
|
- class_cid = models.CharField(null = True,max_length = 3, blank=True, help_text="")
|
|
|
- sumbitted = models.CharField(null = True,max_length = 10, blank=True, help_text="")
|
|
|
- date_submitted = models.DateField(auto_now_add=True, help_text="")
|
|
|
- terms = models.NullBooleanField(help_text="")
|
|
|
- edit = models.NullBooleanField(help_text="")
|
|
|
- public = models.NullBooleanField(help_text="")
|
|
|
- photo = models.CharField(max_length=500, null=True, blank=True, help_text="")
|
|
|
- videocts = models.CharField(max_length=500, null=True, blank=True, help_text="")
|
|
|
- category = models.ManyToManyField(Category, null=True, help_text="")
|
|
|
- credits = models.ForeignKey(Credit, null = True,on_delete=models.SET_NULL, help_text="")
|
|
|
- description = models.ForeignKey(Description,null = True, on_delete=models.SET_NULL, help_text="")
|
|
|
- contact = models.ForeignKey(Contact, null = True,on_delete=models.SET_NULL, help_text="")
|
|
|
- interaction = models.ForeignKey(Interaction, null = True,on_delete = models.SET_NULL, help_text="")
|
|
|
+ city = CharField(max_length = 100,null = True, blank=True, help_text="")
|
|
|
+ year = IntegerField('Year of Completion',null = True, blank=True, help_text="")
|
|
|
+ owner = CharField(max_length = 300,null = True,blank=True, help_text="")
|
|
|
+ teaser_txt = TextField(blank = True, max_length = 1050, help_text="")
|
|
|
+ header = CharField(max_length = 900,null = True, help_text="")
|
|
|
+ description_txt = TextField(max_length = 3000,null = True, help_text="")
|
|
|
+ cid = IntegerField(null = True,blank=True, help_text="")
|
|
|
+ class_cid = CharField(null = True,max_length = 3, blank=True, help_text="")
|
|
|
+ sumbitted = CharField(null = True,max_length = 10, blank=True, help_text="")
|
|
|
+ date_submitted = DateField(auto_now_add=True, help_text="")
|
|
|
+ terms = NullBooleanField(help_text="")
|
|
|
+ edit = NullBooleanField(help_text="")
|
|
|
+ public = NullBooleanField(help_text="")
|
|
|
+ photo = CharField(max_length=500, null=True, blank=True, help_text="")
|
|
|
+ videocts = CharField(max_length=500, null=True, blank=True, help_text="")
|
|
|
+ category = ManyToManyField(Category, null=True, help_text="")
|
|
|
+ credits = ForeignKey(Credit, null = True,on_delete=models.SET_NULL, help_text="")
|
|
|
+ description = ForeignKey(Description,null = True, on_delete=models.SET_NULL, help_text="")
|
|
|
+ contact = ForeignKey(Contact, null = True,on_delete=models.SET_NULL, help_text="")
|
|
|
+ interaction = ForeignKey(Interaction, null = True,on_delete = models.SET_NULL, help_text="")
|
|
|
|
|
|
def __str__(self):
|
|
|
return str(self.title)
|
|
|
@@ -330,35 +333,36 @@ class Wohnprojekt(Product):
|
|
|
('Kinderspielplatz', 'Kinderspielplatz'),
|
|
|
]
|
|
|
|
|
|
- eigentum = models.CharField ( 'Rechtliche Konstruktion', max_length = 6, choices=EIGENTUM, default='GEMIET', help_text="Rechtliche Konstruktion", null = True, blank=True )
|
|
|
- inseratstext = models.CharField ( 'Inseratstext', max_length = 2048, help_text="Inseratstext", null = True, blank=True )
|
|
|
- altneu = models.CharField ( 'Altbau/Neubau', max_length = 4, choices=ALTNEU, help_text="Altbau/Neubau", null = True, blank=False )
|
|
|
- schwerpunkt = models.CharField ( 'Inhaltlicher Schwerpunkt', max_length = 2048, help_text="Inhaltlicher Schwerpunkt", null = True, blank=True )
|
|
|
- artmodell = models.CharField ( 'Art der Modells', max_length = 4096, choices=ARTMODELL, help_text="Art der Modells", null = True, blank=True )
|
|
|
- bautraeger = models.CharField ( 'Bauträger', max_length = 4096, choices=BAUTRAEGER, help_text="Bauträger", null = True, blank=True )
|
|
|
- aerwachsene = models.IntegerField( 'Anzahl an Erwachsenen', help_text="Anzahl an Erwachsenen", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
- akinder = models.IntegerField( 'Anzahl an Kinder', help_text="Anzahl an Kinder", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
+ eigentum = CharField ( 'Rechtliche Konstruktion', max_length = 6, choices=EIGENTUM, default='GEMIET', help_text="Rechtliche Konstruktion", null = True, blank=True )
|
|
|
+ inseratstext = CharField ( 'Inseratstext', max_length = 2048, help_text="Inseratstext", null = True, blank=True )
|
|
|
+ altneu = CharField ( 'Altbau/Neubau', max_length = 4, choices=ALTNEU, help_text="Altbau/Neubau", null = True, blank=False )
|
|
|
+ schwerpunkt = CharField ( 'Inhaltlicher Schwerpunkt', max_length = 2048, help_text="Inhaltlicher Schwerpunkt", null = True, blank=True )
|
|
|
+ artmodell = CharField ( 'Art der Modells', max_length = 4096, choices=ARTMODELL, help_text="Art der Modells", null = True, blank=True )
|
|
|
+ bautraeger = CharField ( 'Bauträger', max_length = 4096, choices=BAUTRAEGER, help_text="Bauträger", null = True, blank=True )
|
|
|
+ aerwachsene = IntegerField( 'Anzahl an Erwachsenen', help_text="Anzahl an Erwachsenen", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
+ akinder = IntegerField( 'Anzahl an Kinder', help_text="Anzahl an Kinder", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
@property
|
|
|
def amitglieder(self):
|
|
|
return aerwachsene + akinder
|
|
|
- awohnungen = models.IntegerField( 'Anzahl an Wohnungen', help_text="Anzahl an Wohnungen", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
- wohnflaeche = models.IntegerField( 'Wohnfläche', help_text="Wohnfläche", validators=[MinValueValidator(0)], default = 0, null = True, blank=True )
|
|
|
- gewerbeflaechen = models.IntegerField( 'Gewerbeflächen', help_text="Gewerbeflächen", validators=[MinValueValidator(0)], default = 0, null = True, blank=True )
|
|
|
- gemeinschaftsflaeche = models.IntegerField( 'Gemeinschaftsflächen', help_text="Gemeinschaftsflächen", validators=[MinValueValidator(0)], default = 0, null = True, blank=True )
|
|
|
- sonstige_flaechen = models.IntegerField( 'Sonstige Flächen', help_text="Sonstige Flächen", validators=[MinValueValidator(0)], default = 0, null = True, blank=True )
|
|
|
+ awohnungen = IntegerField( 'Anzahl an Wohnungen', help_text="Anzahl an Wohnungen", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
+ wohnflaeche = IntegerField( 'Wohnfläche', help_text="Wohnfläche", validators=[MinValueValidator(0)], default = 0, null = True, blank=True )
|
|
|
+ gewerbeflaechen = IntegerField( 'Gewerbeflächen', help_text="Gewerbeflächen", validators=[MinValueValidator(0)], default = 0, null = True, blank=True )
|
|
|
+ gemeinschaftsflaeche = IntegerField( 'Gemeinschaftsflächen', help_text="Gemeinschaftsflächen", validators=[MinValueValidator(0)], default = 0, null = True, blank=True )
|
|
|
+ sonstige_flaechen = IntegerField( 'Sonstige Flächen', help_text="Sonstige Flächen", validators=[MinValueValidator(0)], default = 0, null = True, blank=True )
|
|
|
@property
|
|
|
def flaeche(self):
|
|
|
return wohnflaeche + gewerbeflaechen + gemeinschaftsflaechen + sonstige_flaechen
|
|
|
- gemeinschaftr = models.CharField ( 'Gemeinschaftsräume', max_length = 4096, choices=GEMEINSCHAFTR, help_text="Gemeinschaftsräume", null = True, blank=True )
|
|
|
- sonderwohnformen = models.CharField ( 'Sonderwohnformen', max_length = 2048, help_text="Sonderwohnformen, z.B. Wohncluster, WGs, Sonstiges", null = True, blank=True )
|
|
|
- raumangebot = models.CharField ( 'Raumangebot nach Außen', max_length = 4096, choices=RAUMANGEBOT, help_text="Raumangebot nach Außen", null = True, blank=True )
|
|
|
- parbeiten = models.IntegerField( 'Wieviele Personen arbeiten im Haus', help_text="Anzahl an Wohnungen", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
- bauweise = models.CharField ( 'Bauweise', max_length = 64, choices=BAUWEISE, help_text="Bauweise", null = True, blank=False )
|
|
|
- zielgruppen = models.CharField ( 'Besondere Zielgruppen', max_length = 64, choices=ZIELGRUPPEN, help_text="Besondere Zielgruppen", null = True, blank=False )
|
|
|
- gprojekte = models.CharField ( 'Gemeinschaftliche Projekte', max_length = 64, choices=GPROJEKTE, help_text="Gemeinschaftliche Projekte", null = True, blank=False )
|
|
|
- oekologie = models.CharField ( 'Ökologie', max_length = 2048, help_text="Ökologie", null = True, blank=False )
|
|
|
- freiraumangebote = models.CharField ( 'Freiraumangebote', max_length = 64, choices=FREIANGEBOT, help_text="Freiraumangebote", null = True, blank=False )
|
|
|
- gaestwohnungen = models.IntegerField( 'Wieviele Personen arbeiten im Haus', help_text="Anzahl an Wohnungen", validators=[MinValueValidator(0)], default = 0 )
|
|
|
+ gemeinschaftr = MultiSelectField ( 'Gemeinschaftsräume', max_length = 4096, choices=GEMEINSCHAFTR, help_text="Gemeinschaftsräume", null = True, blank=True )
|
|
|
+ sonderwohnformen = CharField ( 'Sonderwohnformen', max_length = 2048, help_text="Sonderwohnformen, z.B. Wohncluster, WGs, Sonstiges", null = True, blank=True )
|
|
|
+ raumangebot = MultiSelectField ( 'Raumangebot nach Außen', max_length = 4096, choices=RAUMANGEBOT, help_text="Raumangebot nach Außen", null = True, blank=True )
|
|
|
+ parbeiten = IntegerField ( 'Wie viele Personen arbeiten im Haus', help_text="Wie viele Personen arbeiten im Haus", validators=[MinValueValidator(0), MaxValueValidator(9999)], null = True, blank=True )
|
|
|
+ karbeiten = CharField ( 'Wie viele Personen arbeiten im Haus - Kommentar', max_length = 2048, help_text="Kommentar", null = True, blank=True )
|
|
|
+ bauweise = CharField ( 'Bauweise', max_length = 64, choices=BAUWEISE, help_text="Bauweise", null = True, blank=True )
|
|
|
+ zielgruppen = CharField ( 'Besondere Zielgruppen', max_length = 64, choices=ZIELGRUPPEN, help_text="Besondere Zielgruppen", null = True, blank=True )
|
|
|
+ gprojekte = CharField ( 'Gemeinschaftliche Projekte', max_length = 64, choices=GPROJEKTE, help_text="Gemeinschaftliche Projekte", null = True, blank=True )
|
|
|
+ oekologie = CharField ( 'Ökologie', max_length = 2048, help_text="Ökologie", null = True, blank=True )
|
|
|
+ freiraumangebote = CharField ( 'Freiraumangebote', max_length = 64, choices=FREIANGEBOT, help_text="Freiraumangebote", null = True, blank=False )
|
|
|
+ gaestwohnungen = IntegerField ( 'Anzahl an Gästewohnungen', help_text="Anzahl an Gästewohnungen", validators=[MinValueValidator(0)], default = 0 )
|
|
|
|
|
|
@receiver(post_delete, sender=Product)
|
|
|
def auto_delete_reverse_keys(sender, instance, **kwargs):
|
|
|
@@ -372,9 +376,9 @@ def auto_delete_reverse_keys(sender, instance, **kwargs):
|
|
|
|
|
|
|
|
|
class Link(models.Model):
|
|
|
- Product = models.ForeignKey(Product, on_delete=models.CASCADE)
|
|
|
- link_description = models.CharField(null=True, blank=True, max_length = 2048)
|
|
|
- link = models.URLField(null=True, blank=True, max_length = 2048)
|
|
|
+ Product = ForeignKey(Product, on_delete=models.CASCADE)
|
|
|
+ link_description = CharField(null=True, blank=True, max_length = 2048)
|
|
|
+ link = URLField(null=True, blank=True, max_length = 2048)
|
|
|
|
|
|
def Product_path(instance, filename):
|
|
|
return 'marktplatz/media/{0}/{1}'.format(instance.Product.id, filename)
|
|
|
@@ -383,12 +387,12 @@ def Product_path(instance, filename):
|
|
|
class Media(models.Model):
|
|
|
fs = FileSystemStorage(location=settings.MEDIA_ROOT)
|
|
|
|
|
|
- Product = models.ForeignKey(Product, on_delete=models.CASCADE)
|
|
|
- name_for = models.CharField(blank = True,max_length = 256)
|
|
|
+ Product = ForeignKey(Product, on_delete=models.CASCADE)
|
|
|
+ name_for = CharField(blank = True,max_length = 256)
|
|
|
|
|
|
- filename = models.CharField(max_length = 100)
|
|
|
- copyright = models.CharField(blank=True, max_length = 100)
|
|
|
- image = models.ImageField(upload_to=Product_path,storage=fs)
|
|
|
+ filename = CharField(max_length = 100)
|
|
|
+ copyright = CharField(blank=True, max_length = 100)
|
|
|
+ image = ImageField(upload_to=Product_path,storage=fs)
|
|
|
image_small = ProcessedImageField(upload_to=Product_path,
|
|
|
processors=[ResizeToCover(640, 360)],
|
|
|
format='JPEG',
|
|
|
@@ -511,12 +515,12 @@ def auto_delete_file_on_delete(sender, instance, **kwargs):
|
|
|
|
|
|
|
|
|
class Video(models.Model):
|
|
|
- Product = models.ForeignKey(Product, on_delete=models.CASCADE)
|
|
|
- name_for = models.CharField(blank=True, max_length=256)
|
|
|
+ Product = ForeignKey(Product, on_delete=models.CASCADE)
|
|
|
+ name_for = CharField(blank=True, max_length=256)
|
|
|
|
|
|
- filename = models.CharField(max_length=100)
|
|
|
- copyright = models.CharField(blank=True, max_length=100)
|
|
|
- image = models.FileField(upload_to=Product_path)
|
|
|
+ filename = CharField(max_length=100)
|
|
|
+ copyright = CharField(blank=True, max_length=100)
|
|
|
+ image = FileField(upload_to=Product_path)
|
|
|
|
|
|
@receiver(models.signals.post_delete, sender=Video)
|
|
|
def auto_delete_video_on_delete(sender, instance, **kwargs):
|
|
|
@@ -551,10 +555,10 @@ def auto_delete_video_on_delete(sender, instance, **kwargs):
|
|
|
|
|
|
|
|
|
class Vote(models.Model):
|
|
|
- Product = models.ForeignKey(Product, on_delete=models.CASCADE)
|
|
|
- juryMember = models.ForeignKey(User, on_delete = models.CASCADE)
|
|
|
- vote = models.PositiveSmallIntegerField(default=0)
|
|
|
- comment = models.CharField(blank=True, max_length =300)
|
|
|
+ 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:
|