Esempio n. 1
0
 def save(self, **kwargs):
     site = Site.objects.get(id=current_site_id())
     kwargs['extra_email_context'] = {
         'domain': site.domain,
         'site_name': site.name,
     }
     super(TimestrapPasswordResetForm, self).save(**kwargs)
Esempio n. 2
0
class Entry(models.Model):
    project = models.ForeignKey('Project', related_name='entries',
                                on_delete=models.CASCADE)
    task = models.ForeignKey('core.Task', related_name='entries',
                             blank=True, null=True, on_delete=models.SET_NULL)
    user = models.ForeignKey('auth.User', related_name='entries',
                             on_delete=models.CASCADE)
    date = models.DateField(blank=True)
    duration = models.DurationField(blank=True)
    datetime_start = models.DateTimeField(blank=True, null=True)
    datetime_end = models.DateTimeField(blank=True, null=True)
    note = models.TextField(blank=True, null=True)
    site = models.ForeignKey(Site, default=current_site_id(),
                             on_delete=models.CASCADE)

    objects = models.Manager()
    on_site = CurrentSiteManager()

    class Meta:
        default_permissions = ('view', 'add', 'change', 'delete')
        ordering = ['-date', '-id']
        verbose_name_plural = 'Entries'

    def save(self, *args, **kwargs):
        if not self.date:
            self.date = date.today()
        if not self.site:
            self.site = Site.objects.get(id=current_site_id())
        super().save(*args, **kwargs)

    def __str__(self):
        return 'Entry for ' + self.project.name + ' by ' + self.user.username
Esempio n. 3
0
class Invoice(models.Model):
    client = models.ForeignKey('Client')  # Redundant with entries?
    note = models.CharField(max_length=255, blank=True, null=True)
    entries = models.ManyToManyField('Entry', related_name='invoices')
    created = models.DateTimeField(auto_now_add=True)
    paid = models.DateTimeField(blank=True, null=True)
    transaction_id = models.CharField(max_length=255, blank=True, null=True)
    site = models.ForeignKey(Site,
                             default=current_site_id(),
                             on_delete=models.CASCADE)

    objects = models.Manager()
    on_site = CurrentSiteManager()

    class Meta:
        default_permissions = ('view', 'add', 'change', 'delete')

    def save(self, *args, **kwargs):
        self.site = Site.objects.get(id=current_site_id())
        super(Invoice, self).save(*args, **kwargs)

    def __str__(self):
        return 'Invoice: ' + self.client.name

    def total_duration(self):
        total = 0
        for entry in self.entries:
            total += entry.duration

    def total_billed(self):
        total = 0
        for entry in self.entries:
            if entry.task.hourly_rate:
                total += entry.duration * entry.hourly_rate
        return total
Esempio n. 4
0
 def save(self, **kwargs):
     site = Site.objects.get(id=current_site_id())
     kwargs['extra_email_context'] = {
         'domain': site.domain,
         'site_name': site.name,
     }
     super().save(**kwargs)
Esempio n. 5
0
def add_current_site(sender, instance, **kwargs):
    """
    Add the current site to a model's sites property after a save. This is
    required in post save because ManyToManyField fields require an existing
    key.

    TODO: Don't run this on *every* post_save.
    """
    if hasattr(instance, "sites"):
        if not instance.sites.all():
            instance.sites.set(Site.objects.filter(id=current_site_id()))
            instance.save()
Esempio n. 6
0
    def authenticate(self, request, username=None, password=None, **kwargs):
        user = super().authenticate(request, username, password, **kwargs)

        if user and user.is_active and hasattr(user, 'sitepermission'):
            site = Site.objects.get(id=current_site_id())
            if site in user.sitepermission.sites.all():
                return user
            else:
                messages.error(
                    request, 'This account does not have permission to log '
                    'in to {}.'.format(request.site), 'no_sitepermission')
                raise PermissionDenied
Esempio n. 7
0
class Entry(models.Model):
    project = models.ForeignKey(
        "Project", related_name="entries", on_delete=models.CASCADE
    )
    task = models.ForeignKey(
        "core.Task",
        related_name="entries",
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    user = models.ForeignKey(
        "auth.User", related_name="entries", on_delete=models.CASCADE
    )
    date = models.DateField(blank=True)
    duration = models.DurationField(blank=True)
    datetime_start = models.DateTimeField(blank=True, null=True)
    datetime_end = models.DateTimeField(blank=True, null=True)
    note = models.TextField(blank=True, null=True)
    site = models.ForeignKey(Site, default=current_site_id(), on_delete=models.CASCADE)

    objects = models.Manager()
    on_site = CurrentSiteManager()

    class Meta:
        default_permissions = ("view", "add", "change", "delete")
        ordering = ["-date", "-id"]
        verbose_name_plural = "Entries"

    def save(self, *args, **kwargs):
        if not self.date:
            self.date = date.today()
        if not self.site:
            self.site = Site.objects.get(id=current_site_id())
        super().save(*args, **kwargs)

    def __str__(self):
        return "Entry for " + self.project.name + " by " + self.user.username
Esempio n. 8
0
 def save(self, *args, **kwargs):
     if not self.date:
         self.date = date.today()
     if not self.site:
         self.site = Site.objects.get(id=current_site_id())
     super().save(*args, **kwargs)
Esempio n. 9
0
 def save(self, **kwargs):
     site = Site.objects.get(id=current_site_id())
     kwargs["extra_email_context"] = {"domain": site.domain, "site_name": site.name}
     super().save(**kwargs)
Esempio n. 10
0
 def save(self, *args, **kwargs):
     self.site = Site.objects.get(id=current_site_id())
     super(Invoice, self).save(*args, **kwargs)