Skip to content

Commit 714a5ec

Browse files
authored
Merge pull request #57 from PROCOLLAB-github/dev
Removed short description field
2 parents 5c9a0f6 + bc780d4 commit 714a5ec

7 files changed

Lines changed: 47 additions & 14 deletions

File tree

procollab/settings.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@
9090
CORS_ALLOWED_ORIGINS = [
9191
"http://localhost:4200",
9292
"http://127.0.0.1:4200",
93+
"https://api.procollab.ru",
94+
"https://procollab-pr-*.onrender.com.",
95+
"http://localhost:8000",
9396
]
9497

9598
INTERNAL_IPS = [
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Generated by Django 4.1.3 on 2022-11-19 16:20
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("projects", "0008_alter_project_description_and_more"),
10+
]
11+
12+
operations = [
13+
migrations.RemoveField(
14+
model_name="project",
15+
name="short_description",
16+
),
17+
]

projects/models.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from typing import Optional
2+
13
from django.contrib.auth import get_user_model
24
from django.db import models
35
from django.db.models import UniqueConstraint
@@ -32,7 +34,7 @@ class Project(models.Model):
3234

3335
name = models.CharField(max_length=256, null=True, blank=True)
3436
description = models.TextField(null=True, blank=True)
35-
short_description = models.TextField(null=True, blank=True)
37+
# short_description = models.TextField(null=True, blank=True)
3638
region = models.CharField(max_length=256, null=True, blank=True)
3739
step = models.PositiveSmallIntegerField(choices=VERBOSE_STEPS, null=True, blank=True)
3840

@@ -63,6 +65,9 @@ class Project(models.Model):
6365

6466
objects = ProjectManager()
6567

68+
def get_short_description(self) -> Optional[str]:
69+
return self.description[:30] if self.description else None
70+
6671
def __str__(self):
6772
return f"Project<{self.id}> - {self.name}"
6873

projects/serializers.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,6 @@ class CollaboratorSerializer(serializers.ModelSerializer):
3535
last_name = serializers.CharField(source="user.last_name")
3636
avatar = serializers.CharField(source="user.avatar")
3737
key_skills = serializers.CharField(source="user.key_skills")
38-
# member_key_skills = serializers.SerializerMethodField()
39-
40-
# @classmethod
41-
# def get_member_key_skills(cls, collaborator):
42-
# return collaborator.user.get_member_key_skills()
4338

4439
class Meta:
4540
model = Collaborator
@@ -68,11 +63,16 @@ class ProjectDetailSerializer(serializers.ModelSerializer):
6863
source="collaborator_set", many=True, read_only=True
6964
)
7065
vacancies = ProjectVacancyListSerializer(many=True, read_only=True)
66+
short_description = serializers.SerializerMethodField()
7167

7268
def validate(self, data):
7369
super().validate(data)
7470
return validate_project(data)
7571

72+
@classmethod
73+
def get_short_description(cls, project):
74+
return project.get_short_description()
75+
7676
class Meta:
7777
model = Project
7878
fields = [
@@ -103,6 +103,12 @@ class ProjectListSerializer(serializers.ModelSerializer):
103103
)
104104
vacancies = ProjectVacancyListSerializer(many=True, read_only=True)
105105

106+
short_description = serializers.SerializerMethodField()
107+
108+
@classmethod
109+
def get_short_description(cls, project):
110+
return project.get_short_description()
111+
106112
@classmethod
107113
def get_collaborator_count(cls, obj):
108114
return len(obj.collaborator_set.all())

projects/views.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
ProjectListSerializer,
1515
AchievementDetailSerializer,
1616
ProjectCollaboratorSerializer,
17+
ProjectAchievementListSerializer,
1718
)
1819

1920

@@ -78,20 +79,22 @@ def put(self, request, pk):
7879
for i in achievements:
7980
achievement_id = i.get("id")
8081
if achievement_id is None:
81-
Achievement.objects.create(
82-
title=i["title"],
83-
status=i["status"],
84-
project_id=pk,
85-
)
82+
# creating
83+
i["project"] = pk
84+
serializer = ProjectAchievementListSerializer(data=i)
85+
serializer.is_valid(raise_exception=True)
86+
serializer.save()
8687
else:
88+
# changing
8789
instance = Achievement.objects.get(id=achievement_id)
8890
i["project"] = pk
8991
serializer = AchievementDetailSerializer(
9092
instance, data=i, partial=False
9193
)
9294
serializer.is_valid(raise_exception=True)
9395
serializer.save()
94-
return Response(status=status.HTTP_200_OK)
96+
97+
return super(ProjectDetail, self).put(request, pk)
9598

9699

97100
class ProjectCountView(generics.GenericAPIView):

users/serializers.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ def update(self, instance, validated_data):
114114
for attr, value in validated_data.items():
115115
if attr in IMMUTABLE_FIELDS + USER_TYPE_FIELDS + RELATED_FIELDS:
116116
continue
117-
print(attr, value)
118117
setattr(instance, attr, value)
119118

120119
instance.save()

users/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646

4747
class UserList(ListCreateAPIView):
4848
queryset = User.objects.all()
49-
permission_classes = [AllowAny]
49+
permission_classes = [AllowAny] # FIXME: change to IsAuthorized
5050
serializer_class = UserListSerializer
5151
filter_backends = (filters.DjangoFilterBackend,)
5252
filterset_class = UserFilter

0 commit comments

Comments
 (0)