Skip to content

Commit

Permalink
Change author from one to many
Browse files Browse the repository at this point in the history
  • Loading branch information
jonasdeluna committed Mar 7, 2023
1 parent 0184090 commit fc8c48c
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 6 deletions.
20 changes: 20 additions & 0 deletions lego/apps/articles/migrations/0011_article_author.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 4.0.9 on 2023-02-10 17:20

from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
("articles", "0010_alter_article_can_edit_groups_and_more"),
]

operations = [
migrations.AddField(
model_name="article",
name="author",
field=models.ManyToManyField(to=settings.AUTH_USER_MODEL),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 4.0.9 on 2023-02-28 16:34

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
("articles", "0011_article_author"),
]

operations = [
migrations.RenameField(
model_name="article",
old_name="author",
new_name="authors",
),
]
4 changes: 3 additions & 1 deletion lego/apps/articles/models.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
from django.conf import settings
from django.db.models import CharField
from django.db.models import CharField, ManyToManyField

from lego.apps.content.models import Content
from lego.apps.files.models import FileField
from lego.apps.permissions.models import ObjectPermissionsModel
from lego.apps.users.models import User
from lego.utils.models import BasisModel
from lego.utils.youtube_validator import youtube_validator

Expand All @@ -13,6 +14,7 @@ class Article(Content, BasisModel, ObjectPermissionsModel):
youtube_url = CharField(
max_length=200, default="", validators=[youtube_validator], blank=True
)
authors = ManyToManyField(User)

def save(self, *args, **kwargs):
if self.pinned:
Expand Down
12 changes: 8 additions & 4 deletions lego/apps/articles/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
from lego.apps.content.fields import ContentSerializerField
from lego.apps.files.fields import ImageField
from lego.apps.tags.serializers import TagSerializerMixin
from lego.apps.users.fields import PublicUserField
from lego.apps.users.models import User
from lego.apps.users.serializers.users import PublicUserSerializer
from lego.utils.serializers import (
BasisModelSerializer,
Expand All @@ -14,7 +16,6 @@


class DetailedArticleSerializer(TagSerializerMixin, BasisModelSerializer):
author = PublicUserSerializer(read_only=True, source="created_by")
comments = CommentSerializer(read_only=True, many=True)
cover = ImageField(required=False, options={"height": 500})
cover_placeholder = ImageField(
Expand All @@ -23,6 +24,9 @@ class DetailedArticleSerializer(TagSerializerMixin, BasisModelSerializer):
content_target = CharField(read_only=True)
content = ContentSerializerField(source="text")
reactions_grouped = serializers.SerializerMethodField()
authors = PublicUserField(
queryset=User.objects.all(), allow_null=True, required=False, many=True
)

def get_reactions_grouped(self, obj):
user = self.context["request"].user
Expand All @@ -35,7 +39,7 @@ class Meta:
"title",
"cover",
"cover_placeholder",
"author",
"authors",
"description",
"comments",
"content_target",
Expand Down Expand Up @@ -82,7 +86,7 @@ class PublicArticleSerializer(TagSerializerMixin, BasisModelSerializer):
cover_placeholder = ImageField(
source="cover", required=False, options={"height": 30, "filters": ["blur(20)"]}
)
author = PublicUserSerializer(read_only=True, source="created_by")
authors = PublicUserSerializer(many=True)

class Meta:
model = Article
Expand All @@ -91,7 +95,7 @@ class Meta:
"title",
"cover",
"cover_placeholder",
"author",
"authors",
"description",
"tags",
"created_at",
Expand Down
2 changes: 1 addition & 1 deletion lego/apps/events/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
RegistrationsExistInPool,
)
from lego.apps.events.filters import EventsFilterSet
from lego.apps.files.models import File
from lego.apps.events.models import Event, Pool, Registration
from lego.apps.events.permissions import EventTypePermission
from lego.apps.events.serializers.events import (
Expand Down Expand Up @@ -60,6 +59,7 @@
save_and_notify_payment,
)
from lego.apps.events.websockets import notify_event_registration
from lego.apps.files.models import File
from lego.apps.permissions.api.filters import LegoPermissionFilter
from lego.apps.permissions.api.views import AllowedPermissionsMixin
from lego.apps.permissions.constants import EDIT, VIEW
Expand Down

0 comments on commit fc8c48c

Please sign in to comment.