Skip to content

Commit

Permalink
Merged in [17185] from rjsparks@nostrum.com:
Browse files Browse the repository at this point in the history
    Adds support for dateless milestones. Fixes #2799.
 - Legacy-Id: 17198
Note: SVN reference [17185] has been migrated to Git commit 42e5163
  • Loading branch information
levkowetz committed Jan 8, 2020
2 parents c979b39 + 42e5163 commit e99f1cd
Show file tree
Hide file tree
Showing 14 changed files with 541 additions and 174 deletions.
22 changes: 21 additions & 1 deletion ietf/group/factories.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# Copyright The IETF Trust 2015-2020, All Rights Reserved
import datetime
import debug # pyflakes:ignore
import factory

from ietf.group.models import Group, Role, GroupEvent
from ietf.group.models import Group, Role, GroupEvent, GroupMilestone
from ietf.review.factories import ReviewTeamSettingsFactory

class GroupFactory(factory.DjangoModelFactory):
Expand All @@ -14,6 +16,7 @@ class Meta:
state_id = 'active'
type_id = 'wg'
list_email = factory.LazyAttribute(lambda a: '%s@ietf.org'% a.acronym)
uses_milestone_dates = True

class ReviewTeamFactory(factory.DjangoModelFactory):
class Meta:
Expand Down Expand Up @@ -44,3 +47,20 @@ class Meta:
by = factory.SubFactory('ietf.person.factories.PersonFactory')
type = 'comment'
desc = factory.Faker('paragraph')

class BaseGroupMilestoneFactory(factory.DjangoModelFactory):
class Meta:
model = GroupMilestone

group = factory.SubFactory(GroupFactory)
state_id = 'active'
desc = factory.Faker('sentence')

class DatedGroupMilestoneFactory(BaseGroupMilestoneFactory):
group = factory.SubFactory(GroupFactory, uses_milestone_dates=True)
due = datetime.datetime.today()+datetime.timedelta(days=180)

class DatelessGroupMilestoneFactory(BaseGroupMilestoneFactory):
group = factory.SubFactory(GroupFactory, uses_milestone_dates=False)
order = factory.Sequence(lambda n: n)

26 changes: 26 additions & 0 deletions ietf/group/migrations/0020_add_uses_milestone_dates.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Copyright The IETF Trust 2019-2020, All Rights Reserved
# -*- coding: utf-8 -*-
# Generated by Django 1.11.25 on 2019-10-30 11:41
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('group', '0019_rename_field_document2'),
]

operations = [
migrations.AddField(
model_name='group',
name='uses_milestone_dates',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='grouphistory',
name='uses_milestone_dates',
field=models.BooleanField(default=False),
),
]
44 changes: 44 additions & 0 deletions ietf/group/migrations/0021_add_order_to_milestones.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Copyright The IETF Trust 2019-2020, All Rights Reserved
# -*- coding: utf-8 -*-
# Generated by Django 1.11.25 on 2019-10-30 13:37
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('group', '0020_add_uses_milestone_dates'),
]

operations = [
migrations.AlterModelOptions(
name='groupmilestone',
options={'ordering': ['order', 'due', 'id']},
),
migrations.AlterModelOptions(
name='groupmilestonehistory',
options={'ordering': ['order', 'due', 'id']},
),
migrations.AddField(
model_name='groupmilestone',
name='order',
field=models.IntegerField(blank=True, null=True),
),
migrations.AddField(
model_name='groupmilestonehistory',
name='order',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='groupmilestone',
name='due',
field=models.DateField(blank=True, null=True),
),
migrations.AlterField(
model_name='groupmilestonehistory',
name='due',
field=models.DateField(blank=True, null=True),
),
]
30 changes: 30 additions & 0 deletions ietf/group/migrations/0022_populate_uses_milestone_dates.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright The IETF Trust 2019-2020, All Rights Reserved
# -*- coding: utf-8 -*-
# Generated by Django 1.11.25 on 2019-10-30 11:42
from __future__ import unicode_literals

from django.db import migrations

def forward(apps, schema_editor):
Group = apps.get_model('group','Group')
GroupHistory = apps.get_model('group','GroupHistory')

Group.objects.filter(type__features__has_milestones=True).update(uses_milestone_dates=True)
GroupHistory.objects.filter(type__features__has_milestones=True).update(uses_milestone_dates=True)

def reverse(apps, schema_editor):
Group = apps.get_model('group','Group')
GroupHistory = apps.get_model('group','GroupHistory')

Group.objects.filter(type__features__has_milestones=True).update(uses_milestone_dates=False)
GroupHistory.objects.filter(type__features__has_milestones=True).update(uses_milestone_dates=False)

class Migration(migrations.Migration):

dependencies = [
('group', '0021_add_order_to_milestones'),
]

operations = [
migrations.RunPython(forward, reverse)
]
Loading

0 comments on commit e99f1cd

Please sign in to comment.