diff --git a/.gitignore b/.gitignore index c5bba638..4f361d76 100644 --- a/.gitignore +++ b/.gitignore @@ -138,3 +138,5 @@ cache static /emails/ + +.DS_Store \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 516d3605..3d4c13c1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,8 @@ FROM python:3.11 RUN apt update --no-install-recommends -y +RUN apt install -y cmake +RUN rm -rf /var/lib/apt/lists/* ENV PYTHONFAULTHANDLER=1 \ PYTHONUNBUFFERED=1 \ diff --git a/Makefile b/Makefile index 5832d918..da5610af 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,22 @@ +.PHONY: up down build superuser migrate migrations logs + up: docker compose -f docker-compose.yml up -d + down: - docker compose -f docker-compose.yml down \ No newline at end of file + docker compose -f docker-compose.yml down + +build: + docker compose -f docker-compose.yml build + +superuser: + docker exec -it web poetry run python manage.py createsuperuser + +migrate: + docker exec -it web poetry run python manage.py migrate + +migrations: + docker exec -it web poetry run python manage.py makemigrations + +logs: + docker container logs web \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 0bbeda3c..998a7b73 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,6 +10,7 @@ services: command: bash ./scripts/startup.sh volumes: - ./log:/procollab/log + - ./:/procollab/. env_file: - .env environment: diff --git a/invites/filters.py b/invites/filters.py index 4ce48ddf..c9db8f3c 100644 --- a/invites/filters.py +++ b/invites/filters.py @@ -4,6 +4,14 @@ from vacancy.filters import project_id_filter +def user_id_filter(queryset, name, value): + return queryset.filter( + **{ + "user_id": value[0], + } + ) + + class InviteFilter(filters.FilterSet): """Filter for Invite @@ -21,17 +29,20 @@ class InviteFilter(filters.FilterSet): def __init__(self, *args, **kwargs): """if user filter is not passed, default to request.user""" super().__init__(*args, **kwargs) - if self.data.get("user") is None: + if self.data.get("user_id") is None: # default filtering by current user self.data = dict(self.data) self.data["user"] = kwargs.get("request").user.id + + # fixme: if there is no filter, handler may return too much data # if user == "any", remove the filter - if self.data.get("user") == "any": + if self.data.get("user_id") == "any": self.data = dict(self.data) - self.data.pop("user") + self.data.pop("user_id") project = filters.Filter(method=project_id_filter) + user_id = filters.Filter(method=user_id_filter) class Meta: model = Invite - fields = ("project", "user") + fields = ("project", "user_id")