|
|
@@ -22,9 +22,9 @@ import datetime
|
|
|
import shutil
|
|
|
|
|
|
class Credit(models.Model):
|
|
|
- owner = models.CharField(verbose_name='Building or project owner',blank=True,max_length = 300)
|
|
|
+ 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='Project artist/ concept/ design/ planning',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)
|
|
|
@@ -34,10 +34,10 @@ class Credit(models.Model):
|
|
|
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)
|
|
|
- project_coordination = models.CharField(verbose_name='Project co-ordination',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='Project sponsor/ support',blank = True,max_length = 500)
|
|
|
+ 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)
|
|
|
|
|
|
def __iter__(self):
|
|
|
@@ -111,8 +111,11 @@ class Category(models.Model):
|
|
|
return self.name
|
|
|
|
|
|
|
|
|
-class Project(models.Model):
|
|
|
- title = models.CharField('Project Title',max_length = 100)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+class Product(models.Model):
|
|
|
+ title = models.CharField('Product Title',max_length = 100)
|
|
|
country = CountryField(blank=True,multiple=True)
|
|
|
city = models.CharField(max_length = 100,null = True, blank=True)
|
|
|
year = models.IntegerField('Year of Completion',null = True, blank=True)
|
|
|
@@ -135,7 +138,6 @@ class Project(models.Model):
|
|
|
contact = models.ForeignKey(Contact, null = True,on_delete=models.SET_NULL)
|
|
|
interaction = models.ForeignKey(Interaction, null = True,on_delete = models.SET_NULL)
|
|
|
|
|
|
-
|
|
|
def __str__(self):
|
|
|
return str(self.title)
|
|
|
|
|
|
@@ -144,7 +146,11 @@ class Project(models.Model):
|
|
|
yield (field.verbose_name, field.value_to_string(self))
|
|
|
|
|
|
|
|
|
-@receiver(post_delete, sender=Project)
|
|
|
+class BuildingProduct(Product):
|
|
|
+ additionalInfo = models.CharField('Product Title',max_length = 100)
|
|
|
+
|
|
|
+
|
|
|
+@receiver(post_delete, sender=Product)
|
|
|
def auto_delete_reverse_keys(sender, instance, **kwargs):
|
|
|
if instance.credits:
|
|
|
instance.credits.delete()
|
|
|
@@ -156,36 +162,36 @@ def auto_delete_reverse_keys(sender, instance, **kwargs):
|
|
|
|
|
|
|
|
|
class Link(models.Model):
|
|
|
- project = models.ForeignKey(Project, on_delete=models.CASCADE)
|
|
|
+ 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)
|
|
|
|
|
|
-def project_path(instance, filename):
|
|
|
- return 'jurysys/media/{0}/{1}'.format(instance.project.id, filename)
|
|
|
+def Product_path(instance, filename):
|
|
|
+ return 'marktplatz/media/{0}/{1}'.format(instance.Product.id, filename)
|
|
|
|
|
|
|
|
|
class Media(models.Model):
|
|
|
fs = FileSystemStorage(location=settings.MEDIA_ROOT)
|
|
|
|
|
|
- project = models.ForeignKey(Project, on_delete=models.CASCADE)
|
|
|
+ Product = models.ForeignKey(Product, on_delete=models.CASCADE)
|
|
|
name_for = models.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=project_path,storage=fs)
|
|
|
- image_small = ProcessedImageField(upload_to=project_path,
|
|
|
+ image = models.ImageField(upload_to=Product_path,storage=fs)
|
|
|
+ image_small = ProcessedImageField(upload_to=Product_path,
|
|
|
processors=[ResizeToCover(640, 360)],
|
|
|
format='JPEG',
|
|
|
options={'quality': 90})
|
|
|
- image_medium= ProcessedImageField(upload_to=project_path,
|
|
|
+ image_medium= ProcessedImageField(upload_to=Product_path,
|
|
|
processors=[ResizeToCover(960, 540)],
|
|
|
format='JPEG',
|
|
|
options={'quality': 90})
|
|
|
- image_big = ProcessedImageField(upload_to=project_path,
|
|
|
+ image_big = ProcessedImageField(upload_to=Product_path,
|
|
|
processors=[ResizeToCover(1920, 1080)],
|
|
|
format='JPEG',
|
|
|
options={'quality': 90})
|
|
|
- image_norm = ProcessedImageField(upload_to=project_path,
|
|
|
+ image_norm = ProcessedImageField(upload_to=Product_path,
|
|
|
processors=[Thumbnail(640, 360)],
|
|
|
format='JPEG',
|
|
|
options={'quality': 90},
|
|
|
@@ -225,10 +231,10 @@ def auto_delete_file_on_delete(sender, instance, **kwargs):
|
|
|
if os.path.isfile(instance.image_norm.path):
|
|
|
os.remove(instance.image_norm.path)
|
|
|
#
|
|
|
- #print(settings.MEDIA_ROOT+'/jurysys/media/{0}/{1}'.format(instance.project.id, instance.image.name))
|
|
|
- #print(instance.project.id, instance.image.path)
|
|
|
- #os.remove(settings.MEDIA_ROOT+'/jurysys/media/{0}/{1}_big'.format(instance.project.id, instance.filename))
|
|
|
- #os.remove(settings.MEDIA_ROOT+'/jurysys/media/{0}/{1}.jpg'.format(instance.project.id, instance.image.name))
|
|
|
+ #print(settings.MEDIA_ROOT+'/marktplatz/media/{0}/{1}'.format(instance.Product.id, instance.image.name))
|
|
|
+ #print(instance.Product.id, instance.image.path)
|
|
|
+ #os.remove(settings.MEDIA_ROOT+'/marktplatz/media/{0}/{1}_big'.format(instance.Product.id, instance.filename))
|
|
|
+ #os.remove(settings.MEDIA_ROOT+'/marktplatz/media/{0}/{1}.jpg'.format(instance.Product.id, instance.image.name))
|
|
|
|
|
|
|
|
|
|
|
|
@@ -295,12 +301,12 @@ def auto_delete_file_on_delete(sender, instance, **kwargs):
|
|
|
|
|
|
|
|
|
class Video(models.Model):
|
|
|
- project = models.ForeignKey(Project, on_delete=models.CASCADE)
|
|
|
+ Product = models.ForeignKey(Product, on_delete=models.CASCADE)
|
|
|
name_for = models.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=project_path)
|
|
|
+ image = models.FileField(upload_to=Product_path)
|
|
|
|
|
|
@receiver(models.signals.post_delete, sender=Video)
|
|
|
def auto_delete_video_on_delete(sender, instance, **kwargs):
|
|
|
@@ -335,7 +341,7 @@ def auto_delete_video_on_delete(sender, instance, **kwargs):
|
|
|
|
|
|
|
|
|
class Vote(models.Model):
|
|
|
- project = models.ForeignKey(Project, on_delete=models.CASCADE)
|
|
|
+ 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)
|