diff --git a/ietf/idtracker/fixtures/initial_data.xml b/ietf/idtracker/fixtures/initial_data.xml
new file mode 100644
index 000000000..83b30c4e8
--- /dev/null
+++ b/ietf/idtracker/fixtures/initial_data.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/ietf/idtracker/models.py b/ietf/idtracker/models.py
index 142480959..99d5219c6 100644
--- a/ietf/idtracker/models.py
+++ b/ietf/idtracker/models.py
@@ -775,6 +775,26 @@ class GoalMilestone(models.Model):
#### end wg stuff
+class Role(models.Model):
+ '''This table is named 'chairs' in the database, as its original
+ role was to store "who are IETF, IAB and IRTF chairs?". It has
+ since expanded to store roles, such as "IAB Exec Dir" and "IAD",
+ so the model is renamed.
+ '''
+ person = models.ForeignKey(PersonOrOrgInfo, db_column='person_or_org_tag', raw_id_admin=True)
+ role_name = models.CharField(maxlength=25, db_column='chair_name')
+ def __str__(self):
+ return "%s (%s)" % (self.person, self.role())
+ def role(self):
+ if self.role_name in ('IETF', 'IAB', 'IRTF', 'NomCom'):
+ return "%s Chair" % self.role_name
+ else:
+ return self.role_name
+ class Meta:
+ db_table = 'chairs'
+ class Admin:
+ pass
+
class ChairsHistory(models.Model):
CHAIR_CHOICES = (
( '1', 'IETF' ),
diff --git a/ietf/mailinglists/fixtures/initial_data.xml b/ietf/mailinglists/fixtures/initial_data.xml
new file mode 100644
index 000000000..d8c65eb46
--- /dev/null
+++ b/ietf/mailinglists/fixtures/initial_data.xml
@@ -0,0 +1,23 @@
+
+
+
+
+ iab.org
+
+
+
+
+
+
+ irtf.org
+
+
+
+
+
diff --git a/ietf/mailinglists/models.py b/ietf/mailinglists/models.py
index 01fdba791..e6037554f 100644
--- a/ietf/mailinglists/models.py
+++ b/ietf/mailinglists/models.py
@@ -1,5 +1,6 @@
from django.db import models
from ietf.idtracker.models import Acronym, Area, PersonOrOrgInfo
+from ietf.idtracker.models import Role
import random
from datetime import datetime
@@ -21,6 +22,12 @@ class ImportedMailingList(models.Model):
class Admin:
pass
+class Domain(models.Model):
+ domain = models.CharField("Mailing List Domain Name", maxlength=100)
+ approvers = models.ManyToManyField(Role)
+ class Admin:
+ pass
+
class MailingList(models.Model):
SUBSCRIPTION_CHOICES = (
(1, 'Confirm'),
@@ -103,7 +110,7 @@ class NonWgMailingList(models.Model):
list_url = models.CharField("List URL", maxlength=255)
admin = models.TextField("Administrator(s)' Email Address(es)", blank=True)
purpose = models.TextField(blank=True)
- area = models.ForeignKey(Area, db_column='area_acronym_id')
+ area = models.ForeignKey(Area, db_column='area_acronym_id', null=True)
subscribe_url = models.CharField("Subscribe URL", blank=True, maxlength=255)
subscribe_other = models.TextField("Subscribe Other", blank=True)
# Can be 0, 1, -1, or what looks like a person_or_org_tag, positive or neg.