1010class InternetDraft (Document ):
1111 objects = TranslatingManager (dict (filename = "name" ,
1212 id_document_tag = "id" ,
13- status = "state" ,
14- rfc_number = lambda v : ("docalias__name" , "rfc%s" % v )))
13+ status = lambda v : ("state" , { 1 : 'active' , 2 : 'expired' , 3 : 'rfc' , 4 : 'auth-rm' , 5 : 'repl' , 6 : 'ietf-rm' }),
14+ job_owner = "ad" ,
15+ rfc_number = lambda v : ("docalias__name" , "rfc%s" % v ),
16+ ))
1517
1618 DAYS_TO_EXPIRE = 185
1719
@@ -94,7 +96,7 @@ def intended_status(self):
9496 @property
9597 def lc_sent_date (self ):
9698 e = self .latest_event (type = "sent_last_call" )
97- return e .time if e else None
99+ return e .time . date () if e else None
98100
99101 #lc_changes = models.CharField(max_length=3) # used in DB, unused in Django code?
100102
@@ -108,7 +110,7 @@ def lc_expiration_date(self):
108110 @property
109111 def b_sent_date (self ):
110112 e = self .latest_event (type = "sent_ballot_announcement" )
111- return e .time if e else None
113+ return e .time . date () if e else None
112114
113115 #b_discussion_date = models.DateField(null=True, blank=True) # unused
114116
@@ -142,7 +144,7 @@ def replaced_by(self):
142144 #replaces = FKAsOneToOne('replaces', reverse=True)
143145 @property
144146 def replaces (self ):
145- r = self .replaces_set ()
147+ r = self .replaces_set
146148 return r [0 ] if r else None
147149
148150 @property
@@ -242,7 +244,12 @@ def rfc_flag(self):
242244 #ballot = models.ForeignKey(BallotInfo, related_name='drafts', db_column="ballot_id")
243245 @property
244246 def ballot (self ):
245- return self # FIXME: raise BallotInfo.DoesNotExist?
247+ if not self .idinternal :
248+ raise BallotInfo .DoesNotExist ()
249+ return self
250+ @property
251+ def ballot_id (self ):
252+ return self .ballot .name
246253
247254 #primary_flag = models.IntegerField(blank=True, null=True)
248255 @property
@@ -402,7 +409,7 @@ def document(self):
402409 return self
403410
404411 def comments (self ):
405- return self . event_set . all ( ).order_by ('-time' )
412+ return DocumentComment . objects . filter ( doc = self ).order_by ('-time' )
406413
407414 def ballot_set (self ):
408415 return [self ]
@@ -579,22 +586,22 @@ def current_status(self):
579586 #updates = models.CharField(max_length=200,blank=True,null=True)
580587 @property
581588 def updates (self ):
582- return "," .join (sorted ( "RFC%s" % d .rfc_number for d in InternetDraft .objects .filter (docalias__relateddocument__document = self , docalias__relateddocument__relationship = "updates" )))
589+ return "," .join ("RFC%s" % n for n in sorted ( d .rfc_number for d in InternetDraft .objects .filter (docalias__relateddocument__document = self , docalias__relateddocument__relationship = "updates" )))
583590
584591 #updated_by = models.CharField(max_length=200,blank=True,null=True)
585592 @property
586593 def updated_by (self ):
587- return "," .join (sorted ( "RFC%s" % d .rfc_number for d in InternetDraft .objects .filter (relateddocument__doc_alias__document = self , relateddocument__relationship = "updates" )))
594+ return "," .join ("RFC%s" % n for n in sorted ( d .rfc_number for d in InternetDraft .objects .filter (relateddocument__doc_alias__document = self , relateddocument__relationship = "updates" )))
588595
589596 #obsoletes = models.CharField(max_length=200,blank=True,null=True)
590597 @property
591598 def obsoletes (self ):
592- return "," .join (sorted ( "RFC%s" % d .rfc_number for d in InternetDraft .objects .filter (docalias__relateddocument__document = self , docalias__relateddocument__relationship = "obs" )))
599+ return "," .join ("RFC%s" % n for n in sorted ( d .rfc_number for d in InternetDraft .objects .filter (docalias__relateddocument__document = self , docalias__relateddocument__relationship = "obs" )))
593600
594601 #obsoleted_by = models.CharField(max_length=200,blank=True,null=True)
595602 @property
596603 def obsoleted_by (self ):
597- return "," .join (sorted ( "RFC%s" % d .rfc_number for d in InternetDraft .objects .filter (relateddocument__doc_alias__document = self , relateddocument__relationship = "obs" )))
604+ return "," .join ("RFC%s" % n for n in sorted ( d .rfc_number for d in InternetDraft .objects .filter (relateddocument__doc_alias__document = self , relateddocument__relationship = "obs" )))
598605
599606 #also = models.CharField(max_length=50,blank=True,null=True)
600607 @property
@@ -655,3 +662,44 @@ def final_author_order(self):
655662 class Meta :
656663 proxy = True
657664
665+ class DocumentComment (Event ):
666+ objects = TranslatingManager (dict (comment_text = "desc" ,
667+ ))
668+
669+ BALLOT_DISCUSS = 1
670+ BALLOT_COMMENT = 2
671+ BALLOT_CHOICES = (
672+ (BALLOT_DISCUSS , 'discuss' ),
673+ (BALLOT_COMMENT , 'comment' ),
674+ )
675+ #document = models.ForeignKey(IDInternal)
676+ @property
677+ def document (self ):
678+ return self .doc
679+ #rfc_flag = models.IntegerField(null=True, blank=True)
680+ #public_flag = models.BooleanField() #unused
681+ #date = models.DateField(db_column='comment_date', default=datetime.date.today)
682+ @property
683+ def date (self ):
684+ return self .time .date ()
685+ #time = models.CharField(db_column='comment_time', max_length=20, default=lambda: datetime.datetime.now().strftime("%H:%M:%S"))
686+ #version = models.CharField(blank=True, max_length=3)
687+ #comment_text = models.TextField(blank=True)
688+ #created_by = BrokenForeignKey(IESGLogin, db_column='created_by', null=True, null_values=(0, 999))
689+ #result_state = BrokenForeignKey(IDState, db_column='result_state', null=True, related_name="comments_leading_to_state", null_values=(0, 99))
690+ #origin_state = models.ForeignKey(IDState, db_column='origin_state', null=True, related_name="comments_coming_from_state")
691+ #ballot = models.IntegerField(null=True, choices=BALLOT_CHOICES)
692+ def get_absolute_url (self ):
693+ return "/idtracker/%d/comment/%d/" % (self .doc .name , self .id )
694+ def get_author (self ):
695+ return unicode (self .by )
696+ def get_username (self ):
697+ return unicode (self .by )
698+ def get_fullname (self ):
699+ return unicode (self .by )
700+ def datetime (self ):
701+ return self .time
702+
703+ class Meta :
704+ proxy = True
705+
0 commit comments