class DocumentacaoCurricular(DocumentacaoMixin): vinculo = ForeignKey('Vinculo', Vinculo) tipo = ForeignKey('Tipo', TipoDocumentacaoCurricular) class Meta: verbose_name = 'Documentação curricular' verbose_name_plural = 'Documentações curriculares'
class DocumentacaoPessoal(DocumentacaoMixin): prestador = ForeignKey('Prestador', Prestador) tipo = ForeignKey('Tipo', TipoDocumentacaoPessoal) class Meta: verbose_name = 'Documentação pessoal' verbose_name_plural = 'Documentações pessoais' def __str__(self): return "%s - %s" % (self.tipo, self.valor)
class Vaga(Model): edital = ForeignKey('Edital', Edital) funcao = ForeignKey('Função', Funcao) carga_horaria = PositiveSmallIntegerField('Carga horária', validators=[MaxValueValidator(168)]) class Meta: verbose_name = 'Vaga' verbose_name_plural = 'Vagas' def __str__(self): return "%s do edital %s" % (self.funcao, self.edital,)
class Reserva(Model): prestador = ForeignKey('Prestador', Prestador) vaga = ForeignKey('Vaga', Vaga) ordem = PositiveSmallIntegerField('Ordem') convocado_em = DateField('Convocado em', null=True, blank=True) assumiu_em = DateField('Assumiu em', null=True, blank=True) desistencia_em = DateField('Desistência em', null=True, blank=True) termo_desistencia = CharField('Termo desistência', max_length=250, null=True, blank=True) observacao = TextField('Observações', null=True, blank=True) class Meta: verbose_name = 'Reserva' verbose_name_plural = 'Reservas' def __str__(self): return "%s - %sº como %s" % (self.prestador, self.ordem, self.vaga)
class Funcao(TipoAbstract): tipo_carga_horaria = ForeignKey('Tipo de carga horária', CargaHoraria) class Meta: verbose_name = 'Função' verbose_name_plural = 'Funções' ordering = ['nome'] def __str__(self): return "%s (%s)" % (self.nome, self.tipo_carga_horaria.nome)
class Pagamento(Model): vinculo = ForeignKey('Vínculo', Vinculo) valor = DecimalField('Valor', max_digits=10, decimal_places=2) data_empenho = DateField('Data do empenho') class Meta: verbose_name = 'Pagamento' verbose_name_plural = 'Pagamentos' def __str__(self): return "%s - %s - %s" % (self.vinculo, self.valor, self.data_empenho)
class Vinculo(Model): prestador = ForeignKey('Prestador', Prestador) vaga = ForeignKey('Vaga', Vaga) eh_servidor = BooleanField('É servidor?') data_empenho = DateField('Data do empenho', null=True, blank=True) numero_empenho = CharField('Número do empenho', max_length=20, null=True, blank=True) valor_total_empenho = DecimalField('Valor total do empenho', max_digits=10, decimal_places=2, null=True, blank=True) valor_carga_horaria = DecimalField('Valor por hora', max_digits=10, decimal_places=2) data_inicio_previsto = DateField('Data de início previsto') data_fim_previsto = DateField('Data de fim previsto') data_inicio = DateField('Data de início real', null=True, blank=True) data_fim_real = DateField('Data de fim real', null=True, blank=True) observacao = TextField('Observações', null=True, blank=True) class Meta: verbose_name = 'Vínculo' verbose_name_plural = 'Vínculos' def __str__(self): return "%s - %s" % (self.prestador, self.vaga)
class Edital(Model): identificacao = CharField('Identificação do edital', max_length=250, validators=[RegexValidator(regex='^\d*/\d{4} .+')], help_text='Formato: 0001/2018 UORG-UORG-UORG - Evite colocar a descrição aqui') descricao = CharField('Descrição', max_length=250) link = URLField() programa = ForeignKey('Programa', Programa) class Meta: verbose_name = 'Edital' verbose_name_plural = 'Editais' def __str__(self): return self.identificacao
class Contato(Model): TIPO_TELEFONE = 'Telefone' TIPO_CELULAR = 'Celular' TIPO_VOIP = 'VoIP' TIPO_EMAIL = 'E-Mail' TIPO_IM = 'Instant Message' TIPO_SITE = 'Site' TIPO_ENDERECO = 'Endereço' TIPO_CHOICES = to_choice(TIPO_TELEFONE, TIPO_CELULAR, TIPO_VOIP, TIPO_EMAIL, TIPO_IM, TIPO_SITE, TIPO_ENDERECO) prestador = ForeignKey('Prestador', Prestador) tipo = CharField('Tipo', max_length=20, choices=TIPO_CHOICES) principal = BooleanField('Principal') nome = CharField('Nome', max_length=250, null=True, blank=True) valor = CharField('Contato', max_length=250, null=True, blank=True) observacao = TextField('Observações', null=True, blank=True) class Meta: verbose_name = 'Contato' verbose_name_plural = 'Contatos' def __str__(self): return "%s (%s) - %s %s" % (self.nome, self.valor, self.tipo, self.principal, )