datatracker/ietf/group/migrations/0003_groupfeatures_data.py
Henrik Levkowetz 726fcbf27d Removed all __future__ imports.
- Legacy-Id: 17391
2020-03-05 23:53:42 +00:00

300 lines
10 KiB
Python

# Copyright The IETF Trust 2018-2020, All Rights Reserved
# -*- coding: utf-8 -*-
# Generated by Django 1.11.13 on 2018-07-10 15:58
from django.conf import settings
from django.db import migrations
import debug # pyflakes:ignore
from ietf.review.utils import active_review_teams
group_type_features = {
'ag': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': 'ietf',
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': True,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'area': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': 'ietf',
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': False,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'dir': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair,secr',
'agenda_type': None,
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': False,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'review': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair,secr',
'agenda_type': None,
'customize_workflow': False,
'default_tab': 'ietf.group.views.review_requests',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': False,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': True,
'material_types': 'slides'},
'iab': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': 'ietf',
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': True,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'ietf': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': 'ietf',
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': True,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'individ': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': None,
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': False,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'irtf': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': 'ietf',
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': False,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'isoc': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': None,
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': False,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'nomcom': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': 'side',
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': False,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'program': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'lead',
'agenda_type': None,
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': True,
'has_meetings': False,
'has_nonsession_materials': False,
'has_milestones': True,
'has_reviews': False,
'material_types': 'slides'},
'rfcedtyp': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': 'side',
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': False,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'rg': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': 'ietf',
'customize_workflow': True,
'default_tab': 'ietf.group.views.group_documents',
'has_chartering_process': True,
'has_default_jabber': True,
'has_dependencies': True,
'has_documents': True,
'has_meetings': True,
'has_nonsession_materials': False,
'has_milestones': True,
'has_reviews': False,
'material_types': 'slides'},
'sdo': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': None,
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': False,
'has_nonsession_materials': False,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'team': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': 'ietf',
'customize_workflow': False,
'default_tab': 'ietf.group.views.group_about',
'has_chartering_process': False,
'has_default_jabber': False,
'has_dependencies': False,
'has_documents': False,
'has_meetings': True,
'has_nonsession_materials': True,
'has_milestones': False,
'has_reviews': False,
'material_types': 'slides'},
'wg': {
'about_page': 'ietf.group.views.group_about',
'admin_roles': 'chair',
'agenda_type': 'ietf',
'customize_workflow': True,
'default_tab': 'ietf.group.views.group_documents',
'has_chartering_process': True,
'has_default_jabber': True,
'has_dependencies': True,
'has_documents': True,
'has_meetings': True,
'has_nonsession_materials': False,
'has_milestones': True,
'has_reviews': False,
'material_types': 'slides'},
}
def forward(apps, schema_editor):
Group = apps.get_model('group', 'Group')
GroupTypeName = apps.get_model('name', 'GroupTypeName')
GroupFeatures = apps.get_model('group', 'GroupFeatures')
AgendaTypeName = apps.get_model('name', 'AgendaTypeName')
for type in group_type_features:
features = group_type_features[type]
features['type_id'] = type
if features['agenda_type']:
features['agenda_type'] = AgendaTypeName.objects.get(slug=features['agenda_type'])
GroupFeatures.objects.create(**features)
dir = GroupTypeName.objects.get(slug='dir')
review = GroupTypeName.objects.create(slug='review', name='Directorate (with reviews)', desc='', used=True, order=0)
review_teams = [ g.acronym for g in active_review_teams() ]
for group in Group.objects.filter(type=dir):
if group.acronym in review_teams:
group.type = review
group.save()
def reverse(apps, schema_editor):
Group = apps.get_model('group', 'Group')
GroupFeatures = apps.get_model('group', 'GroupFeatures')
GroupTypeName = apps.get_model('name', 'GroupTypeName')
dir = GroupTypeName.objects.get(slug='dir')
review = GroupTypeName.objects.get(slug='review')
for group in Group.objects.filter(type=review):
group.type = dir
group.save()
for entry in GroupFeatures.objects.all():
entry.delete()
review.delete()
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('group', '0002_groupfeatures_historicalgroupfeatures'),
('name', '0003_agendatypename_data'),
]
operations = [
migrations.RunPython(forward, reverse),
]