default_filter = models.ForeignKey(Discipline, null=True, blank=True, related_name='watcher') tags = TagField() occupation = models.CharField(max_length=2, choices=OCCUPATIONS, blank=True) institution = models.ForeignKey(Institution, verbose_name=_("Current Institution"), null=True, blank=True, related_name='researchers') grad_institution = models.ForeignKey(Institution, verbose_name=_("Graduate Institution"), null=True, blank=True, related_name='graduates') ### denormalization # followers followers_count = models.PositiveIntegerField(default=0, editable=False) class Meta: verbose_name = _("researcher") verbose_name_plural = _("researchers") def __unicode__(self): return self.name def get_absolute_url(self): return reverse("researcher_detail", kwargs={ "username": self.user.username }) object_feeds.register(Researcher) def create_researcher(sender, instance=None, **kwargs): if instance is None: return researcher, created = Researcher.objects.get_or_create(user=instance) post_save.connect(create_researcher, sender=User)
return self.contributors.filter(user=user).exists() def user_can_read(self, user): if self.private and not self.user_is_contributor(user): return False return True def resolve(self, resolution_paper): if resolution_paper in self.papers: self.resolution = resolution_paper self.resolved = True self.save() return resolution_paper return False object_feeds.register(Issue) class IssueContributor(models.Model): issue = models.ForeignKey(Issue, related_name = "contributors", verbose_name = _("issue")) user = models.ForeignKey(User, related_name = "issues", verbose_name = _("user")) contributions = models.PositiveIntegerField(_("contributions"), default=1) away = models.BooleanField(_("away"), default=False) away_message = models.CharField(_("away_message"), max_length=500) away_since = models.DateTimeField(_("away since"), default=datetime.now) class Meta: unique_together = [("user", "issue")]
def __unicode__(self): return self.title def get_absolute_url(self): return reverse("paper_detail", kwargs={"slug": self.slug}) @property def current(self): return self.revisions.latest() @property def revision(self, rev_number): return self.revisions.get(revision=rev_number) object_feeds.register(Paper) class PaperRevision(models.Model): """ A change in Paper. """ paper = models.ForeignKey(Paper, verbose_name=_(u'Paper'), related_name="revisions") editor = models.ForeignKey(User, verbose_name=_(u'Editor'), null=True) revision = models.IntegerField(_(u"Revision Number")) comment = models.CharField(_(u"Editor comment"), max_length=255, blank=True) content = models.TextField(_(u"Content")) created = models.DateTimeField(_(u"Modified at"), default=datetime.now) yeas = models.PositiveIntegerField(default=0, editable=False) nays = models.PositiveIntegerField(default=0, editable=False)
page_specific = models.BooleanField(default=False, help_text=_('Specific to this page?')) page = models.CharField(max_length=255, blank=True) # denormalize votes yeas = models.PositiveIntegerField(default=0, editable=False) nays = models.PositiveIntegerField(default=0, editable=False) votes = models.PositiveIntegerField(default=0, editable=False) class Meta: ordering = ['-created'] def save(self): try: self.status except: try: default = Status.objects.get(default=True) except: default = Status.objects.filter()[0] self.status = default super(Feedback, self).save() def get_absolute_url(self): return reverse("feedback_detail", kwargs={"object_id": self.id}) def __unicode__(self): return self.title object_feeds.register(Feedback)
level = models.PositiveIntegerField(null=True, blank=True) def __unicode__(self): return self.name @models.permalink def get_absolute_url(self): return ('discipline_detail', (), {'slug': self.slug}) def researcher_is_member(self, researcher): if self == researcher.expertise: return True else: return False try: mptt.register(Discipline) except mptt.AlreadyRegistered: pass object_feeds.register(Discipline) from django.db.models.signals import pre_save, post_save def discipline_feed_title_update(sender, instance, created, **kwargs): instance.feed.title = instance.name instance.feed.save() post_save.connect(discipline_feed_title_update, sender=Discipline)
def __unicode__(self): return "Discussion Summary of %s" % self.content_object_title def get_absolute_url(self): return reverse("summary_detail", kwargs={"summary_id": self.id}) @property def current(self): return self.revisions.latest() @property def revision(self, rev_number): return self.revisions.get(revision=rev_number) object_feeds.register(Summary) class SummaryRevision(models.Model): """ A change in Summary. """ summary = models.ForeignKey(Summary, verbose_name=_(u'Summary'), related_name="revisions") editor = models.ForeignKey(User, verbose_name=_(u'Editor'), null=True) revision = models.IntegerField(_(u"Revision Number")) comment = models.CharField(_(u"Editor comment"), max_length=255, blank=True) content = models.TextField(_(u"Content")) created = models.DateTimeField(_(u"Modified at"), default=datetime.now) yeas = models.PositiveIntegerField(default=0, editable=False)