ruff formating
This commit is contained in:
@@ -6,7 +6,7 @@ app_name = apps.AuthenticationsConfig.name
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("login/", views.AuthLoginView.as_view(), name="login"),
|
path("login/", views.AuthLoginView.as_view(), name="login"),
|
||||||
path("logout/", views.logoutUser, name="logout"),
|
path("logout/", views.logout_user, name="logout"),
|
||||||
path(
|
path(
|
||||||
"change-password/",
|
"change-password/",
|
||||||
views.LdapPasswordChangeView.as_view(),
|
views.LdapPasswordChangeView.as_view(),
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class AuthLoginView(LoginView):
|
|||||||
|
|
||||||
|
|
||||||
@authenticated_user
|
@authenticated_user
|
||||||
def logoutUser(request):
|
def logout_user(request):
|
||||||
logout(request)
|
logout(request)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
from pathlib import Path
|
||||||
from urllib.parse import urljoin
|
from urllib.parse import urljoin
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
@@ -14,11 +14,11 @@ def get_ep_client():
|
|||||||
ep_c = None
|
ep_c = None
|
||||||
|
|
||||||
# Get api key from settings
|
# Get api key from settings
|
||||||
if not os.path.isfile(api_key_path):
|
if not Path(api_key_path).is_file():
|
||||||
logger.info("API Key file is missing. Path: %s", api_key_path)
|
logger.info("API Key file is missing. Path: %s", api_key_path)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
with open(os.path.abspath(api_key_path)) as f:
|
with Path(Path(api_key_path).resolve()).open() as f:
|
||||||
api_key = f.read()
|
api_key = f.read()
|
||||||
api_key = api_key.rstrip()
|
api_key = api_key.rstrip()
|
||||||
|
|
||||||
@@ -166,4 +166,6 @@ def ep_get_url(pad_id: str):
|
|||||||
if not ep_pad_exists(pad_id):
|
if not ep_pad_exists(pad_id):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return urljoin(settings.ETHERPAD_CLIENT["exturl"], "p/" + ep_group["groupID"] + "$" + str(pad_id))
|
return urljoin(
|
||||||
|
settings.ETHERPAD_CLIENT["exturl"], "p/" + ep_group["groupID"] + "$" + str(pad_id)
|
||||||
|
)
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ class BillPeriodeFilter(admin.SimpleListFilter):
|
|||||||
|
|
||||||
if self.value():
|
if self.value():
|
||||||
try:
|
try:
|
||||||
period = datetime.strptime(self.value()[:4], "%Y")
|
period = datetime.strptime(self.value()[:4], "%Y") # noqa: DTZ007
|
||||||
except Exception:
|
except Exception:
|
||||||
# If choice is 'All', return all bills.
|
# If choice is 'All', return all bills.
|
||||||
qs = queryset
|
qs = queryset
|
||||||
@@ -671,7 +671,8 @@ class WirefAdmin(admin.ModelAdmin):
|
|||||||
else:
|
else:
|
||||||
self.message_user(
|
self.message_user(
|
||||||
request,
|
request,
|
||||||
"Das PDF-Dokument konnte nicht generiert werden, da der Status nicht auf 'Offen' gesetzt ist.",
|
"Das PDF-Dokument konnte nicht generiert werden, da der Status nicht auf "
|
||||||
|
"'Offen' gesetzt ist.",
|
||||||
messages.WARNING,
|
messages.WARNING,
|
||||||
)
|
)
|
||||||
return HttpResponseRedirect(".")
|
return HttpResponseRedirect(".")
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from datetime import datetime
|
import datetime
|
||||||
from dateutil.relativedelta import relativedelta
|
|
||||||
import decimal
|
import decimal
|
||||||
|
|
||||||
|
from dateutil.relativedelta import relativedelta
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.core.validators import ValidationError
|
from django.core.validators import ValidationError
|
||||||
from django.db.models import Count, Q
|
from django.db.models import Count, Q
|
||||||
@@ -35,8 +35,10 @@ def get_cleaned_data(cleaned_data):
|
|||||||
cleaned_data["resolution"] = Resolution.objects.get(
|
cleaned_data["resolution"] = Resolution.objects.get(
|
||||||
Q(id=resolution) | Q(name=resolution),
|
Q(id=resolution) | Q(name=resolution),
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception as exc:
|
||||||
raise ValidationError({"resolution_text": "Es gibt keinen Beschluss mit dieser ID."})
|
raise ValidationError(
|
||||||
|
{"resolution_text": "Es gibt keinen Beschluss mit dieser ID."}
|
||||||
|
) from exc
|
||||||
|
|
||||||
# If payer is 'Me', you need name, iban and bic data.
|
# If payer is 'Me', you need name, iban and bic data.
|
||||||
if payer == Bill.Payer.ME:
|
if payer == Bill.Payer.ME:
|
||||||
@@ -575,7 +577,7 @@ class BillAdminForm(forms.ModelForm):
|
|||||||
self.fields["resolution"].queryset = self.fields["resolution"].queryset.filter(
|
self.fields["resolution"].queryset = self.fields["resolution"].queryset.filter(
|
||||||
(
|
(
|
||||||
Q(option=Resolution.Option.FINANCE)
|
Q(option=Resolution.Option.FINANCE)
|
||||||
& Q(date__gt=datetime.now().date() - relativedelta(years=2))
|
& Q(date__gt=datetime.datetime.now(tz=datetime.UTC).date() - relativedelta(years=2))
|
||||||
)
|
)
|
||||||
| Q(option=Resolution.Option.PERMANENT)
|
| Q(option=Resolution.Option.PERMANENT)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ class Resolution(models.Model):
|
|||||||
|
|
||||||
|
|
||||||
class Wiref(models.Model):
|
class Wiref(models.Model):
|
||||||
wiref_id = models.CharField(max_length=10, blank=True, null=True)
|
wiref_id = models.CharField(max_length=10, blank=True, default="")
|
||||||
|
|
||||||
file_field = models.FileField(
|
file_field = models.FileField(
|
||||||
upload_to="uploads/finance/wiref/",
|
upload_to="uploads/finance/wiref/",
|
||||||
@@ -253,7 +253,7 @@ class Bill(models.Model):
|
|||||||
null=True,
|
null=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
comment = models.TextField(blank=True, null=True)
|
comment = models.TextField(blank=True, default="")
|
||||||
|
|
||||||
class Status(models.TextChoices):
|
class Status(models.TextChoices):
|
||||||
SUBMITTED = "S", "Eingereicht"
|
SUBMITTED = "S", "Eingereicht"
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import io
|
import io
|
||||||
import os
|
from pathlib import Path
|
||||||
|
|
||||||
from django.core.files import File
|
from django.core.files import File
|
||||||
from pypdf import PdfReader, PdfWriter
|
from pypdf import PdfReader, PdfWriter
|
||||||
from pypdf.constants import FieldDictionaryAttributes as FA
|
from pypdf.constants import FieldDictionaryAttributes as FA # noqa: N814
|
||||||
|
|
||||||
from .models import Bill, Fee, Wiref
|
from .models import Bill, Fee, Wiref
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ def generate_pdf(wiref):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Get budget year
|
# Get budget year
|
||||||
today = datetime.date.today()
|
today = datetime.datetime.now(tz=datetime.UTC).date()
|
||||||
if today.month < 7:
|
if today.month < 7:
|
||||||
budget_year = f"{today.year - 1}-{today.year}"
|
budget_year = f"{today.year - 1}-{today.year}"
|
||||||
else:
|
else:
|
||||||
@@ -55,7 +55,7 @@ def generate_pdf(wiref):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Write data in pdf
|
# Write data in pdf
|
||||||
pdf_path = os.path.join(os.path.dirname(__file__), "static/wiref/Vorlage.pdf")
|
pdf_path = Path(Path(__file__).parent) / "static/wiref/Vorlage.pdf"
|
||||||
reader = PdfReader(pdf_path)
|
reader = PdfReader(pdf_path)
|
||||||
writer = PdfWriter()
|
writer = PdfWriter()
|
||||||
writer.append(reader)
|
writer.append(reader)
|
||||||
@@ -117,7 +117,7 @@ def generate_fee_pdf(fee: Fee):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Write data in pdf
|
# Write data in pdf
|
||||||
pdf_path = os.path.join(os.path.dirname(__file__), "static/fee/Honorarnote-Vorlage.pdf")
|
pdf_path = Path(Path(__file__).parent) / "static/fee/Honorarnote-Vorlage.pdf"
|
||||||
reader = PdfReader(pdf_path)
|
reader = PdfReader(pdf_path)
|
||||||
writer = PdfWriter()
|
writer = PdfWriter()
|
||||||
writer.append(reader)
|
writer.append(reader)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class TopicGroup(models.Model):
|
|||||||
shortterm = models.CharField(max_length=128, unique=True, blank=True)
|
shortterm = models.CharField(max_length=128, unique=True, blank=True)
|
||||||
slug = models.SlugField(unique=True)
|
slug = models.SlugField(unique=True)
|
||||||
|
|
||||||
short_description = models.TextField(null=True, blank=True)
|
short_description = models.TextField(blank=True, default="")
|
||||||
|
|
||||||
order = models.PositiveSmallIntegerField(
|
order = models.PositiveSmallIntegerField(
|
||||||
verbose_name="Reihenfolge",
|
verbose_name="Reihenfolge",
|
||||||
@@ -53,7 +53,7 @@ class Topic(models.Model):
|
|||||||
|
|
||||||
archive = models.BooleanField(default=False, verbose_name="Archiv")
|
archive = models.BooleanField(default=False, verbose_name="Archiv")
|
||||||
|
|
||||||
description = models.TextField(blank=True, null=True)
|
description = models.TextField(blank=True, default="")
|
||||||
|
|
||||||
topic_group = models.ForeignKey(
|
topic_group = models.ForeignKey(
|
||||||
TopicGroup,
|
TopicGroup,
|
||||||
@@ -94,7 +94,7 @@ class Attachment(models.Model):
|
|||||||
|
|
||||||
slug = models.SlugField()
|
slug = models.SlugField()
|
||||||
|
|
||||||
description = models.TextField(blank=True, null=True)
|
description = models.TextField(blank=True, default="")
|
||||||
|
|
||||||
topic = models.ForeignKey(Topic, on_delete=models.CASCADE, verbose_name="Thema")
|
topic = models.ForeignKey(Topic, on_delete=models.CASCADE, verbose_name="Thema")
|
||||||
|
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ class ArticleManager(PublishedManager, models.Manager):
|
|||||||
|
|
||||||
def pinned(self, public=True):
|
def pinned(self, public=True):
|
||||||
# Get date for pinned news that is max 1 month old.
|
# Get date for pinned news that is max 1 month old.
|
||||||
post_date = datetime.date.today()
|
post_date = datetime.datetime.now(tz=datetime.UTC).date()
|
||||||
__month = post_date.month
|
__month = post_date.month
|
||||||
__year = post_date.year
|
__year = post_date.year
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ class ArticleManager(PublishedManager, models.Manager):
|
|||||||
post_date = post_date.replace(year=__year, month=__month)
|
post_date = post_date.replace(year=__year, month=__month)
|
||||||
|
|
||||||
# Get date for event posts that is max 1 day old.
|
# Get date for event posts that is max 1 day old.
|
||||||
event_date = datetime.date.today() - datetime.timedelta(1)
|
event_date = datetime.datetime.now(tz=datetime.UTC).date() - datetime.timedelta(1)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
self.published(public)
|
self.published(public)
|
||||||
@@ -145,7 +145,7 @@ class AllEventManager(PublishedManager, models.Manager):
|
|||||||
return qs.order_by("-date")
|
return qs.order_by("-date")
|
||||||
|
|
||||||
def future_events(self, public=True):
|
def future_events(self, public=True):
|
||||||
date_today = datetime.date.today()
|
date_today = datetime.datetime.now(tz=datetime.UTC).date()
|
||||||
qs = self.published(public).filter(event_start__gt=date_today)
|
qs = self.published(public).filter(event_start__gt=date_today)
|
||||||
return qs.reverse()
|
return qs.reverse()
|
||||||
|
|
||||||
@@ -166,12 +166,12 @@ class EventManager(PublishedManager, models.Manager):
|
|||||||
return qs.order_by("-date")
|
return qs.order_by("-date")
|
||||||
|
|
||||||
def future_events(self, public=True):
|
def future_events(self, public=True):
|
||||||
date_today = datetime.date.today()
|
date_today = datetime.datetime.now(tz=datetime.UTC).date()
|
||||||
qs = self.published(public).filter(event_start__gt=date_today)
|
qs = self.published(public).filter(event_start__gt=date_today)
|
||||||
return qs.reverse()
|
return qs.reverse()
|
||||||
|
|
||||||
def past_events(self, public=True):
|
def past_events(self, public=True):
|
||||||
date_today = datetime.date.today()
|
date_today = datetime.datetime.now(tz=datetime.UTC).date()
|
||||||
qs = self.published(public).filter(event_start__lt=date_today)
|
qs = self.published(public).filter(event_start__lt=date_today)
|
||||||
return qs
|
return qs
|
||||||
|
|
||||||
@@ -191,11 +191,11 @@ class FetMeetingManager(PublishedManager, models.Manager):
|
|||||||
return qs.order_by("-date")
|
return qs.order_by("-date")
|
||||||
|
|
||||||
def future_events(self):
|
def future_events(self):
|
||||||
date_today = datetime.date.today()
|
date_today = datetime.datetime.now(tz=datetime.UTC).date()
|
||||||
qs = self.published().filter(event_start__gt=date_today)
|
qs = self.published().filter(event_start__gt=date_today)
|
||||||
return qs.reverse()
|
return qs.reverse()
|
||||||
|
|
||||||
def past_events(self):
|
def past_events(self):
|
||||||
date_today = datetime.date.today()
|
date_today = datetime.datetime.now(tz=datetime.UTC).date()
|
||||||
qs = self.published().filter(event_start__lt=date_today)
|
qs = self.published().filter(event_start__lt=date_today)
|
||||||
return qs
|
return qs
|
||||||
|
|||||||
Reference in New Issue
Block a user