Ejemplo n.º 1
0
class Extra(models.Model):
    """
    some wrongly analysed table that add extra column to existing one (not a django way of life)

    """
    company = models.IntegerField()
    customer_id = models.IntegerField()
    sales_revenue = models.FloatField()
    customer = CompositeOneToOneField(Customer,
                                      on_delete=CASCADE,
                                      related_name='extra',
                                      to_fields=["company", "customer_id"])
Ejemplo n.º 2
0
class President(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    assos_id = models.OneToOneField(Association,
                                    on_delete=models.CASCADE,
                                    related_name='president')
    manager = CompositeOneToOneField(Manager,
                                     on_delete=models.CASCADE,
                                     to_fields={"assos_id", "user"})

    def clean(self):
        super(President, self).clean()
        manager_id = getattr(self.manager, 'id')
        if (manager_id is None):
            raise ValidationError(
                _("Can't create President where id of \
manager referenced is None"))
        else:
            try:
                Manager.objects.get(pk=manager_id)
            except Manager.DoesNotExist:
                raise ValidationError({
                    'manager':
                    _("Matching Manager does not \
exist, it was probably deleted")
                })

    class Meta:
        verbose_name = _("President")
        verbose_name_plural = _("Presidents")

    def __str__(self):
        return '%s from %s' % (self.user.username, self.assos_id.name)

    def save(self, *args, **kwargs):
        super(President, self).save(*args, **kwargs)
        assign_perm('manage_manager', self.user, self.assos_id)
        assign_perm('delete_association', self.user, self.assos_id)
        assign_perm('change_association', self.user, self.assos_id)
        assign_perm('modify_event', self.user, self.assos_id)
        assign_perm('remove_event', self.user, self.assos_id)
        assign_perm('make_event_cancelable', self.user, self.assos_id)
        assign_perm('validate_event', self.user, self.assos_id)

    def delete(self):
        remove_perm('manage_manager', self.user, self.assos_id)
        remove_perm('delete_association', self.user, self.assos_id)
        remove_perm('change_association', self.user, self.assos_id)
        remove_perm('modify_event', self.user, self.assos_id)
        remove_perm('remove_event', self.user, self.assos_id)
        remove_perm('make_event_cancelable', self.user, self.assos_id)
        remove_perm('validate_event', self.user, self.assos_id)
        super(President, self).delete()
Ejemplo n.º 3
0
class Manager(models.Model):
    user = models.ForeignKey(User,
                             on_delete=models.CASCADE,
                             related_name="managerships")
    assos_id = models.ForeignKey(Association,
                                 on_delete=models.CASCADE,
                                 related_name='managers')
    member = CompositeOneToOneField(Member,
                                    on_delete=models.CASCADE,
                                    to_fields={"assos_id", "user"})

    def clean(self):
        super(Manager, self).clean()
        member_id = getattr(self.member, 'id')
        if (member_id is None):
            raise ValidationError(
                _("Can't create Manager where id of member\
 referenced is None"))
        else:
            try:
                Member.objects.get(pk=member_id)
            except Member.DoesNotExist:
                raise ValidationError({
                    'member':
                    _("Matching member does not \
exist, it was probably deleted")
                })

    class Meta:
        verbose_name = _("Member of the Bureau")
        verbose_name_plural = _("Members of the Bureau")

    def __str__(self):
        return '%s from %s' % (self.user.username, self.assos_id.name)

    def save(self, *args, **kwargs):
        super(Manager, self).save(*args, **kwargs)
        assign_perm('manage_member', self.user, self.assos_id)
        assign_perm('choose_staff', self.user, self.assos_id)

    def delete(self):
        remove_perm('choose_staff', self.user, self.assos_id)
        remove_perm('manage_member', self.user, self.assos_id)
        super(Manager, self).delete()
Ejemplo n.º 4
0
class Activity(models.Model):
    startdate = models.DateField(
        db_column='StartDate', primary_key=True)  # Field name made lowercase.
    jobtitle = models.CharField(db_column='JobTitle',
                                max_length=40)  # Field name made lowercase.
    rownumber = models.IntegerField(
        db_column='RowNumber')  # Field name made lowercase.
    jobdetail = models.TextField(db_column='JobDetail', blank=True,
                                 null=True)  # Field name made lowercase.
    #virtual field
    job = CompositeOneToOneField(Job,
                                 on_delete=CASCADE,
                                 related_name='activity',
                                 to_fields=('startdate', 'jobtitle'))

    class Meta:
        managed = False
        db_table = 'activity'
        unique_together = (('startdate', 'jobtitle', 'rownumber'), )
Ejemplo n.º 5
0
class Activiteit(models.Model):
    startdatum = models.DateField(
        db_column='StartDatum', primary_key=True)  # Field name made lowercase.
    functienaam = models.CharField(db_column='FunctieNaam',
                                   max_length=40)  # Field name made lowercase.
    rijnummer = models.IntegerField(
        db_column='RijNummer')  # Field name made lowercase.
    detailregel = models.TextField(db_column='DetailRegel',
                                   blank=True,
                                   null=True)  # Field name made lowercase.
    #virtual field
    functie = CompositeOneToOneField(Functie,
                                     on_delete=CASCADE,
                                     related_name='activiteit',
                                     to_fields=('startdatum', 'functienaam'))

    class Meta:
        managed = False
        db_table = 'activiteit'
        unique_together = (('startdatum', 'functienaam', 'rijnummer'), )