from django.db import models
from django.http import JsonResponse
from django.contrib.auth.decorators import login_required
from django.core.cache import cache
import logging
logger = logging.getLogger(__name__)
class ProjectQuerySet(models.QuerySet):
def active(self):
return self.filter(archived=False)
def visible_to(self, user):
return self.filter(
Q(owner=user) | Q(members=user)
).distinct()
class Project(models.Model):
name = models.CharField(max_length=255)
slug = models.SlugField(unique=True)
owner = models.ForeignKey("auth.User", ...)
members = models.ManyToManyField("auth.User")
def check_project_permission(user, project, role):
if project.owner == user:
return True
if role == "member":
return project.members.filter(...
def format_project_response(project):
return {"id": project.id, ...}