from django.db import models class Contact(models.Model): """Contact model. Person to be called by users""" id = models.AutoField(primary_key=True) first_name = models.CharField(max_length=64) last_name = models.CharField(max_length=64) phone = models.CharField(max_length=32) twitter = models.CharField(max_length=64, blank=True) mail = models.CharField(max_length=255, blank=True) def __unicode__(self): return '%s %s' % (self.first_name, self.last_name) class Campaign(models.Model): """Campaign model, describe what have to be achieved""" id = models.AutoField(primary_key=True) title = models.CharField(max_length=255) description = models.CharField(max_length=512, blank=True) start_date = models.DateField() end_date = models.DateField() default_lang = models.CharField(max_length=5) def __unicode__(self): return self.title class Argumentary(models.Model): """Argumentary in a given language for a campaign""" id = models.AutoField(primary_key=True) campaign = models.ForeignKey(Campaign) lang = models.CharField(max_length=255) text = models.TextField(null=True) def __unicode__(self): return 'Argumentary in %s for %s' % (self.lang, self.campaign.title) class CampaignContact(models.Model): """List contact related to a campaign with a given weight""" id = models.AutoField(primary_key=True) campaign = models.ForeignKey(Campaign) contact = models.ForeignKey(Contact) weight = models.IntegerField(default=0) def __unicode__(self): return 'Contact %s on %s' % (self.contact, self.campaign.title)