Compare commits
5 Commits
dcacff303d
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| a48df0f44d | |||
| 9230c35be6 | |||
| adada84e9a | |||
| 8cb0554696 | |||
| 947d9f740c |
+11
@@ -3,6 +3,17 @@ type: docker
|
||||
name: default
|
||||
|
||||
steps:
|
||||
- name: test
|
||||
image: python:3.10
|
||||
commands:
|
||||
- pip3 install poetry --quiet
|
||||
- poetry install --no-root --quiet
|
||||
- export SECRET_KEY=$(openssl rand -hex 32)
|
||||
- export DATABASE_URL=sqlite://$(mktemp)/db.sqlite3
|
||||
- poetry run ./manage.py test
|
||||
environment:
|
||||
ALLOWED_HOSTS: localhost,127.0.0.1
|
||||
DEBUG: True
|
||||
- name: deploy
|
||||
image: caprover/cli-caprover:2.2.3
|
||||
commands:
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
repos:
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: poetry
|
||||
name: poetry
|
||||
language: system
|
||||
entry: poetry check
|
||||
files: '^(pyproject.toml|poetry.lock)$'
|
||||
pass_filenames: false
|
||||
# - id: black
|
||||
# name: black
|
||||
# language: system
|
||||
# entry: poetry run black --target-version py39
|
||||
# types_or: [python, pyi]
|
||||
# require_serial: true
|
||||
# - id: isort
|
||||
# name: isort
|
||||
# language: system
|
||||
# entry: poetry run isort --profile black --python-version 39
|
||||
# types_or: [cython, pyi, python]
|
||||
# require_serial: true
|
||||
# - id: flake8
|
||||
# name: flake8
|
||||
# language: system
|
||||
# entry: poetry run flake8
|
||||
# types_or: [python]
|
||||
# files: "^.*\\.py$"
|
||||
# - id: mypy
|
||||
# name: mypy
|
||||
# language: system
|
||||
# entry: poetry run mypy --strict --python-version 3.9
|
||||
# types_or: [python, pyi]
|
||||
# files: "^.*\\.pyi?$"
|
||||
- id: test
|
||||
name: test
|
||||
language: system
|
||||
entry: poetry run ./manage.py test
|
||||
types_or: [python]
|
||||
files: "^.*\\.py$"
|
||||
pass_filenames: false
|
||||
+2
-2
@@ -29,11 +29,11 @@ class Movie(models.Model):
|
||||
|
||||
@property
|
||||
def score(self):
|
||||
return reduce(lambda result,v: result+v.vote, self.movievote_set.all(), 0)
|
||||
return reduce(lambda result,v: result+v.vote, self.movievote_set.filter(user__is_active=True).all(), 0)
|
||||
|
||||
@property
|
||||
def seen_score(self):
|
||||
return reduce(lambda result,v: result+int(v.seen), self.movievote_set.all(), 0)
|
||||
return reduce(lambda result,v: result+int(v.seen), self.movievote_set.filter(user__is_active=True).all(), 0)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
+3
-2
@@ -1,3 +1,4 @@
|
||||
from django.db.models import Q
|
||||
from django.http import HttpResponseRedirect, HttpResponseBadRequest, HttpResponseForbidden
|
||||
from django.views import generic
|
||||
from django.views.decorators.http import require_http_methods, require_safe, require_POST
|
||||
@@ -36,7 +37,7 @@ class DetailView(generic.DetailView):
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
votes = self.object.movievote_set.all()
|
||||
votes = self.object.movievote_set.filter(user__is_active=True).all()
|
||||
user_vote = None
|
||||
if self.request.user.is_authenticated:
|
||||
user_vote = votes.filter(user=self.request.user).first()
|
||||
@@ -70,7 +71,7 @@ class EditView(generic.DetailView):
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context["users"] = User.objects.all() if self.request.user.has_perm("watchlist.moderate_movies") else None
|
||||
context["users"] = User.objects.filter(Q(is_active=True) | Q(id=self.object.suggested_by.id)).all() if self.request.user.has_perm("watchlist.moderate_movies") else None
|
||||
context["error"] = self.request.GET.get("error", None)
|
||||
return context
|
||||
|
||||
|
||||
Reference in New Issue
Block a user