Example #1
0
            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)
Example #2
0
        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)
Example #3
0
        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."))
Example #4
0
        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."))
Example #5
0
    
    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)