diff --git a/stages/migrations/0025_section_has_stages.py b/stages/migrations/0025_section_has_stages.py new file mode 100644 index 0000000..4dd84c2 --- /dev/null +++ b/stages/migrations/0025_section_has_stages.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.6 on 2019-11-20 13:30 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stages', '0024_mark_fields_dup'), + ] + + operations = [ + migrations.AddField( + model_name='section', + name='has_stages', + field=models.BooleanField(default=False, verbose_name='Planifie la PP sur ce site'), + ), + ] diff --git a/stages/models.py b/stages/models.py index 70d83ec..62ba897 100644 --- a/stages/models.py +++ b/stages/models.py @@ -17,7 +17,8 @@ CIVILITY_CHOICES = ( class Section(models.Model): """ Filières """ - name = models.CharField(max_length=20, verbose_name='Nom') + name = models.CharField("Nom", max_length=20) + has_stages = models.BooleanField("Planifie la PP sur ce site", default=False) class Meta: verbose_name = "Filière" @@ -534,7 +535,7 @@ class Period(models.Model): """ Périodes de stages """ title = models.CharField(max_length=150, verbose_name='Titre') section = models.ForeignKey(Section, verbose_name='Filière', on_delete=models.PROTECT, - limit_choices_to={'name__startswith': 'MP'}) + limit_choices_to={'has_stages': True}) level = models.ForeignKey(Level, verbose_name='Niveau', on_delete=models.PROTECT) start_date = models.DateField(verbose_name='Date de début') end_date = models.DateField(verbose_name='Date de fin') diff --git a/stages/tests.py b/stages/tests.py index 3a3fa81..ad89833 100644 --- a/stages/tests.py +++ b/stages/tests.py @@ -21,7 +21,9 @@ class StagesTests(TestCase): @classmethod def setUpTestData(cls): Section.objects.bulk_create([ - Section(name='MP_ASE'), Section(name='MP_ASSC'), Section(name='EDE'), Section(name='EDS') + Section(name='MP_ASE', has_stages=True), + Section(name='MP_ASSC', has_stages=True), + Section(name='EDE'), Section(name='EDS'), ]) sect_ase = Section.objects.get(name='MP_ASE') lev1 = Level.objects.create(name='1') diff --git a/stages/views/__init__.py b/stages/views/__init__.py index 5a7fd1e..88ef08d 100644 --- a/stages/views/__init__.py +++ b/stages/views/__init__.py @@ -105,7 +105,7 @@ class KlassView(DetailView): 'students': self.object.student_set.filter(archived=False ).prefetch_related('training_set').order_by('last_name', 'first_name'), 'show_option_ase': self.object.section.name.endswith('ASE'), - 'show_pp': self.object.section.is_ESTER, + 'show_pp': self.object.section.has_stages, 'show_employeur': not self.object.section.is_ESTER, }) return context @@ -200,7 +200,7 @@ class AttributionView(TemplateView): context.update({ #'period_form': PeriodForm(), - 'sections': Section.objects.filter(name__startswith='MP'), + 'sections': Section.objects.filter(has_stages=True), 'referents': referents, }) return context