no functional changes
Formatting updated to pep8
This commit is contained in:
@@ -29,12 +29,8 @@ class ActiveMemberManager(models.Manager):
|
|||||||
date_today = timezone.now().date()
|
date_today = timezone.now().date()
|
||||||
|
|
||||||
return super().get_queryset().filter(
|
return super().get_queryset().filter(
|
||||||
Q(member__role='A') &
|
Q(member__role='A')
|
||||||
(
|
& (Q(job_end__gt=date_today) | Q(job_end__isnull=True)))
|
||||||
Q(job_end__gt=date_today) |
|
|
||||||
Q(job_end__isnull=True)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class InactiveMemberManager(models.Manager):
|
class InactiveMemberManager(models.Manager):
|
||||||
@@ -45,12 +41,8 @@ class InactiveMemberManager(models.Manager):
|
|||||||
date_today = timezone.now().date()
|
date_today = timezone.now().date()
|
||||||
|
|
||||||
return super().get_queryset().filter(
|
return super().get_queryset().filter(
|
||||||
Q(member__role='P') |
|
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)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class Member(models.Model):
|
class Member(models.Model):
|
||||||
@@ -61,7 +53,7 @@ class Member(models.Model):
|
|||||||
|
|
||||||
__choices = [
|
__choices = [
|
||||||
('A', _('Active')),
|
('A', _('Active')),
|
||||||
('P', _('Pension'))
|
('P', _('Pension')),
|
||||||
]
|
]
|
||||||
role = models.CharField(max_length=1, choices=__choices, default='A')
|
role = models.CharField(max_length=1, choices=__choices, default='A')
|
||||||
|
|
||||||
@@ -76,12 +68,12 @@ class Member(models.Model):
|
|||||||
))
|
))
|
||||||
phone_regex = RegexValidator(
|
phone_regex = RegexValidator(
|
||||||
regex=r'^\+?1?\d{9,15}$',
|
regex=r'^\+?1?\d{9,15}$',
|
||||||
message=phone_error_msg
|
message=phone_error_msg,
|
||||||
)
|
)
|
||||||
phone = models.CharField(
|
phone = models.CharField(
|
||||||
validators=[phone_regex],
|
validators=[phone_regex],
|
||||||
max_length=17,
|
max_length=17,
|
||||||
blank=True
|
blank=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
address = models.TextField(null=True, blank=True)
|
address = models.TextField(null=True, blank=True)
|
||||||
@@ -112,7 +104,7 @@ class MemberSerializer(serializers.HyperlinkedModelSerializer):
|
|||||||
'mailaccount',
|
'mailaccount',
|
||||||
'role',
|
'role',
|
||||||
'description',
|
'description',
|
||||||
'image'
|
'image',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import django.contrib.auth.admin
|
# import django.contrib.auth.admin
|
||||||
import django.contrib.auth.models
|
# import django.contrib.auth.models
|
||||||
import taggit.admin
|
import taggit.admin
|
||||||
|
|
||||||
from django.contrib import admin, auth
|
from django.contrib import admin, auth
|
||||||
@@ -33,21 +33,27 @@ class MyPostAdmin(admin.ModelAdmin):
|
|||||||
"jquery-ui/jquery-ui.min.js",
|
"jquery-ui/jquery-ui.min.js",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class MyEventAdmin(MyPostAdmin):
|
class MyEventAdmin(MyPostAdmin):
|
||||||
form = MyEventForm
|
form = MyEventForm
|
||||||
model = Event
|
model = Event
|
||||||
list_display = ['title', 'subtitle', 'slug', 'event_start', 'public_date']
|
list_display = ['title', 'subtitle', 'slug', 'event_start', 'public_date']
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(Event, MyEventAdmin)
|
admin.site.register(Event, MyEventAdmin)
|
||||||
|
|
||||||
|
|
||||||
class MyNewsAdmin(MyPostAdmin):
|
class MyNewsAdmin(MyPostAdmin):
|
||||||
form = MyNewsForm
|
form = MyNewsForm
|
||||||
model = News
|
model = News
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(News, MyNewsAdmin)
|
admin.site.register(News, MyNewsAdmin)
|
||||||
|
|
||||||
|
|
||||||
class MyFetMeetingAdmin(MyEventAdmin):
|
class MyFetMeetingAdmin(MyEventAdmin):
|
||||||
form = MyFetMeetingForm
|
form = MyFetMeetingForm
|
||||||
model = FetMeeting
|
model = FetMeeting
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(FetMeeting, MyFetMeetingAdmin)
|
admin.site.register(FetMeeting, MyFetMeetingAdmin)
|
||||||
@@ -17,6 +17,7 @@ class MyPostForm(forms.ModelForm):
|
|||||||
'js/tag_completion.js', # to get a list for tag autocompletion via ajax
|
'js/tag_completion.js', # to get a list for tag autocompletion via ajax
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class MyNewsForm(MyPostForm):
|
class MyNewsForm(MyPostForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = News
|
model = News
|
||||||
@@ -27,6 +28,7 @@ class MyNewsForm(MyPostForm):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||||
|
|
||||||
|
|
||||||
class MyEventForm(MyPostForm):
|
class MyEventForm(MyPostForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Event
|
model = Event
|
||||||
@@ -44,6 +46,7 @@ class MyEventForm(MyPostForm):
|
|||||||
if 'event_place' in self.fields:
|
if 'event_place' in self.fields:
|
||||||
self.fields['event_place'].required = True
|
self.fields['event_place'].required = True
|
||||||
|
|
||||||
|
|
||||||
class MyFetMeetingForm(MyEventForm):
|
class MyFetMeetingForm(MyEventForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = FetMeeting
|
model = FetMeeting
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from django.utils.translation import gettext_lazy as _
|
|||||||
from taggit.managers import TaggableManager
|
from taggit.managers import TaggableManager
|
||||||
|
|
||||||
# from ckeditor_uploader import RichTextUploadingField
|
# from ckeditor_uploader import RichTextUploadingField
|
||||||
import uuid
|
# import uuid
|
||||||
import re
|
import re
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
@@ -27,6 +27,7 @@ class PostManager(models.Manager):
|
|||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return super().get_queryset()
|
return super().get_queryset()
|
||||||
|
|
||||||
|
|
||||||
class ArticleManager(models.Manager):
|
class ArticleManager(models.Manager):
|
||||||
"""
|
"""
|
||||||
Provide a query set only for "Article"
|
Provide a query set only for "Article"
|
||||||
@@ -35,10 +36,12 @@ class ArticleManager(models.Manager):
|
|||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return super().get_queryset().filter(Q(post_type='E') | Q(post_type='N'))
|
return super().get_queryset().filter(Q(post_type='E') | Q(post_type='N'))
|
||||||
|
|
||||||
|
|
||||||
class NewsManager(models.Manager):
|
class NewsManager(models.Manager):
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return super().get_queryset().filter(~Q(is_event=True))
|
return super().get_queryset().filter(~Q(is_event=True))
|
||||||
|
|
||||||
|
|
||||||
class EventManager(models.Manager):
|
class EventManager(models.Manager):
|
||||||
"""
|
"""
|
||||||
Provide a query set only for "Events"
|
Provide a query set only for "Events"
|
||||||
@@ -47,6 +50,7 @@ class EventManager(models.Manager):
|
|||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return super().get_queryset().filter(Q(is_event=True) & Q(post_type='E'))
|
return super().get_queryset().filter(Q(is_event=True) & Q(post_type='E'))
|
||||||
|
|
||||||
|
|
||||||
class FetMeetingManager(models.Manager):
|
class FetMeetingManager(models.Manager):
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return super().get_queryset().filter(Q(post_type='F'))
|
return super().get_queryset().filter(Q(post_type='F'))
|
||||||
@@ -72,6 +76,7 @@ class Category(models.Model):
|
|||||||
verbose_name = "Category"
|
verbose_name = "Category"
|
||||||
verbose_name_plural = "Categories"
|
verbose_name_plural = "Categories"
|
||||||
|
|
||||||
|
|
||||||
class Post(models.Model):
|
class Post(models.Model):
|
||||||
# id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
# id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
||||||
legacy_id = models.IntegerField(null=True)
|
legacy_id = models.IntegerField(null=True)
|
||||||
@@ -145,7 +150,8 @@ class Post(models.Model):
|
|||||||
"find an image via another post"
|
"find an image via another post"
|
||||||
# TODO: Explain why this image is selected on save of the image
|
# TODO: Explain why this image is selected on save of the image
|
||||||
# Query all posts that have a slug that equals one of the tags
|
# Query all posts that have a slug that equals one of the tags
|
||||||
posts1 = Post.objects.filter(slug__in=self.tags.names()).filter(image__isnull=False)[0:1].all()
|
posts1 = Post.objects.filter(
|
||||||
|
slug__in=self.tags.names()).filter(image__isnull=False)[0:1].all()
|
||||||
if len(posts1) > 0:
|
if len(posts1) > 0:
|
||||||
return posts1.get().image
|
return posts1.get().image
|
||||||
|
|
||||||
@@ -172,6 +178,7 @@ class Post(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "Post (%s, %s): %s " % (self.slug, self.public_date.strftime("%d.%m.%Y"), self.title)
|
return "Post (%s, %s): %s " % (self.slug, self.public_date.strftime("%d.%m.%Y"), self.title)
|
||||||
|
|
||||||
|
|
||||||
class PostSerializer(serializers.HyperlinkedModelSerializer):
|
class PostSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Post
|
model = Post
|
||||||
@@ -186,9 +193,10 @@ class PostSerializer(serializers.HyperlinkedModelSerializer):
|
|||||||
'image',
|
'image',
|
||||||
'event_start',
|
'event_start',
|
||||||
'event_end',
|
'event_end',
|
||||||
'is_fetsitzung'
|
'is_fetsitzung',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class News(Post):
|
class News(Post):
|
||||||
objects = NewsManager()
|
objects = NewsManager()
|
||||||
|
|
||||||
@@ -204,6 +212,7 @@ class News(Post):
|
|||||||
|
|
||||||
super().save(*args, **kwargs)
|
super().save(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class Event(Post):
|
class Event(Post):
|
||||||
objects = EventManager()
|
objects = EventManager()
|
||||||
|
|
||||||
@@ -218,6 +227,7 @@ class Event(Post):
|
|||||||
|
|
||||||
super().save(*args, **kwargs)
|
super().save(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class FetMeeting(Event):
|
class FetMeeting(Event):
|
||||||
objects = FetMeetingManager()
|
objects = FetMeetingManager()
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,8 @@ from django.utils.safestring import mark_safe
|
|||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@register.filter(is_safe=True)
|
@register.filter(is_safe=True)
|
||||||
@stringfilter
|
@stringfilter
|
||||||
def tags_to_url(value):
|
def tags_to_url(value):
|
||||||
# return "Tag to url: %s" % value
|
# return "Tag to url: %s" % value
|
||||||
return mark_safe(re.sub(r'\#([\d\w-]+)', '<a href="/posts/t/\g<1>">#\g<1></a>', value))
|
return mark_safe(re.sub(r'\#([\d\w-]+)', r'<a href="/posts/t/\g<1>">#\g<1></a>', value))
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
from django.test import TestCase
|
# from django.test import TestCase
|
||||||
|
|
||||||
# Create your tests here.
|
# Create your tests here.
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.http import HttpResponse, JsonResponse
|
from django.http import HttpResponse, JsonResponse, HttpResponseServerError
|
||||||
from django_filters.rest_framework import DjangoFilterBackend
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
from django.core.cache import cache
|
# from django.core.cache import cache
|
||||||
from django.utils.text import slugify
|
from django.utils.text import slugify
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from taggit.models import Tag
|
from taggit.models import Tag
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from rest_framework import permissions
|
# from rest_framework import permissions
|
||||||
|
|
||||||
from .models import Post, PostSerializer
|
from .models import Post, PostSerializer
|
||||||
|
|
||||||
@@ -20,7 +20,9 @@ from collections import deque
|
|||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
posts = deque(Post.objects.order_by('-public_date').all())
|
posts = deque(Post.objects.order_by('-public_date').all())
|
||||||
f = lambda p: p.tags
|
|
||||||
|
def f(p):
|
||||||
|
return p.tags
|
||||||
t = map(f, posts)
|
t = map(f, posts)
|
||||||
|
|
||||||
return render(request, 'posts/index.html', {"posts": posts, "tags_list": t})
|
return render(request, 'posts/index.html', {"posts": posts, "tags_list": t})
|
||||||
@@ -34,7 +36,7 @@ def tags(request,tag=""):
|
|||||||
def show(request, id=None):
|
def show(request, id=None):
|
||||||
if id.isdigit() or id is int:
|
if id.isdigit() or id is int:
|
||||||
p = Post.objects.get(id=int(id))
|
p = Post.objects.get(id=int(id))
|
||||||
elif id != "" and not id is None:
|
elif id != "" and id is not None:
|
||||||
p = Post.objects.get(slug=(id))
|
p = Post.objects.get(slug=(id))
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
|
|||||||
Reference in New Issue
Block a user