black formatting
This commit is contained in:
@@ -30,9 +30,7 @@ class JobPosting(models.Model):
|
||||
validators=[FileExtensionValidator(["pdf"])],
|
||||
)
|
||||
|
||||
publish_date = models.DateField(
|
||||
verbose_name="Veröffentlichung", default=timezone.now
|
||||
)
|
||||
publish_date = models.DateField(verbose_name="Veröffentlichung", default=timezone.now)
|
||||
|
||||
all_job_postings = models.Manager()
|
||||
|
||||
|
||||
@@ -8,9 +8,7 @@ from .models import JobPosting
|
||||
|
||||
def index(request):
|
||||
job_postings_cutoff = timezone.now().date() - timedelta(30) # 30days from now
|
||||
job_postings = JobPosting.all_job_postings.filter(
|
||||
publish_date__gt=job_postings_cutoff
|
||||
)
|
||||
job_postings = JobPosting.all_job_postings.filter(publish_date__gt=job_postings_cutoff)
|
||||
|
||||
context = {
|
||||
"job_postings": job_postings.order_by("-publish_date"),
|
||||
|
||||
@@ -54,9 +54,7 @@ urlpatterns = [
|
||||
RedirectView.as_view(url="https://www.instagram.com/fet_tuwien/"),
|
||||
name="instagram",
|
||||
),
|
||||
path(
|
||||
"telegram/", RedirectView.as_view(url="https://t.me/FETInfo"), name="telegram"
|
||||
),
|
||||
path("telegram/", RedirectView.as_view(url="https://t.me/FETInfo"), name="telegram"),
|
||||
path(
|
||||
"sitemap.xml",
|
||||
sitemap,
|
||||
|
||||
@@ -252,9 +252,7 @@ class BillUpdateForm(forms.ModelForm):
|
||||
self.fields["saving"].required = False
|
||||
|
||||
# only digital bill field
|
||||
self.fields[
|
||||
"only_digital_new"
|
||||
].label = "Ich habe eine neue digitale Rechnung."
|
||||
self.fields["only_digital_new"].label = "Ich habe eine neue digitale Rechnung."
|
||||
self.fields["only_digital_new"].required = False
|
||||
|
||||
# Resolution fields
|
||||
@@ -443,11 +441,7 @@ class BillAdminForm(forms.ModelForm):
|
||||
self.fields["bill_creator"].widget.can_delete_related = False
|
||||
|
||||
# delete wiref id from list if there are already 8 bills in wiref form.
|
||||
qs = (
|
||||
self.fields["wiref"]
|
||||
.queryset.annotate(num_bills=Count("bill"))
|
||||
.filter(num_bills__lt=8)
|
||||
)
|
||||
qs = self.fields["wiref"].queryset.annotate(num_bills=Count("bill")).filter(num_bills__lt=8)
|
||||
|
||||
# delete wiref id from if status is not opened.
|
||||
qs = qs.filter(status=Wiref.Status.OPENED)
|
||||
|
||||
@@ -34,9 +34,7 @@ class BankData(models.Model):
|
||||
|
||||
|
||||
class Resolution(models.Model):
|
||||
id = models.CharField(
|
||||
primary_key=True, max_length=128, verbose_name="Beschlussnummer"
|
||||
)
|
||||
id = models.CharField(primary_key=True, max_length=128, verbose_name="Beschlussnummer")
|
||||
name = models.CharField(max_length=128, verbose_name="Bezeichnung")
|
||||
|
||||
is_visible = models.BooleanField(default=False, verbose_name="sichtbar")
|
||||
@@ -47,9 +45,7 @@ class Resolution(models.Model):
|
||||
FINANCE = "F", "Finanzbeschluss"
|
||||
FSREF = "R", "FsRef-Beschluss"
|
||||
|
||||
option = models.CharField(
|
||||
max_length=1, choices=Option.choices, verbose_name="Beschluss"
|
||||
)
|
||||
option = models.CharField(max_length=1, choices=Option.choices, verbose_name="Beschluss")
|
||||
|
||||
date = models.DateField(verbose_name="Datum")
|
||||
voting = models.CharField(max_length=15, verbose_name="Abstimmungsverhalten")
|
||||
@@ -142,9 +138,7 @@ class Bill(models.Model):
|
||||
|
||||
date = models.DateField()
|
||||
invoice = models.TextField()
|
||||
amount = models.DecimalField(
|
||||
max_digits=7, decimal_places=2, verbose_name="Betrag (EUR)"
|
||||
)
|
||||
amount = models.DecimalField(max_digits=7, decimal_places=2, verbose_name="Betrag (EUR)")
|
||||
purpose = models.CharField(max_length=140, verbose_name="Verwendungszweck")
|
||||
|
||||
class Affiliation(models.TextChoices):
|
||||
|
||||
@@ -22,9 +22,7 @@ urlpatterns = [
|
||||
BillCreateDoneView.as_view(),
|
||||
name="bill_create_done",
|
||||
),
|
||||
path(
|
||||
"create-resolution/", ResolutionCreateView.as_view(), name="resolution_create"
|
||||
),
|
||||
path("create-resolution/", ResolutionCreateView.as_view(), name="resolution_create"),
|
||||
path("resolutions/", ResolutionListView.as_view(), name="resolution_list"),
|
||||
path(
|
||||
"resolutions/<str:id>/",
|
||||
|
||||
@@ -46,9 +46,7 @@ class BillCreateView(LoginRequiredMixin, CreateView):
|
||||
|
||||
# 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)
|
||||
|
||||
|
||||
@@ -11,9 +11,7 @@ class Album(models.Model):
|
||||
slug = models.SlugField(unique=True, null=True, blank=True)
|
||||
|
||||
folder_name = models.CharField(verbose_name="Ordner Name", max_length=200)
|
||||
thumbnail = models.CharField(
|
||||
verbose_name="Thumbnail", max_length=200, null=True, blank=True
|
||||
)
|
||||
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
|
||||
|
||||
@@ -21,9 +21,7 @@ def get_image_list(folder_name):
|
||||
if ext.lower() not in valid_images:
|
||||
continue
|
||||
|
||||
thumb_path = os.path.join(
|
||||
settings.MEDIA_ROOT + gallery_thumb_path, folder_name
|
||||
)
|
||||
thumb_path = os.path.join(settings.MEDIA_ROOT + gallery_thumb_path, folder_name)
|
||||
thumb_file_path = os.path.join(thumb_path, f"thumb_{img}")
|
||||
if os.path.exists(thumb_file_path):
|
||||
thumb_url = os.path.join(
|
||||
|
||||
@@ -31,9 +31,7 @@ def index(request):
|
||||
)
|
||||
else:
|
||||
# show only PUBLIC albums.
|
||||
albums = deque(
|
||||
Album.objects.filter(status=Album.PUBLIC).order_by("-event_date")
|
||||
)
|
||||
albums = deque(Album.objects.filter(status=Album.PUBLIC).order_by("-event_date"))
|
||||
|
||||
for album in list(albums):
|
||||
img_list = album.get_images()
|
||||
|
||||
@@ -63,9 +63,7 @@ class Topic(models.Model):
|
||||
verbose_name_plural = "Themen"
|
||||
|
||||
constraints = [
|
||||
UniqueConstraint(
|
||||
fields=["slug", "topic_group"], name="unique_intern_slug_topic_group"
|
||||
),
|
||||
UniqueConstraint(fields=["slug", "topic_group"], name="unique_intern_slug_topic_group"),
|
||||
UniqueConstraint(
|
||||
fields=["title", "topic_group"], name="unique_intern_title_topic_group"
|
||||
),
|
||||
@@ -102,9 +100,7 @@ class Attachment(models.Model):
|
||||
|
||||
constraints = [
|
||||
UniqueConstraint(fields=["slug", "topic"], name="unique_intern_slug_topic"),
|
||||
UniqueConstraint(
|
||||
fields=["title", "topic"], name="unique_intern_title_topic"
|
||||
),
|
||||
UniqueConstraint(fields=["title", "topic"], name="unique_intern_title_topic"),
|
||||
]
|
||||
|
||||
def __str__(self):
|
||||
@@ -125,9 +121,7 @@ class Attachment(models.Model):
|
||||
class Etherpad(models.Model):
|
||||
title = models.CharField(max_length=128, verbose_name="Titel")
|
||||
|
||||
slug_id = models.CharField(
|
||||
default=create_random_id, editable=False, max_length=8, unique=True
|
||||
)
|
||||
slug_id = models.CharField(default=create_random_id, editable=False, max_length=8, unique=True)
|
||||
etherpad_key = models.CharField(blank=True, max_length=50)
|
||||
date = models.DateField(default=date.today, verbose_name="Datum")
|
||||
|
||||
@@ -142,9 +136,7 @@ class Etherpad(models.Model):
|
||||
verbose_name_plural = "Etherpads"
|
||||
|
||||
constraints = [
|
||||
UniqueConstraint(
|
||||
fields=["title", "date", "attachment"], name="unique_intern_etherpad"
|
||||
),
|
||||
UniqueConstraint(fields=["title", "date", "attachment"], name="unique_intern_etherpad"),
|
||||
]
|
||||
|
||||
def __str__(self):
|
||||
@@ -182,9 +174,7 @@ class Etherpad(models.Model):
|
||||
|
||||
class FileUpload(models.Model):
|
||||
title = models.CharField(blank=True, max_length=128, verbose_name="Titel")
|
||||
file_field = models.FileField(
|
||||
upload_to="uploads/intern/files/", verbose_name="Dokument"
|
||||
)
|
||||
file_field = models.FileField(upload_to="uploads/intern/files/", verbose_name="Dokument")
|
||||
date = models.DateField(default=date.today, verbose_name="Datum")
|
||||
|
||||
attachment = models.ForeignKey(
|
||||
|
||||
@@ -186,9 +186,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
|
||||
@@ -213,9 +211,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
|
||||
|
||||
@@ -24,11 +24,7 @@ class ActiveMemberForm(forms.ModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
member_qs = (
|
||||
self.fields["member"]
|
||||
.queryset.filter(role="A")
|
||||
.order_by("firstname", "surname")
|
||||
)
|
||||
member_qs = self.fields["member"].queryset.filter(role="A").order_by("firstname", "surname")
|
||||
self.fields["member"].queryset = member_qs
|
||||
|
||||
|
||||
|
||||
@@ -40,11 +40,7 @@ class InactiveJobMemberManager(models.Manager):
|
||||
|
||||
def get_queryset(self):
|
||||
date_today = timezone.now().date()
|
||||
qs = (
|
||||
super()
|
||||
.get_queryset()
|
||||
.order_by("member__firstname", "member__surname", "-job_start")
|
||||
)
|
||||
qs = super().get_queryset().order_by("member__firstname", "member__surname", "-job_start")
|
||||
|
||||
return qs.filter(
|
||||
Q(member__role="P")
|
||||
@@ -66,25 +62,15 @@ class JobMemberManager(models.Manager):
|
||||
|
||||
def get_active_jobs(self, member_id):
|
||||
date_today = timezone.now().date()
|
||||
qs = (
|
||||
self.get_queryset()
|
||||
.filter(member__id=member_id)
|
||||
.order_by("-job_start", "job__name")
|
||||
)
|
||||
qs = self.get_queryset().filter(member__id=member_id).order_by("-job_start", "job__name")
|
||||
|
||||
return qs.filter(Q(job_end__gt=date_today) | Q(job_end__isnull=True))
|
||||
|
||||
def get_inactive_jobs(self, member_id):
|
||||
date_today = timezone.now().date()
|
||||
qs = (
|
||||
self.get_queryset()
|
||||
.filter(member__id=member_id)
|
||||
.order_by("-job_start", "job__name")
|
||||
)
|
||||
qs = self.get_queryset().filter(member__id=member_id).order_by("-job_start", "job__name")
|
||||
|
||||
return qs.filter(
|
||||
Q(job_end__lt=date_today + timedelta(days=1)) & Q(job_end__isnull=False)
|
||||
)
|
||||
return qs.filter(Q(job_end__lt=date_today + timedelta(days=1)) & Q(job_end__isnull=False))
|
||||
|
||||
|
||||
class MemberManager(models.Manager):
|
||||
|
||||
@@ -194,11 +194,7 @@ class Job(models.Model):
|
||||
return self.name
|
||||
|
||||
def get_absolute_url(self):
|
||||
return (
|
||||
reverse("members:jobs", kwargs={"slug": self.job_group.slug})
|
||||
+ "#"
|
||||
+ self.slug
|
||||
)
|
||||
return reverse("members:jobs", kwargs={"slug": self.job_group.slug}) + "#" + self.slug
|
||||
|
||||
def clean(self):
|
||||
if not self.shortterm:
|
||||
@@ -229,9 +225,7 @@ class JobMember(models.Model):
|
||||
MEMBER = ("50", "Mitglied")
|
||||
SUBSTITUTE_MEMBER = ("60", "Ersatzmitglied")
|
||||
|
||||
job_role = models.CharField(
|
||||
max_length=2, choices=JobRole.choices, default=JobRole.MEMBER
|
||||
)
|
||||
job_role = models.CharField(max_length=2, choices=JobRole.choices, default=JobRole.MEMBER)
|
||||
|
||||
objects = models.Manager()
|
||||
members = JobMemberManager()
|
||||
|
||||
@@ -27,9 +27,7 @@ class JobGroupSerializer(serializers.HyperlinkedModelSerializer):
|
||||
|
||||
class JobSerializer(serializers.HyperlinkedModelSerializer):
|
||||
# job_group = JobGroupSerializer()
|
||||
job_group = serializers.SlugRelatedField(
|
||||
slug_field="slug", queryset=JobGroup.objects
|
||||
)
|
||||
job_group = serializers.SlugRelatedField(slug_field="slug", queryset=JobGroup.objects)
|
||||
|
||||
class Meta:
|
||||
model = Job
|
||||
@@ -40,9 +38,7 @@ class JobMemberSerializer(serializers.HyperlinkedModelSerializer):
|
||||
# member = MemberSerializer()
|
||||
# job = JobSerializer()
|
||||
job = serializers.SlugRelatedField(slug_field="slug", queryset=Job.objects)
|
||||
member = serializers.SlugRelatedField(
|
||||
slug_field="mailaccount", queryset=Member.objects
|
||||
)
|
||||
member = serializers.SlugRelatedField(slug_field="mailaccount", queryset=Member.objects)
|
||||
|
||||
class Meta:
|
||||
model = JobMember
|
||||
|
||||
@@ -88,9 +88,7 @@ class MemberFormTestCase(TestCase):
|
||||
)
|
||||
|
||||
self.assertFalse(form.is_valid())
|
||||
self.assertEqual(
|
||||
form.errors.as_data()["__all__"][0].message, "Es fehlt das Profilbild."
|
||||
)
|
||||
self.assertEqual(form.errors.as_data()["__all__"][0].message, "Es fehlt das Profilbild.")
|
||||
|
||||
def test_form_wrong_mailaccount(self):
|
||||
image = SimpleUploadedFile(
|
||||
|
||||
@@ -40,9 +40,7 @@ class NewsForm(PostForm):
|
||||
"Die Hashtags ohne '#' eintragen, und mit Komma kann man mehrere Tags anfügen."
|
||||
),
|
||||
"image": "Verwendbare Formate: ...",
|
||||
"is_pinned": (
|
||||
"Dieser Post soll an die Startseite als erster Post angeheftet werden."
|
||||
),
|
||||
"is_pinned": ("Dieser Post soll an die Startseite als erster Post angeheftet werden."),
|
||||
}
|
||||
|
||||
labels = {
|
||||
@@ -74,9 +72,7 @@ class EventForm(PostForm):
|
||||
"Die Hashtags ohne '#' eintragen, und mit Komma kann man mehrere Tags anfügen."
|
||||
),
|
||||
"image": "Verwendbare Formate: Bildformate",
|
||||
"is_pinned": (
|
||||
"Dieses Event soll an die Startseite als erster Post angeheftet werden."
|
||||
),
|
||||
"is_pinned": ("Dieses Event soll an die Startseite als erster Post angeheftet werden."),
|
||||
}
|
||||
|
||||
labels = {
|
||||
|
||||
@@ -109,9 +109,7 @@ class Post(models.Model):
|
||||
is_pinned = models.BooleanField(verbose_name="ANGEHEFTET", default=False)
|
||||
|
||||
# addional infos for events
|
||||
event_start = models.DateTimeField(
|
||||
verbose_name="Event Start", null=True, blank=True
|
||||
)
|
||||
event_start = models.DateTimeField(verbose_name="Event Start", null=True, blank=True)
|
||||
event_end = models.DateTimeField(verbose_name="Event Ende", null=True, blank=True)
|
||||
event_place = models.CharField(max_length=200, null=True, blank=True)
|
||||
|
||||
@@ -178,9 +176,7 @@ class Post(models.Model):
|
||||
|
||||
ep_set_html(self.agenda_key, value)
|
||||
|
||||
request_logger.info(
|
||||
"set etherpad for post %s id: %s", self.slug, self.agenda_key
|
||||
)
|
||||
request_logger.info("set etherpad for post %s id: %s", self.slug, self.agenda_key)
|
||||
return value
|
||||
|
||||
@protocol_html.setter
|
||||
@@ -192,9 +188,7 @@ class Post(models.Model):
|
||||
|
||||
ep_set_html(self.protocol_key, value)
|
||||
|
||||
request_logger.info(
|
||||
"set etherpad for post %s id: %s", self.slug, self.protocol_key
|
||||
)
|
||||
request_logger.info("set etherpad for post %s id: %s", self.slug, self.protocol_key)
|
||||
return value
|
||||
|
||||
_agenda_filename = None
|
||||
@@ -305,9 +299,7 @@ class Post(models.Model):
|
||||
if self.event_end and self.event_end < self.event_start:
|
||||
raise ValidationError(_("Das Ende des Events liegt vor dem Beginn."))
|
||||
if self.event_start and self.post_type not in ["E", "F"]:
|
||||
raise ValidationError(
|
||||
_("Für diesen Post Typ ist kein Event Start zulässig")
|
||||
)
|
||||
raise ValidationError(_("Für diesen Post Typ ist kein Event Start zulässig"))
|
||||
|
||||
@property
|
||||
def published(self):
|
||||
@@ -408,9 +400,7 @@ class FetMeeting(Event):
|
||||
|
||||
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.")
|
||||
)
|
||||
raise ValidationError(_("Es existiert bereits eine Sitzung mit demselben Datum."))
|
||||
|
||||
return slug
|
||||
|
||||
@@ -422,9 +412,7 @@ class FetMeeting(Event):
|
||||
|
||||
class FileUpload(models.Model):
|
||||
title = models.CharField(verbose_name="Titel", max_length=200)
|
||||
file_field = models.FileField(
|
||||
verbose_name="Dokument", upload_to="uploads/posts/files/"
|
||||
)
|
||||
file_field = models.FileField(verbose_name="Dokument", upload_to="uploads/posts/files/")
|
||||
post = models.ForeignKey(Post, on_delete=models.CASCADE)
|
||||
|
||||
objects = models.Manager()
|
||||
|
||||
@@ -28,7 +28,7 @@ class PostSerializer(serializers.HyperlinkedModelSerializer):
|
||||
"has_agenda",
|
||||
"has_protocol",
|
||||
"tag_string",
|
||||
"imageurl"
|
||||
"imageurl",
|
||||
# 'author',
|
||||
]
|
||||
|
||||
|
||||
@@ -81,9 +81,7 @@ def calendar(request):
|
||||
"events": events,
|
||||
}
|
||||
|
||||
return render(
|
||||
request, "posts/fet_calendar.ics", context, content_type="text/calendar"
|
||||
)
|
||||
return render(request, "posts/fet_calendar.ics", context, content_type="text/calendar")
|
||||
|
||||
|
||||
def tags(request, tag=""):
|
||||
@@ -303,9 +301,7 @@ def show_pdf_protocol(request, id):
|
||||
|
||||
|
||||
def show_pdf(request, html, filename):
|
||||
rendered = render_to_string(
|
||||
settings.BASE_DIR + "/templates/posts/pdf/template.html"
|
||||
)
|
||||
rendered = render_to_string(settings.BASE_DIR + "/templates/posts/pdf/template.html")
|
||||
|
||||
# get body-content from pdf template
|
||||
rendered = rendered.split("<html>")[1]
|
||||
|
||||
@@ -50,9 +50,9 @@ class SearchObject:
|
||||
self.url = res.get("_source", {}).get("url", "")
|
||||
self.text = res.get("_source", {}).get("text", "")
|
||||
self.raw = res.get("_source", {}).get("raw", "")
|
||||
self.highlight = res.get("highlight", {}).get("title", [""]) + res.get(
|
||||
"highlight", {}
|
||||
).get("text", [""])
|
||||
self.highlight = res.get("highlight", {}).get("title", [""]) + res.get("highlight", {}).get(
|
||||
"text", [""]
|
||||
)
|
||||
|
||||
|
||||
def es_sorting():
|
||||
|
||||
Reference in New Issue
Block a user