mirror of https://github.com/interlegis/sigi.git
Lude Ribeiro
3 years ago
7 changed files with 196 additions and 12 deletions
@ -0,0 +1,37 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import models, migrations |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('servidores', '0007_auto_20210430_0735'), |
|||
('eventos', '0009_tipoevento_categoria'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='Modulo', |
|||
fields=[ |
|||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
|||
('nome', models.CharField(max_length=100, verbose_name='Nome')), |
|||
('descricao', models.TextField(verbose_name='Descri\xe7\xe3o do m\xf3dulo')), |
|||
('tipo', models.CharField(max_length=1, verbose_name='Tipo', choices=[(b'A', 'Aula'), (b'P', 'Palestra'), (b'R', 'Apresenta\xe7\xe3o')])), |
|||
('inicio', models.DateTimeField(null=True, verbose_name='Data/hora de in\xedcio', blank=True)), |
|||
('termino', models.DateTimeField(null=True, verbose_name='Data/hora de t\xe9rmino', blank=True)), |
|||
('carga_horaria', models.PositiveIntegerField(default=0, verbose_name='carga hor\xe1ria')), |
|||
('qtde_participantes', models.PositiveIntegerField(default=0, help_text='Deixar Zero significa que todos os participantes do evento participaram do m\xf3dulo', verbose_name='n\xfamero de participantes')), |
|||
('apresentador', models.ForeignKey(related_name='modulo_apresentador', on_delete=django.db.models.deletion.PROTECT, verbose_name='Apresentador', blank=True, to='servidores.Servidor', null=True)), |
|||
('evento', models.ForeignKey(verbose_name='Evento', to='eventos.Evento')), |
|||
('monitor', models.ForeignKey(related_name='modulo_monitor', on_delete=django.db.models.deletion.PROTECT, blank=True, to='servidores.Servidor', help_text='Monitor, mediador, auxiliar, etc.', null=True, verbose_name='Monitor')), |
|||
], |
|||
options={ |
|||
'verbose_name': 'M\xf3dulo do evento', |
|||
'verbose_name_plural': 'M\xf3dulos do evento', |
|||
}, |
|||
bases=(models.Model,), |
|||
), |
|||
] |
@ -0,0 +1,24 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import models, migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('eventos', '0010_modulo'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterModelOptions( |
|||
name='modulo', |
|||
options={'ordering': ('inicio',), 'verbose_name': 'M\xf3dulo do evento', 'verbose_name_plural': 'M\xf3dulos do evento'}, |
|||
), |
|||
migrations.AddField( |
|||
model_name='evento', |
|||
name='total_participantes', |
|||
field=models.PositiveIntegerField(default=0, help_text='Se informar quantidade de participantes na aba de convites, este campo ser\xe1 ajustado com a somat\xf3ria dos participantes naquela aba.', verbose_name='Total de participantes'), |
|||
preserve_default=True, |
|||
), |
|||
] |
@ -0,0 +1,28 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import models, migrations |
|||
from django.db.models import Sum |
|||
|
|||
def atualiza_participantes(apps, schema_editor): |
|||
if schema_editor.connection.alias != 'default': |
|||
return |
|||
|
|||
Evento = apps.get_model('eventos', 'Evento') |
|||
|
|||
for e in Evento.objects.all(): |
|||
total = e.convite_set.aggregate(total=Sum('qtde_participantes')) |
|||
total = total['total'] |
|||
if (total is not None) or (total > 0): |
|||
e.total_participantes = total |
|||
e.save() |
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('eventos', '0011_auto_20211117_0633'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.RunPython(atualiza_participantes), |
|||
] |
Loading…
Reference in new issue