From 57d8ffb27aa943915c02c157718a5be1c7919626 Mon Sep 17 00:00:00 2001 From: Sasha Romijn Date: Mon, 1 Jun 2020 09:25:51 +0000 Subject: [PATCH] Re-introduce Group.meeting_seen_as_area and use it in automatic scheduler - Legacy-Id: 17901 --- .../0024_add_meeting_seen_as_area.py | 37 +++++++++++++++++++ ietf/group/models.py | 3 +- .../management/commands/schedule_generator.py | 4 +- 3 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 ietf/group/migrations/0024_add_meeting_seen_as_area.py diff --git a/ietf/group/migrations/0024_add_meeting_seen_as_area.py b/ietf/group/migrations/0024_add_meeting_seen_as_area.py new file mode 100644 index 000000000..8c2bcbef3 --- /dev/null +++ b/ietf/group/migrations/0024_add_meeting_seen_as_area.py @@ -0,0 +1,37 @@ +# Copyright The IETF Trust 2020', 'All Rights Reserved +# -*- coding: utf-8 -*- +# Generated by Django 1.11.27 on 2020-02-12 07:11 +from __future__ import unicode_literals + +from django.db import migrations, models + + +def forward(apps, schema_editor): + Group = apps.get_model('group', 'Group') + initial_area_groups = ['dispatch', 'gendispatch', 'intarea', 'opsarea', 'opsawg', 'rtgarea', 'rtgwg', 'saag', 'secdispatch', 'tsvarea', 'irtfopen'] + Group.objects.filter(acronym__in=initial_area_groups).update(meeting_seen_as_area=True) + + +def reverse(apps, schema_editor): + pass + + +class Migration(migrations.Migration): + + dependencies = [ + ('group', '0023_use_milestone_dates_default_to_true'), + ] + + operations = [ + migrations.AddField( + model_name='group', + name='meeting_seen_as_area', + field=models.BooleanField(default=False, help_text='For meeting scheduling, should be considered an area meeting, even if the type is WG'), + ), + migrations.AddField( + model_name='grouphistory', + name='meeting_seen_as_area', + field=models.BooleanField(default=False, help_text='For meeting scheduling, should be considered an area meeting, even if the type is WG'), + ), + migrations.RunPython(forward, reverse), + ] diff --git a/ietf/group/models.py b/ietf/group/models.py index 80258f2f2..7a8a00cad 100644 --- a/ietf/group/models.py +++ b/ietf/group/models.py @@ -39,7 +39,8 @@ class GroupInfo(models.Model): list_subscribe = models.CharField(max_length=255, blank=True) list_archive = models.CharField(max_length=255, blank=True) comments = models.TextField(blank=True) - + meeting_seen_as_area = models.BooleanField(default=False, help_text='For meeting scheduling, should be considered an area meeting, even if the type is WG') + unused_states = models.ManyToManyField('doc.State', help_text="Document states that have been disabled for the group.", blank=True) unused_tags = models.ManyToManyField(DocTagName, help_text="Document tags that have been disabled for the group.", blank=True) diff --git a/ietf/meeting/management/commands/schedule_generator.py b/ietf/meeting/management/commands/schedule_generator.py index f26a10f85..b61ded419 100644 --- a/ietf/meeting/management/commands/schedule_generator.py +++ b/ietf/meeting/management/commands/schedule_generator.py @@ -462,9 +462,7 @@ class Session(object): self.is_area_meeting = any([ session_db.group.type_id == 'area', session_db.group.type_id == 'ag', - self.group in ['dispatch', 'gendispatch', 'intarea', 'opsarea/opsawg', 'rtgarea', - 'rtgwg', 'saag', 'secdispatch', 'tsvarea', 'irtfopen'] - # meeting_seen_as_area TODO + session_db.group.meeting_seen_as_area, ]) self.is_bof = session_db.group.state_id == 'bof' self.is_prg = session_db.group.type_id == 'rg' and session_db.group.state_id == 'proposed'