Skip to content

Commit a9cab1e

Browse files
committed
Normalize liaisondetail fields so liaisons could be sorted correctly.
* Assign a title to liaisons that have no title (Copy the title of the first attachment of set a default title) * Copy old "From" information to from_raw_body field See ietf-tools#383 - Legacy-Id: 2542
1 parent 75f1129 commit a9cab1e

1 file changed

Lines changed: 124 additions & 0 deletions

File tree

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
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.related_to'
11+
from ietf.liaisons.models import LiaisonDetail
12+
for liaison in LiaisonDetail.objects.all():
13+
modified = False
14+
if not liaison.title:
15+
files = liaison.uploads_set.all()
16+
liaison.title = files and files[0].file_title or 'Liaison #%s' % liaison.pk
17+
modified = True
18+
if not liaison.from_raw_body:
19+
liaison.from_raw_body = liaison.legacy_from_body()
20+
modified = True
21+
if modified:
22+
liaison.save()
23+
24+
25+
26+
def backwards(self, orm):
27+
28+
pass
29+
30+
31+
models = {
32+
'idtracker.personororginfo': {
33+
'Meta': {'db_table': "'person_or_org_info'"},
34+
'address_type': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
35+
'created_by': ('django.db.models.fields.CharField', [], {'max_length': '8', 'null': 'True', 'blank': 'True'}),
36+
'date_created': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
37+
'date_modified': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
38+
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}),
39+
'first_name_key': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}),
40+
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
41+
'last_name_key': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
42+
'middle_initial': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
43+
'middle_initial_key': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
44+
'modified_by': ('django.db.models.fields.CharField', [], {'max_length': '8', 'null': 'True', 'blank': 'True'}),
45+
'name_prefix': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
46+
'name_suffix': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
47+
'person_or_org_tag': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
48+
'record_type': ('django.db.models.fields.CharField', [], {'max_length': '8', 'null': 'True', 'blank': 'True'})
49+
},
50+
'liaisons.frombodies': {
51+
'Meta': {'db_table': "'from_bodies'"},
52+
'body_name': ('django.db.models.fields.CharField', [], {'max_length': '35', 'blank': 'True'}),
53+
'email_priority': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
54+
'from_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
55+
'is_liaison_manager': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
56+
'other_sdo': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
57+
'poc': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['idtracker.PersonOrOrgInfo']", 'null': 'True', 'db_column': "'poc'"})
58+
},
59+
'liaisons.liaisondetail': {
60+
'Meta': {'db_table': "'liaison_detail'"},
61+
'approval': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['liaisons.OutgoingLiaisonApproval']", 'null': 'True', 'blank': 'True'}),
62+
'body': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
63+
'by_secretariat': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
64+
'cc1': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
65+
'cc2': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
66+
'deadline_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
67+
'detail_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
68+
'from_id': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
69+
'from_raw_body': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
70+
'from_raw_code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
71+
'last_modified_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
72+
'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['idtracker.PersonOrOrgInfo']", 'null': 'True', 'db_column': "'person_or_org_tag'"}),
73+
'purpose': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['liaisons.LiaisonPurpose']", 'null': 'True'}),
74+
'purpose_text': ('django.db.models.fields.TextField', [], {'null': 'True', 'db_column': "'purpose'", 'blank': 'True'}),
75+
'related_to': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['liaisons.LiaisonDetail']", 'null': 'True', 'blank': 'True'}),
76+
'replyto': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
77+
'response_contact': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
78+
'submitted_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
79+
'submitter_email': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
80+
'submitter_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
81+
'technical_contact': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
82+
'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
83+
'to_body': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
84+
'to_email': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
85+
'to_poc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
86+
},
87+
'liaisons.liaisonmanagers': {
88+
'Meta': {'db_table': "'liaison_managers'"},
89+
'email_priority': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
90+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
91+
'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['idtracker.PersonOrOrgInfo']", 'db_column': "'person_or_org_tag'"}),
92+
'sdo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['liaisons.SDOs']"})
93+
},
94+
'liaisons.liaisonpurpose': {
95+
'Meta': {'db_table': "'liaison_purpose'"},
96+
'purpose_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
97+
'purpose_text': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'})
98+
},
99+
'liaisons.outgoingliaisonapproval': {
100+
'approval_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
101+
'approved': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
102+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
103+
},
104+
'liaisons.sdoauthorizedindividual': {
105+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
106+
'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['idtracker.PersonOrOrgInfo']", 'db_column': "'person_or_org_tag'"}),
107+
'sdo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['liaisons.SDOs']"})
108+
},
109+
'liaisons.sdos': {
110+
'Meta': {'db_table': "'sdos'"},
111+
'sdo_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
112+
'sdo_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
113+
},
114+
'liaisons.uploads': {
115+
'Meta': {'db_table': "'uploads'"},
116+
'detail': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['liaisons.LiaisonDetail']"}),
117+
'file_extension': ('django.db.models.fields.CharField', [], {'max_length': '10', 'blank': 'True'}),
118+
'file_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
119+
'file_title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
120+
'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['idtracker.PersonOrOrgInfo']", 'db_column': "'person_or_org_tag'"})
121+
}
122+
}
123+
124+
complete_apps = ['liaisons']

0 commit comments

Comments
 (0)