> On Sat, Oct 10, 2015 at 12:21:15AM +0100, Finucane, Stephen wrote: > > > +class Series(models.Model): > > > + project = models.ForeignKey(Project) > > > + name = models.CharField(max_length=200, null=True, blank=False) > > > + submitter = models.ForeignKey(Person, related_name='submitters') > > > + reviewer = models.ForeignKey(User, related_name='reviewers', > > > null=True, > > > + blank=True) > > > + submitted = models.DateTimeField(default=datetime.datetime.now) > > > > Potential edge case: what happens if a series doesn't have a cover > > letter (and therefore no email to get the "submitted" time from)? > > submitted is the timestamp of the row creation, disregarding if the > series has a cover letter or not. No email is getting parsed to set that > field. > > > > + last_updated = models.DateTimeField(auto_now=True) > > > + # Caches the latest version so we can display it without looking > at > > > the max > > > + # of all SeriesRevision.version > > > + version = models.IntegerField(default=1) > > > + # This is the number of patches of the latest version. > > > + n_patches = models.IntegerField(default=0) > > > + > > > + def __unicode__(self): > > > + return self.name > > > + > > > + def revisions(self): > > > + return SeriesRevision.objects.filter(series=self) > > > + > > > + def latest_revision(self): > > > + return self.revisions().reverse()[0] > > > > return self.revisions[-1] > > Django doesn't support that.
Right you are: my mistake. > > > + > > > + def get_absolute_url(self): > > > + return reverse('series', kwargs={ 'series': self.pk }) > > > + > > > + def dump(self): > > > + print('') > > > + print('===') > > > + print('Series: %s' % self) > > > + print(' version %d' % self.version) > > > + for rev in self.revisions(): > > > + print(' rev %d:' % rev.version) > > > + i = 1 > > > + for patch in rev.ordered_patches(): > > > + print(' patch %d:' % i) > > > + print(' subject: %s' % patch.name) > > > + print(' msgid : %s' % patch.msgid) > > > + i += 1 > > > > > > No need reinventing the wheel: override the '__str__' (not the > '__repr__') function instead > > This is for debugging only and contains too much details to be part of > __str__. Ehh, we could get away with it would be inconsistent with the rest of the '__str__' functions in that file. Given this (and other replies): Acked-by: Stephen Finucane <stephen.finuc...@intel.com. _______________________________________________ Patchwork mailing list Patchwork@lists.ozlabs.org https://lists.ozlabs.org/listinfo/patchwork