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)
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
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
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)
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()
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
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
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 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)
def save(self, *args, **kwargs): self.site = Site.objects.get(id=current_site_id()) super(Invoice, self).save(*args, **kwargs)