from service.models import Service class ExpoMixin(object): def get_logo(self): logo = self.files.filter(purpose='logo') if logo: return logo[0] return logo def get_preview(self): preview = self.files.filter(purpose='preview') if preview: return preview[0] return preview def get_photos(self): photos = self.files.filter(purpose='photo') return photos class EventMixin(object): def get_permanent_url(self): url = '%sevent-%s'%(self.get_catalog_url(), self.url) return url def get_logo(self): logo = self.files.filter(purpose='logo') if logo: return logo[0] return logo def get_preview(self): preview = self.files.filter(purpose='preview') if preview: return preview[0] return preview def get_photos(self): photos = self.files.filter(purpose='photo') return photos def on(self): self.is_published = True self.canceled_by_administrator = False self.save() def off(self): self.is_published = False self.canceled_by_administrator = True self.save() def cancel(self): self.canceled_by_administrator = True def get_services(self): ids = [item for item, bool in self.services if bool==True] return [Service.objects.get(id=id) for id in ids]