# -*- coding: utf-8 -*- from django.db import models from hvad.models import TranslatableModel, TranslatedFields, TranslationManager from functions.custom_fields import EnumField CURENCIES = ('', 'USD', 'RUB', 'EUR') class Service(TranslatableModel): url = models.SlugField(unique=True) currency = EnumField(values=CURENCIES, blank=True, default='USD') price = models.PositiveIntegerField(blank=True, null=True) params = models.CharField(max_length=255, blank=True) template = models.CharField(max_length=255, blank=True) #translated fields translations = TranslatedFields( name = models.CharField(max_length=50), main_title = models.TextField(), description = models.TextField(), advantage = models.TextField(blank=True), #meta fields title = models.CharField(max_length=255, blank=True), descriptions = models.CharField(max_length=255, blank=True), keywords = models.CharField(max_length=255, blank=True), ) sort = models.PositiveIntegerField(default=0, db_index=True) main_page = models.PositiveIntegerField(default=0, db_index=True) def __unicode__(self): return self.lazy_translation_getter('name', self.pk) def get_form(self): pass def get_permanent_url(self): return '/service/%s/'%self.url def get_price(self): pr = self.price from django.db.models.signals import post_save from functions.signal_handlers import post_save_handler post_save.connect(post_save_handler, sender=Service) class AbstractOrder(models.Model): person = models.ForeignKey('accounts.User') phone = models.BigIntegerField() city = models.CharField(max_length=255) country = models.CharField(max_length=255) person_inf = models.CharField(max_length=255) price = models.IntegerField(blank=True, null=True) currency = EnumField(values=CURENCIES, blank=True) exposition = models.ForeignKey('exposition.Exposition', null=True) conference = models.ForeignKey('conference.Conference', null=True) seminar = models.ForeignKey('seminar.Seminar', null=True) created = models.DateTimeField(auto_now_add=True) viewed = models.DateTimeField(null=True, blank=True) class Meta: abstract = True ordering = ['-created'] class Catalog(AbstractOrder): pass class Tickets(AbstractOrder): days = models.SmallIntegerField() people = models.SmallIntegerField() class Remote(AbstractOrder): interested_participants = models.TextField(blank=True) additional = models.CharField(max_length=255) class Participation(AbstractOrder): area = models.IntegerField(null=True) area_type = models.CharField(max_length=255) company_inf = models.TextField() class Translation(AbstractOrder): days = models.IntegerField() hours = models.IntegerField() fr = models.DateField() to = models.DateField() languages = models.TextField() themes = models.TextField() class Visit(AbstractOrder): fr = models.DateField() to = models.DateField() people = models.IntegerField() hotel_additional = models.TextField(blank=True) city_from = models.CharField(max_length=255, blank=True) hotel_stars = models.CharField(max_length=30, blank=True) hotel_location = models.CharField(max_length=255, blank=True) hotel_budget = models.CharField(max_length=255, blank=True) hotel_budget_add = models.CharField(max_length=255, blank=True) avia_tickets = models.BooleanField() avia_type = models.CharField(max_length=255) visa = models.BooleanField() transfer = models.BooleanField() event_tickets = models.BooleanField() # translator = models.BooleanField() languages = models.CharField(max_length=255, blank=True) themes = models.CharField(max_length=255, blank=True) tr_employment_days = models.PositiveIntegerField(blank=True, null=True) tr_employment_hours = models.PositiveIntegerField(blank=True, null=True) excursion = models.BooleanField() notes = models.TextField(blank=True) class Advertising(AbstractOrder): pass class CallBack(models.Model): phone = models.CharField(max_length=30) person_inf = models.CharField(max_length=255) created = models.DateTimeField(auto_now_add=True) viewed = models.DateTimeField(null=True, blank=True) class Meta: ordering = ['-created']