Skip to content

Commit 61a512d

Browse files
committed
Unambiguos from body. See ietf-tools#342
- Legacy-Id: 2376
1 parent 6400bd7 commit 61a512d

File tree

2 files changed

+117
-0
lines changed

2 files changed

+117
-0
lines changed
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
2+
from south.db import db
3+
from django.db import models
4+
from ietf.liaisons.models import *
5+
6+
class Migration:
7+
8+
def forwards(self, orm):
9+
10+
# Adding field 'LiaisonDetail.from_raw_body'
11+
db.add_column('liaison_detail', 'from_raw_body', orm['liaisons.liaisondetail:from_raw_body'])
12+
13+
14+
15+
def backwards(self, orm):
16+
17+
# Deleting field 'LiaisonDetail.from_raw_body'
18+
db.delete_column('liaison_detail', 'from_raw_body')
19+
20+
21+
22+
models = {
23+
'idtracker.personororginfo': {
24+
'Meta': {'db_table': "'person_or_org_info'"},
25+
'address_type': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
26+
'created_by': ('django.db.models.fields.CharField', [], {'max_length': '8', 'null': 'True', 'blank': 'True'}),
27+
'date_created': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
28+
'date_modified': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
29+
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}),
30+
'first_name_key': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}),
31+
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
32+
'last_name_key': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
33+
'middle_initial': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
34+
'middle_initial_key': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
35+
'modified_by': ('django.db.models.fields.CharField', [], {'max_length': '8', 'null': 'True', 'blank': 'True'}),
36+
'name_prefix': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
37+
'name_suffix': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
38+
'person_or_org_tag': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
39+
'record_type': ('django.db.models.fields.CharField', [], {'max_length': '8', 'null': 'True', 'blank': 'True'})
40+
},
41+
'liaisons.frombodies': {
42+
'Meta': {'db_table': "'from_bodies'"},
43+
'body_name': ('django.db.models.fields.CharField', [], {'max_length': '35', 'blank': 'True'}),
44+
'email_priority': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
45+
'from_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
46+
'is_liaison_manager': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
47+
'other_sdo': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
48+
'poc': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['idtracker.PersonOrOrgInfo']", 'null': 'True', 'db_column': "'poc'"})
49+
},
50+
'liaisons.liaisondetail': {
51+
'Meta': {'db_table': "'liaison_detail'"},
52+
'body': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
53+
'by_secretariat': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
54+
'cc1': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
55+
'cc2': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
56+
'deadline_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
57+
'detail_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
58+
'from_id': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
59+
'from_raw_body': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
60+
'last_modified_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
61+
'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['idtracker.PersonOrOrgInfo']", 'null': 'True', 'db_column': "'person_or_org_tag'"}),
62+
'purpose': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['liaisons.LiaisonPurpose']", 'null': 'True'}),
63+
'purpose_text': ('django.db.models.fields.TextField', [], {'null': 'True', 'db_column': "'purpose'", 'blank': 'True'}),
64+
'replyto': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
65+
'response_contact': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
66+
'submitted_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
67+
'submitter_email': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
68+
'submitter_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
69+
'technical_contact': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
70+
'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
71+
'to_body': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
72+
'to_email': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
73+
'to_poc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
74+
},
75+
'liaisons.liaisonmanagers': {
76+
'Meta': {'db_table': "'liaison_managers'"},
77+
'email_priority': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
78+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
79+
'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['idtracker.PersonOrOrgInfo']", 'db_column': "'person_or_org_tag'"}),
80+
'sdo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['liaisons.SDOs']"})
81+
},
82+
'liaisons.liaisonpurpose': {
83+
'Meta': {'db_table': "'liaison_purpose'"},
84+
'purpose_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
85+
'purpose_text': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'})
86+
},
87+
'liaisons.sdoauthorizedindividual': {
88+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
89+
'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['idtracker.PersonOrOrgInfo']", 'db_column': "'person_or_org_tag'"}),
90+
'sdo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['liaisons.SDOs']"})
91+
},
92+
'liaisons.sdos': {
93+
'Meta': {'db_table': "'sdos'"},
94+
'sdo_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
95+
'sdo_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
96+
},
97+
'liaisons.uploads': {
98+
'Meta': {'db_table': "'uploads'"},
99+
'detail': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['liaisons.LiaisonDetail']"}),
100+
'file_extension': ('django.db.models.fields.CharField', [], {'max_length': '10', 'blank': 'True'}),
101+
'file_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
102+
'file_title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
103+
'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['idtracker.PersonOrOrgInfo']", 'db_column': "'person_or_org_tag'"})
104+
}
105+
}
106+
107+
complete_apps = ['liaisons']

ietf/liaisons/models.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,19 @@ class LiaisonDetail(models.Model):
5050
to_email = models.CharField(blank=True, null=True, max_length=255)
5151
purpose = models.ForeignKey(LiaisonPurpose,null=True)
5252
replyto = models.CharField(blank=True, null=True, max_length=255)
53+
from_raw_body = models.CharField(blank=True, null=True, max_length=255)
5354
def __str__(self):
5455
return self.title or "<no title>"
5556
def from_body(self):
57+
"""The from_raw_body stores the name of the entity
58+
sending the liaison.
59+
For legacy liaisons (the ones with empty from_raw_body)
60+
the legacy_from_body() is returned."""
61+
if not self.from_raw_body:
62+
return self.legacy_from_body()
63+
return self.from_raw_body
64+
65+
def legacy_from_body(self):
5666
"""The from_id field is a foreign key for either
5767
FromBodies or Acronyms, depending on whether it's
5868
the IETF or not. There is no flag field saying

0 commit comments

Comments
 (0)