is_new = True else: is_new = False super(Project, self).save(*args, **kwargs) if is_new: project_created.send(sender=self) def delete(self, *args, **kwargs): self.resources.all().delete() project_deleted.send(sender=self) super(Project, self).delete(*args, **kwargs) @permalink def get_absolute_url(self): return ('project_detail', None, { 'project_slug': self.slug }) @property def wordcount(self): return self.resources.aggregate(Sum('wordcount'))['wordcount__sum'] @property def team_member_count(self): return len(User.objects.filter(team_members__project=self)) try: tagging.register(Project, tag_descriptor_attr='tagsobj') except tagging.AlreadyRegistered, e: logger.debug('Tagging: %s' % str(e)) log_model(Project)
Resource = get_model('resources', 'Resource') RLStats = get_model('resources', 'RLStats') res = Resource.objects.filter(project=self.project) for r in res: # FIXME: Maybe we should delete translations either way? rl, created = RLStats.objects.get_or_create(resource=r, language=self.language) if rl.translated == 0: rl.delete() invalidate_template_cache("project_resource_details", self.project.slug, r.slug) invalidate_template_cache("resource_details", self.project.slug, r.slug) super(Team, self).delete(*args, **kwargs) log_model(Team) class TeamRequest(models.Model): project = models.ForeignKey(Project, verbose_name=_('Project'), blank=False, null=False, help_text=_("The project this team works on.")) language = models.ForeignKey(Language, verbose_name=_('Language'), blank=False, null=False, help_text=_("People in this team will only be able to submit " "translations files related to the specific language.")) user = models.ForeignKey(User, verbose_name=_('User'), blank=False, null=False) created = models.DateTimeField(auto_now_add=True, editable=False)
RLStats = get_model('resources', 'RLStats') res = Resource.objects.filter(project=self.project) for r in res: # FIXME: Maybe we should delete translations either way? rl, created = RLStats.objects.get_or_create(resource=r, language=self.language) if rl.translated == 0: rl.delete() invalidate_template_cache("project_resource_details", self.project.slug, r.slug) invalidate_template_cache("resource_details", self.project.slug, r.slug) super(Team, self).delete(*args, **kwargs) log_model(Team) class TeamRequest(models.Model): project = models.ForeignKey(Project, verbose_name=_('Project'), blank=False, null=False, help_text=_("The project this team works on.")) language = models.ForeignKey( Language, verbose_name=_('Language'), blank=False, null=False, help_text=_("People in this team will only be able to submit " "translations files related to the specific language."))
the hub projects, in case it's a hub. """ ids = [self.id] if self.is_hub: ids += self.outsourcing.all().values_list('id', flat=True) return LogEntry.objects.filter( content_type=ContentType.objects.get_for_model(Project), object_id__in=ids) try: tagging.register(Project, tag_descriptor_attr='tagsobj') except tagging.AlreadyRegistered, e: logger.debug('Tagging: %s' % str(e)) log_model(Project) class HubRequest(models.Model): """ Model to handle outsource requests of project to project hubs. A project only can have one request for a project hub and it can only be associated to a project hub once at a time. """ project_hub = models.ForeignKey( Project, verbose_name=_('Project Hub'), blank=False, null=False, related_name="hub_requests", help_text=_("The project hub to outsource teams from."))
before_trans_deadline = models.BooleanField( _('Before Translation Deadline'), blank=True, default=False, help_text=_("Whether the 'Before Translation Deadline' notification " "was sent or not.")) trans_deadline = models.BooleanField(_('Hit Translation Deadline'), blank=True, default=False, help_text=_("Whether the 'Hit Translation Deadline' notification " "was sent or not.")) # Relations release = models.OneToOneField('Release', unique=True, verbose_name=_('Release'), related_name='notifications') def __unicode__(self): return u'%s' % self.release def __repr__(self): return _('<ReleaseNotification: %(rel)s (Project %(proj)s)>') % { 'rel': self.release.name, 'proj': self.release.project.name} class Meta: verbose_name = _('release notification') verbose_name_plural = _('release notifications') log_model(Release) log_model(ReleaseNotifications)