Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -138,3 +138,5 @@ cache

static
/emails/

.DS_Store
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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 \
Expand Down
20 changes: 19 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -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
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
1 change: 1 addition & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ services:
command: bash ./scripts/startup.sh
volumes:
- ./log:/procollab/log
- ./:/procollab/.
env_file:
- .env
environment:
Expand Down
19 changes: 15 additions & 4 deletions invites/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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")
Loading