# -*- coding: utf-8 -*- from django.db import models from django.db.models.signals import post_save from hvad.models import TranslatableModel, TranslatedFields from django.contrib.contenttypes import generic from django.db.models.signals import post_save from functions.signal_handlers import post_save_handler class Photoreport(TranslatableModel): #photo = models.ManyToManyField(Photo, blank=True, null=True, related_name='photos') url=models.SlugField(unique=True) exposition = models.ForeignKey('exposition.Exposition', null=True) conference = models.ForeignKey('conference.Conference', null=True) seminar = models.ForeignKey('seminar.Seminar', null=True) files = generic.GenericRelation('file.FileModel', content_type_field='content_type', object_id_field='object_id') photos = generic.GenericRelation('file.Photo', content_type_field='content_type', object_id_field='object_id') main_page = models.PositiveIntegerField(default=0, db_index=True) views = models.PositiveIntegerField(default=0) translations = TranslatedFields( name = models.CharField(max_length=30), description = models.TextField(blank=True), #-----meta data--------- title = models.CharField(max_length=250, blank=True), descriptions = models.CharField(max_length=250, blank=True), keywords = models.CharField(max_length=250,blank=True), ) def get_event(self): if self.exposition: return self.exposition if self.conference: return self.conference if self.seminar: return self.seminar return None def get_photos(self): return self.photos.all() def get_photos_count(self): return len(self.photos.all()) post_save.connect(post_save_handler, sender=Photoreport)