ruff formatting

This commit is contained in:
2025-01-27 01:02:42 +01:00
parent f0d0c44fd6
commit fcf63d8bf9
30 changed files with 168 additions and 154 deletions

View File

@@ -4,8 +4,6 @@ from ldap3 import HASHED_SALTED_SHA, MODIFY_REPLACE, Connection, Server
from ldap3.core.exceptions import LDAPBindError
from ldap3.utils.hashed import hashed
from members.models import Member
logger = logging.getLogger(__name__)
host = "ldap://juri.fet.htu.tuwien.ac.at"
port = 389

View File

@@ -1,8 +1,7 @@
import logging
from django.contrib.auth.models import Group, User
from django.contrib.auth.backends import ModelBackend
from django.contrib.auth.models import Group, User
from ldap3 import Connection, Server
from ldap3.core.exceptions import LDAPBindError
@@ -125,10 +124,10 @@ class LdapBackend(ModelBackend):
user = User.objects.get(username)
except User.DoesNotExist:
user = User.objects.create_user(username)
finally:
if not self.user_can_authenticate(user):
logger.info("User '%s' is inactive.", user.get_username())
return
if not self.user_can_authenticate(user):
logger.info("User '%s' is inactive.", user.get_username())
return
# Add user to all groups
for elem in Group.objects.all():

View File

@@ -1,7 +1,6 @@
import logging
from django.contrib.auth.forms import PasswordChangeForm
from django.core.exceptions import ValidationError
from .authentications import change_password

View File

@@ -21,7 +21,7 @@ class CustomFlatPageAdmin(FlatPageAdmin):
"url",
"title",
"content",
)
),
},
),
(

View File

@@ -6,7 +6,8 @@ class FETHeaderMiddleware(RemoteUserMiddleware):
def process_request(self, request):
request.META[self.header] = request.META.get(
self.header, request.headers.get(self.header, None)
self.header,
request.headers.get(self.header, None),
)
super().process_request(request)

View File

@@ -24,8 +24,8 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# DEBUGGING
DEBUG = (env("DEBUG").lower() == "true")
LDAP = (env("LDAP").lower() == "true")
DEBUG = env("DEBUG").lower() == "true"
LDAP = env("LDAP").lower() == "true"
# MODELS
@@ -84,7 +84,7 @@ if DEBUG:
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": os.path.join(BASE_DIR, "db.sqlite3"),
}
},
}
else:
DATABASES = {
@@ -95,7 +95,7 @@ else:
"PASSWORD": env("MYSQL_PASSWORD"),
"HOST": env("MYSQL_HOST"),
"PORT": env("MYSQL_PORT"),
}
},
}
@@ -107,20 +107,14 @@ EMAIL_USE_TLS = True
# STATIC FILES
if DEBUG:
STATIC_URL = "static/"
else:
STATIC_URL = "assets/"
STATIC_URL = "static/" if DEBUG else "assets/"
# Use for collectstatic/production folder.
# --- Saving directory for production folder.
STATIC_ROOT = "assets/"
# --- Get files from following directory for production folder.
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "gallery/static"),
os.path.join(BASE_DIR, "static"),
]
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
# FILE UPLOADS
@@ -198,10 +192,7 @@ CSRF_TRUSTED_ORIGINS = [
"https://" + env("HOST_NAME"),
]
if DEBUG:
SECRET_KEY = "r37-i7l)vrduzz2-gira+z#u!p!di9#f+%s*5-bb($hg)55@ns"
else:
SECRET_KEY = env("SECRET_KEY")
SECRET_KEY = "r37-i7l)vrduzz2-gira+z#u!p!di9#f+%s*5-bb($hg)55@ns" if DEBUG else env("SECRET_KEY")
# TEMPLATES

View File

@@ -11,11 +11,7 @@ def add_log_action(request, form, app_label, model, add=True):
obj = form.save()
content_type = ContentType.objects.get(app_label=app_label, model=model)
change_message = construct_change_message(form, None, add)
if add:
action_flag = ADDITION
else:
action_flag = CHANGE
action_flag = ADDITION if add else CHANGE
LogEntry.objects.log_action(
user_id=request.user.pk,

View File

@@ -216,7 +216,7 @@ class BillAdmin(admin.ModelAdmin):
"fields": (
"bill_creator",
"resolution",
)
),
},
),
(
@@ -227,7 +227,7 @@ class BillAdmin(admin.ModelAdmin):
"bankdata",
("get_bankdata_name", "get_bankdata_iban", "get_bankdata_bic"),
"get_qrcode",
)
),
},
),
(
@@ -241,7 +241,7 @@ class BillAdmin(admin.ModelAdmin):
"amount",
"only_digital",
"file_field",
)
),
},
),
(
@@ -251,7 +251,7 @@ class BillAdmin(admin.ModelAdmin):
"comment",
"wiref",
"status",
)
),
},
),
)
@@ -403,7 +403,7 @@ class ResolutionAdmin(admin.ModelAdmin):
"date",
"option",
"is_visible",
)
),
},
),
(
@@ -413,7 +413,7 @@ class ResolutionAdmin(admin.ModelAdmin):
"budget",
"total",
"budget_remaining",
)
),
},
),
(

View File

@@ -29,7 +29,7 @@ def get_cleaned_data(cleaned_data):
if resolution != "":
try:
cleaned_data["resolution"] = Resolution.objects.get(
Q(id=resolution) | Q(name=resolution)
Q(id=resolution) | Q(name=resolution),
)
except Exception:
raise ValidationError({"resolution_text": "Es gibt keinen Beschluss mit dieser ID."})
@@ -68,7 +68,10 @@ class BillCreateForm(forms.ModelForm):
# Resolution
resolution_text = forms.CharField(
required=False, label="Beschlussnummer", initial="", max_length=128
required=False,
label="Beschlussnummer",
initial="",
max_length=128,
)
class Meta:
@@ -122,7 +125,7 @@ class BillCreateForm(forms.ModelForm):
self.fields["payer"].autofocus = True
bank_data = BankData.objects.filter(
Q(bankdata_creator=member) & Q(is_disabled=False)
Q(bankdata_creator=member) & Q(is_disabled=False),
).first()
if bank_data is not None:
self.fields["name_text"].initial = bank_data.name
@@ -147,12 +150,17 @@ class BillUpdateForm(forms.ModelForm):
# only digital bill
only_digital_new = forms.BooleanField(
required=False, label="Ich habe eine neue digitale Rechnung.", initial=False
required=False,
label="Ich habe eine neue digitale Rechnung.",
initial=False,
)
# Resolution
resolution_text = forms.CharField(
required=False, label="Beschlussnummer", initial="", max_length=128
required=False,
label="Beschlussnummer",
initial="",
max_length=128,
)
class Meta:
@@ -399,7 +407,9 @@ class BillAdminForm(forms.ModelForm):
self.fields["bill_creator"].widget.can_delete_related = False
# Delete wiref id from list if there are already 10 bills in wiref form.
qs = self.fields["wiref"].queryset.annotate(num_bills=Count("bill")).filter(num_bills__lt=10)
qs = (
self.fields["wiref"].queryset.annotate(num_bills=Count("bill")).filter(num_bills__lt=10)
)
# delete wiref id from if status is not opened.
qs = qs.filter(status=Wiref.Status.OPENED)

View File

@@ -53,7 +53,10 @@ class Resolution(models.Model):
voting_text = models.TextField(verbose_name="Abstimmungstext")
budget = models.DecimalField(
max_digits=7, decimal_places=2, default=0.00, verbose_name="Budget (EUR)"
max_digits=7,
decimal_places=2,
default=0.00,
verbose_name="Budget (EUR)",
)
class Meta:
@@ -155,7 +158,9 @@ class Bill(models.Model):
REPRESENTATION = "R", "Bundesvertretung"
affiliation = models.CharField(
max_length=1, choices=Affiliation.choices, verbose_name="Abrechnungsbudget"
max_length=1,
choices=Affiliation.choices,
verbose_name="Abrechnungsbudget",
)
class Payer(models.TextChoices):

View File

@@ -17,7 +17,7 @@ def generate_pdf(wiref):
# Get data for pdf
data = {}
data_invoice = {} # Own dict for fixing text to multiline
data_invoice = {} # Own dict for fixing text to multiline
for count, elem in enumerate(bills):
data.update(
{
@@ -25,12 +25,12 @@ def generate_pdf(wiref):
f"VerwendungszweckRow{count + 1}": elem.purpose,
# Replace decimal separator from '.' to ','
f"BetragRow{count + 1}": str(elem.amount).replace(".", ","),
}
},
)
data_invoice.update(
{
f"RechnungsaustellerinRow{count + 1}": elem.invoice,
}
},
)
# Get budget year
@@ -51,7 +51,7 @@ def generate_pdf(wiref):
"Budgetjahr": budget_year,
# Replace decimal separator from '.' to ','
"Summe": str(total).replace(".", ","),
}
},
)
# Write data in pdf

View File

@@ -34,7 +34,7 @@ def set_bankdata(creator, name, iban, bic, saving):
if saving is True:
# Disable old bank data.
qs = BankData.objects.filter(
~Q(id=obj.id) & Q(bankdata_creator=obj.bankdata_creator) & Q(is_disabled=False)
~Q(id=obj.id) & Q(bankdata_creator=obj.bankdata_creator) & Q(is_disabled=False),
)
qs.update(is_disabled=True)
@@ -114,11 +114,7 @@ class BillUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
# Call bill if it's only yours.
def test_func(self):
if self.get_object().bill_creator.username == self.request.user.username:
return True
# Call handle_no_permissions method.
return False
return self.get_object().bill_creator.username == self.request.user.username
def handle_no_permission(self):
return redirect("finance:bill_list")

View File

@@ -14,12 +14,18 @@ class Album(models.Model):
thumbnail = models.CharField(verbose_name="Thumbnail", max_length=200, null=True, blank=True)
event_date = models.DateField(
verbose_name="Event Datum", null=True, blank=True, default=timezone.now
verbose_name="Event Datum",
null=True,
blank=True,
default=timezone.now,
)
event_place = models.CharField(max_length=200, blank=True)
photographer = models.CharField(
verbose_name="Fotograph(en)", max_length=200, null=True, blank=True
verbose_name="Fotograph(en)",
max_length=200,
null=True,
blank=True,
)
DRAFT = "10"

View File

@@ -34,7 +34,8 @@ def get_image_list(folder_name):
img_dict = {
"title": img,
"image_url": os.path.join(
settings.MEDIA_URL + gallery_path, folder_name + "/" + img
settings.MEDIA_URL + gallery_path,
folder_name + "/" + img,
),
"thumb_url": thumb_url,
}

View File

@@ -27,7 +27,7 @@ def index(request):
slug=slugify(folder),
folder_name=folder,
event_date=None,
)
),
)
else:
# show only PUBLIC albums.

View File

@@ -68,7 +68,7 @@ class TopicGroupAdmin(admin.ModelAdmin):
"slug",
"order",
"short_description",
)
),
},
),
)
@@ -118,7 +118,7 @@ class TopicAdmin(admin.ModelAdmin):
"topic_group",
"archive",
"description",
)
),
},
),
)
@@ -163,7 +163,7 @@ class AttachmentAdmin(admin.ModelAdmin):
"title",
"topic",
"description",
)
),
},
),
)

View File

@@ -23,7 +23,10 @@ class TopicGroup(models.Model):
short_description = models.TextField(null=True, blank=True)
order = models.PositiveSmallIntegerField(
verbose_name="Reihenfolge", unique=True, null=True, blank=True
verbose_name="Reihenfolge",
unique=True,
null=True,
blank=True,
)
objects = models.Manager()
@@ -53,7 +56,9 @@ class Topic(models.Model):
description = models.TextField(blank=True, null=True)
topic_group = models.ForeignKey(
TopicGroup, on_delete=models.CASCADE, verbose_name="Themenbereich"
TopicGroup,
on_delete=models.CASCADE,
verbose_name="Themenbereich",
)
objects = models.Manager()
@@ -65,7 +70,8 @@ class Topic(models.Model):
constraints = [
UniqueConstraint(fields=["slug", "topic_group"], name="unique_intern_slug_topic_group"),
UniqueConstraint(
fields=["title", "topic_group"], name="unique_intern_title_topic_group"
fields=["title", "topic_group"],
name="unique_intern_title_topic_group",
),
]
@@ -126,7 +132,9 @@ class Etherpad(models.Model):
date = models.DateField(default=date.today, verbose_name="Datum")
attachment = models.ForeignKey(
Attachment, on_delete=models.CASCADE, verbose_name="Anhang Ordner"
Attachment,
on_delete=models.CASCADE,
verbose_name="Anhang Ordner",
)
objects = models.Manager()
@@ -178,7 +186,9 @@ class FileUpload(models.Model):
date = models.DateField(default=date.today, verbose_name="Datum")
attachment = models.ForeignKey(
Attachment, on_delete=models.CASCADE, verbose_name="Anhang Ordner"
Attachment,
on_delete=models.CASCADE,
verbose_name="Anhang Ordner",
)
objects = models.Manager()

View File

@@ -27,7 +27,9 @@ logger = logging.getLogger(__name__)
@authenticated_user
def index(request):
topic = Topic.objects.filter(archive=False).order_by(
F("topic_group__order").asc(nulls_last=True), "topic_group", "title"
F("topic_group__order").asc(nulls_last=True),
"topic_group",
"title",
)
empty_topic_groups = TopicGroup.objects.filter(topic=None)
archive_topic = Topic.objects.filter(archive=True)
@@ -107,7 +109,7 @@ class AttachmentCreateView(LoginRequiredMixin, CreateView):
topic_group_slug = self.kwargs.get("topic_group_slug")
topic_slug = self.kwargs.get("slug")
context["topic"] = Topic.objects.get(
Q(topic_group__slug=topic_group_slug) & Q(slug=topic_slug)
Q(topic_group__slug=topic_group_slug) & Q(slug=topic_slug),
)
return context
@@ -143,7 +145,7 @@ class AttachmentDetailView(LoginRequiredMixin, DetailView):
topic_group_slug = self.kwargs.get("topic_group_slug")
topic_slug = self.kwargs.get("topic_slug")
return Attachment.objects.filter(
Q(topic__topic_group__slug=topic_group_slug) & Q(topic__slug=topic_slug)
Q(topic__topic_group__slug=topic_group_slug) & Q(topic__slug=topic_slug),
)
@@ -166,7 +168,7 @@ class AttachmentUpdateView(LoginRequiredMixin, UpdateView):
topic_group_slug = self.kwargs.get("topic_group_slug")
topic_slug = self.kwargs.get("topic_slug")
return Attachment.objects.filter(
Q(topic__topic_group__slug=topic_group_slug) & Q(topic__slug=topic_slug)
Q(topic__topic_group__slug=topic_group_slug) & Q(topic__slug=topic_slug),
)
@@ -186,7 +188,7 @@ class EtherpadCreateView(LoginRequiredMixin, CreateView):
topic_slug = self.kwargs.get("topic_slug")
slug = self.kwargs.get("slug")
attachment = Attachment.objects.get(
Q(topic__topic_group__slug=topic_group_slug) & Q(topic__slug=topic_slug) & Q(slug=slug)
Q(topic__topic_group__slug=topic_group_slug) & Q(topic__slug=topic_slug) & Q(slug=slug),
)
context["attachment"] = attachment
return context
@@ -211,7 +213,7 @@ class FileUploadCreateView(LoginRequiredMixin, CreateView):
topic_slug = self.kwargs.get("topic_slug")
slug = self.kwargs.get("slug")
attachment = Attachment.objects.get(
Q(topic__topic_group__slug=topic_group_slug) & Q(topic__slug=topic_slug) & Q(slug=slug)
Q(topic__topic_group__slug=topic_group_slug) & Q(topic__slug=topic_slug) & Q(slug=slug),
)
context["attachment"] = attachment
return context

View File

@@ -86,7 +86,7 @@ class MemberAdmin(admin.ModelAdmin):
"birthday",
"phone",
"address",
)
),
},
),
)
@@ -137,7 +137,7 @@ class JobAdmin(admin.ModelAdmin):
"fields": (
"name",
"job_group",
)
),
},
),
(
@@ -146,7 +146,7 @@ class JobAdmin(admin.ModelAdmin):
"fields": (
"shortterm",
"slug",
)
),
},
),
)
@@ -193,7 +193,7 @@ class JobGroupAdmin(admin.ModelAdmin):
"fields": (
"name",
"description",
)
),
},
),
(
@@ -202,7 +202,7 @@ class JobGroupAdmin(admin.ModelAdmin):
"fields": (
"shortterm",
"slug",
)
),
},
),
)

View File

@@ -46,8 +46,7 @@ class MemberForm(forms.ModelForm):
help_texts = {
"image": (
"Mindestdimension: 150*150 px, maximale Größe: 10MB, erlaubtes Format: "
"Bildformate."
"Mindestdimension: 150*150 px, maximale Größe: 10MB, erlaubtes Format: Bildformate."
),
"mailaccount": "Die Mailadresse mit '@fet.at' angeben.",
}

View File

@@ -24,7 +24,7 @@ class ActiveJobMemberManager(models.Manager):
)
return qs.filter(
Q(member__role="A") & (Q(job_end__gt=date_today) | Q(job_end__isnull=True))
Q(member__role="A") & (Q(job_end__gt=date_today) | Q(job_end__isnull=True)),
)
@@ -44,7 +44,7 @@ class InactiveJobMemberManager(models.Manager):
return qs.filter(
Q(member__role="P")
| (Q(job_end__lt=date_today + timedelta(days=1)) & Q(job_end__isnull=False))
| (Q(job_end__lt=date_today + timedelta(days=1)) & Q(job_end__isnull=False)),
)
@@ -56,7 +56,9 @@ class JobMemberManager(models.Manager):
def get_all_jobs_sorted(self):
qs = self.get_queryset().order_by(
F("job_end").desc(nulls_first=True), "-job_start", "job__name"
F("job_end").desc(nulls_first=True),
"-job_start",
"job__name",
)
return qs

View File

@@ -19,7 +19,8 @@ def get_jobs_sidebar(slug):
job_groups.remove(elem)
job_members = JobMember.active_member.get_all(slug=slug).order_by(
F("job__order").asc(nulls_last=True), "job__name"
F("job__order").asc(nulls_last=True),
"job__name",
)
active_job_group = JobGroup.objects.filter(slug=slug).first()

View File

@@ -27,7 +27,8 @@ def jobs(request, slug=None):
raise Http404("wrong job")
job_members = JobMember.active_member.get_all(slug=slug).order_by(
F("job__order").asc(nulls_last=True), "job__name"
F("job__order").asc(nulls_last=True),
"job__name",
)
active_job_group = JobGroup.objects.filter(slug=slug).first()

View File

@@ -88,7 +88,7 @@ class PostAdmin(admin.ModelAdmin):
"all": [
"jquery-ui/jquery-ui.min.css",
"jquery-ui/ui-lightness/theme.css",
]
],
}
js = [
"jquery-ui/jquery-ui.min.js",
@@ -108,7 +108,7 @@ class NewsAdmin(PostAdmin):
"title",
"subtitle",
"tags",
)
),
},
),
(
@@ -117,7 +117,7 @@ class NewsAdmin(PostAdmin):
"fields": (
"status",
"is_pinned",
)
),
},
),
(
@@ -126,7 +126,7 @@ class NewsAdmin(PostAdmin):
"fields": (
"image",
"body",
)
),
},
),
(
@@ -136,7 +136,7 @@ class NewsAdmin(PostAdmin):
"slug",
"author",
"public_date",
)
),
},
),
)
@@ -161,7 +161,7 @@ class EventAdmin(PostAdmin):
"title",
"subtitle",
"tags",
)
),
},
),
(
@@ -170,7 +170,7 @@ class EventAdmin(PostAdmin):
"fields": (
"status",
"is_pinned",
)
),
},
),
(
@@ -180,7 +180,7 @@ class EventAdmin(PostAdmin):
"event_start",
"event_end",
"event_place",
)
),
},
),
(
@@ -189,7 +189,7 @@ class EventAdmin(PostAdmin):
"fields": (
"image",
"body",
)
),
},
),
(
@@ -199,7 +199,7 @@ class EventAdmin(PostAdmin):
"slug",
"author",
"public_date",
)
),
},
),
)
@@ -223,7 +223,7 @@ class FetMeetingAdmin(EventAdmin):
"event_end",
"event_place",
"tags",
)
),
},
),
)

View File

@@ -149,10 +149,14 @@ class PostSearchForm(forms.Form):
month = forms.ChoiceField(label="Monat", choices=month_choices, required=False)
compact_view = forms.BooleanField(
label="Kompakte Ansicht", required=False, widget=CheckboxInput
label="Kompakte Ansicht",
required=False,
widget=CheckboxInput,
)
fet_meeting_only = forms.BooleanField(
label="nur FET Sitzungen", required=False, widget=CheckboxInput
label="nur FET Sitzungen",
required=False,
widget=CheckboxInput,
)
def __init__(self, *args, **kwargs):

View File

@@ -10,20 +10,14 @@ class PublishedManager(models.Manager):
"""
publish all posts with status 'PUBLIC'
"""
if public:
qs = self.get_queryset().filter(status="20")
else:
qs = self.get_queryset()
qs = self.get_queryset().filter(status="20") if public else self.get_queryset()
return qs
def published_all(self, public=True):
"""
publish all posts with status 'PUBLIC' and 'ONLY_INTERN'
"""
if public:
qs = self.get_queryset().filter(~Q(status="10"))
else:
qs = self.get_queryset()
qs = self.get_queryset().filter(~Q(status="10")) if public else self.get_queryset()
return qs
@@ -35,7 +29,7 @@ class PostManager(PublishedManager, models.Manager):
When(post_type="N", then="public_date"),
When(post_type="E", then="event_start__date"),
When(post_type="F", then="event_start__date"),
)
),
)
return qs.order_by("-date", "-id")
@@ -74,7 +68,7 @@ class ArticleManager(PublishedManager, models.Manager):
date=Case(
When(post_type="N", then="public_date"),
When(post_type="E", then="event_start__date"),
)
),
)
return qs.order_by("-date", "-id")
@@ -104,7 +98,7 @@ class ArticleManager(PublishedManager, models.Manager):
.filter(is_pinned=True)
.filter(
(Q(post_type="N") & Q(public_date__gt=post_date))
| (Q(post_type="E") & Q(event_end__date__gt=event_date))
| (Q(post_type="E") & Q(event_end__date__gt=event_date)),
)
.first()
)
@@ -120,7 +114,7 @@ class NewsManager(PublishedManager, models.Manager):
qs = qs.annotate(
date=Case(
When(post_type="N", then="public_date"),
)
),
)
return qs.order_by("-date")
@@ -136,7 +130,7 @@ class AllEventManager(PublishedManager, models.Manager):
date=Case(
When(post_type="E", then="event_start__date"),
When(post_type="F", then="event_start__date"),
)
),
)
return qs.order_by("-date")
@@ -157,7 +151,7 @@ class EventManager(PublishedManager, models.Manager):
qs = qs.annotate(
date=Case(
When(post_type="E", then="event_start__date"),
)
),
)
return qs.order_by("-date")
@@ -182,7 +176,7 @@ class FetMeetingManager(PublishedManager, models.Manager):
qs = qs.annotate(
date=Case(
When(post_type="F", then="event_start__date"),
)
),
)
return qs.order_by("-date")

View File

@@ -86,7 +86,10 @@ class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
public_date = models.DateField(
verbose_name="Veröffentlichung", null=True, blank=True, default=timezone.now
verbose_name="Veröffentlichung",
null=True,
blank=True,
default=timezone.now,
)
__choices = [("N", _("News")), ("E", _("Event")), ("F", _("FetMeeting"))]
@@ -137,9 +140,6 @@ class Post(models.Model):
self.title,
)
def get_absolute_url(self):
return reverse("posts:post", kwargs={"slug": self.slug})
def save(self, *args, **kwargs):
# save the post with some defaults
if not self.public_date:
@@ -150,6 +150,9 @@ class Post(models.Model):
super().save(*args, **kwargs)
def get_absolute_url(self):
return reverse("posts:post", kwargs={"slug": self.slug})
@property
def agenda_html(self) -> str | None:
"Agenda HTML from Etherpad Pad"
@@ -188,7 +191,9 @@ class Post(models.Model):
ep_set_html(self.protocol_key, value)
request_logger.info(
"Set protocol etherpad. Post: %s. Key: %s", self.slug, self.protocol_key
"Set protocol etherpad. Post: %s. Key: %s",
self.slug,
self.protocol_key,
)
return value
@@ -302,10 +307,7 @@ class Post(models.Model):
@property
def published(self):
if self.status == self.Status.PUBLIC:
return True
return False
return self.status == self.Status.PUBLIC
class News(Post):
@@ -328,16 +330,16 @@ class Event(Post):
only_events = EventManager()
all_events = AllEventManager()
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.post_type = "E"
class Meta:
proxy = True
verbose_name = "Event"
verbose_name_plural = "Events"
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.post_type = "E"
def save(self, *args, **kwargs):
if not self.post_type:
self.post_type = "E"
@@ -355,16 +357,16 @@ class Event(Post):
class FetMeeting(Event):
objects = FetMeetingManager()
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.post_type = "F"
class Meta:
proxy = True
verbose_name = "Fet Sitzung"
verbose_name_plural = "Fet Sitzungen"
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.post_type = "F"
def save(self, *args, **kwargs):
self.title = "Fachschaftssitzung"
if not self.slug:
@@ -398,9 +400,8 @@ class FetMeeting(Event):
def __get_slug(self) -> str:
slug = slugify(self.event_start.date()) + "-" + slugify("Fachschaftssitzung")
if Post.objects.filter(slug=slug).exists():
if Post.objects.get(slug=slug).id != self.id:
raise ValidationError("Es existiert bereits eine Sitzung mit demselben Datum.")
if Post.objects.filter(slug=slug).exists() and Post.objects.get(slug=slug).id != self.id:
raise ValidationError("Es existiert bereits eine Sitzung mit demselben Datum.")
return slug

View File

@@ -22,9 +22,7 @@ class PostIndex(indexes.SearchIndex, indexes.Indexable):
def prepare_date(self, obj):
if obj.post_type == "N":
return obj.public_date
elif obj.post_type == "E":
return obj.event_start.date()
elif obj.post_type == "F":
elif obj.post_type == "E" or obj.post_type == "F":
return obj.event_start.date()
def prepare_agenda(self, obj):

View File

@@ -146,13 +146,13 @@ class PostDetailView(DetailView):
Helper function for getting previous post
"""
posts = Post.objects.date_sorted_list(self.public_only).filter(
post_type=self.object.post_type
post_type=self.object.post_type,
)
qs = posts.filter(
# Get posts which are in the future.
Q(date__lt=self.object.date)
# Get posts which have the same date but id is lower.
| (Q(date__lte=self.object.date) & Q(id__lt=self.object.id))
| (Q(date__lte=self.object.date) & Q(id__lt=self.object.id)),
)
if not qs:
# If there are any prev posts, then take the latest one.
@@ -173,7 +173,7 @@ class PostDetailView(DetailView):
# Get posts which are in the past.
Q(date__gt=self.object.date)
# Get posts which have the same date but id is greater.
| (Q(date__gte=self.object.date) & Q(id__gt=self.object.id))
| (Q(date__gte=self.object.date) & Q(id__gt=self.object.id)),
)
if not qs:
# If there are any next posts, then take the first one.
@@ -314,7 +314,7 @@ def show_pdf(request, html, filename):
response = HttpResponse(pdf, content_type="application/pdf")
content = "inline; filename=%s" % filename
content = f"inline; filename={filename}"
response["Content-Disposition"] = content
return response

View File

@@ -22,7 +22,7 @@ class FetUserSearchForm(SearchForm):
sqs_gallery = self.searchqueryset.models(Album)
sqs_gallery = sqs_gallery.filter(
SQ(title__icontains=self.cleaned_data["q"])
| SQ(description__icontains=self.cleaned_data["q"])
| SQ(description__icontains=self.cleaned_data["q"]),
)
sqs_intern = self.searchqueryset.models(Etherpad)
@@ -31,7 +31,7 @@ class FetUserSearchForm(SearchForm):
sqs_member = self.searchqueryset.models(Member)
sqs_member = sqs_member.filter(
SQ(firstname__icontains=self.cleaned_data["q"])
| SQ(surname__icontains=self.cleaned_data["q"])
| SQ(surname__icontains=self.cleaned_data["q"]),
)
sqs_post = self.searchqueryset.models(Post)
@@ -39,7 +39,7 @@ class FetUserSearchForm(SearchForm):
SQ(title__icontains=self.cleaned_data["q"])
| SQ(body__icontains=self.cleaned_data["q"])
| SQ(agenda__icontains=self.cleaned_data["q"])
| SQ(protocol__icontains=self.cleaned_data["q"])
| SQ(protocol__icontains=self.cleaned_data["q"]),
)
tmp_results = deque([])
@@ -82,20 +82,20 @@ class NonUserSearchForm(SearchForm):
sqs_gallery = self.searchqueryset.models(Album).filter(status="20")
sqs_gallery = sqs_gallery.filter(
SQ(title__icontains=self.cleaned_data["q"])
| SQ(description__icontains=self.cleaned_data["q"])
| SQ(description__icontains=self.cleaned_data["q"]),
)
sqs_member = self.searchqueryset.models(Member)
sqs_member = sqs_member.filter(
SQ(firstname__icontains=self.cleaned_data["q"])
| SQ(surname__icontains=self.cleaned_data["q"])
| SQ(surname__icontains=self.cleaned_data["q"]),
)
sqs_post = self.searchqueryset.models(Post).filter(status="20")
sqs_post = sqs_post.filter(
SQ(title__icontains=self.cleaned_data["q"])
| SQ(body__icontains=self.cleaned_data["q"])
| SQ(agenda__icontains=self.cleaned_data["q"])
| SQ(agenda__icontains=self.cleaned_data["q"]),
)
tmp_results = deque([])