Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding: utf-8
- from __future__ import absolute_import
- from django.db import models
- from django.contrib.auth.models import User
- class Instrutor(models.Model):
- nome = models.CharField(max_length=250, verbose_name='Nome do Professor')
- login = models.OneToOneField(User)
- telefone = models.CharField(max_length=11, blank=True, null=True)
- celular = models.CharField(max_length=11, blank=True, null=True)
- endereco = models.CharField(max_length=250, blank=True, null=True)
- cidade = models.CharField(max_length=200, verbose_name='Cidade')
- email = models.EmailField(verbose_name='Email', blank=True, null=True)
- observacao = models.CharField(max_length=250, blank=True, null=True)
- class Meta:
- verbose_name = 'Instrutor'
- verbose_name_plural = 'Instrutores'
- def __unicode__(self):
- return self.nome
- class Plano(models.Model):
- nome = models.CharField(max_length=250, unique=True)
- valor = models.CharField(max_length=10)
- qt_aulas = models.IntegerField(verbose_name="Quantidade de Aulas")
- status = models.BooleanField('Ativo')
- class Meta:
- verbose_name = 'Plano'
- verbose_name_plural = 'Planos'
- def __unicode__(self):
- return self.nome
- class Aluno(models.Model):
- login = models.OneToOneField(User)
- nome = models.CharField(max_length=250)
- telefone = models.CharField(max_length=11, blank=True, null=True)
- celular = models.CharField(max_length=11, blank=True, null=True)
- bairro = models.CharField(max_length=200, blank=True, null=True)
- endereco = models.CharField(max_length=250, blank=True, null=True)
- data_nasc = models.DateField('Data Nascimento')
- status = models.BooleanField('Ativo')
- obs = models.TextField(blank=True, null=True)
- cpf = models.CharField(max_length=14, blank=True, null=True)
- class Meta:
- verbose_name = 'Aluno'
- verbose_name_plural = 'Alunos'
- def __unicode__(self):
- return self.nome
- class PlanoAluno(models.Model):
- plano = models.ForeignKey(Plano)
- aluno = models.ForeignKey(Aluno)
- qt_aulas = models.IntegerField('Quantidade de Aulas', null=True, blank=True)
- qt_restante = models.IntegerField('Quantidade de Aulas restantes', null=True, blank=True)
- class Meta:
- verbose_name = 'Plano do Aluno'
- verbose_name_plural = 'Planos dos Alunos'
- def __unicode__(self):
- return self.plano.nome
- def save(self, *args, **kwargs):
- if self.qt_aulas is None:
- self.qt_aulas = self.plano.qt_aulas
- if self.qt_restante is None:
- self.qt_restante = self.plano.qt_aulas
- super(PlanoAluno, self).save(*args, **kwargs)
- class Aula(models.Model):
- instrutor = models.ForeignKey(Instrutor)
- cliente = models.ForeignKey(User)
- plano = models.ForeignKey(PlanoAluno)
- data_start = models.DateTimeField(verbose_name='Inicio da Aula')
- data_end = models.DateTimeField(verbose_name='Fim da Aula')
- descricao = models.TextField(verbose_name='Descrição da Aula')
- class Meta:
- verbose_name = 'Aula'
- verbose_name_plural = 'Aulas'
- ordering = ['-data_start']
- permissions = (
- ('aluno', 'Acesso de Cliente'),
- ('instrutor', 'Acesso de Instrutor'),
- ('recepcionista', 'Acesso de Recepcionista'),
- ('admin', 'Acesso de Administrador'))
- def __unicode__(self):
- return '{}'.format(self.id)
- def save(self, *args, **kwargs):
- if not self.plano.qt_restante:
- self.plano.qt_restante = self.plano.plano.qt_aulas
- self.plano.qt_restante -= 1
- self.plano.save()
- super(Aula, self).save(*args, **kwargs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement