Skip to content

Commit b000d3c

Browse files
committed
fixed bug. also slightly optimized other signal
1 parent d204d6d commit b000d3c

3 files changed

Lines changed: 13 additions & 17 deletions

File tree

feed/signals.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,24 @@
33
from django.dispatch import receiver
44

55
from news.models import News
6-
6+
from projects.models import Project
77

88
from vacancy.models import Vacancy
99

1010

1111
@receiver(post_save, sender=Vacancy)
1212
def create_news_on_save(sender, instance, created, **kwargs):
1313
if created:
14-
content_type = ContentType.objects.filter(model="vacancy").first()
14+
content_type = ContentType.objects.get_for_model(Vacancy)
15+
news_instance, created = News.objects.get_or_create(
16+
content_type=content_type, object_id=instance.id
17+
)
18+
19+
20+
@receiver(post_save, sender=Project)
21+
def create_news_on_created_project(sender, instance, created, **kwargs):
22+
if not instance.draft:
23+
content_type = ContentType.objects.get_for_model(Project)
1524
news_instance, created = News.objects.get_or_create(
1625
content_type=content_type, object_id=instance.id
1726
)

projects/models.py

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22

33
from django.contrib.auth import get_user_model
44
from django.contrib.contenttypes.fields import GenericRelation
5-
from django.contrib.contenttypes.models import ContentType
65
from django.db import models
76
from django.db.models import UniqueConstraint
87

98
from core.models import Like, View
109
from files.models import UserFile
1110
from industries.models import Industry
12-
from news.models import News
11+
1312
from projects.constants import VERBOSE_STEPS
1413
from projects.managers import AchievementManager, CollaboratorManager, ProjectManager
1514
from users.models import CustomUser
@@ -135,16 +134,6 @@ def get_collaborators_user_list(self) -> list[User]:
135134
def __str__(self):
136135
return f"Project<{self.id}> - {self.name}"
137136

138-
def save(
139-
self, force_insert=False, force_update=False, using=None, update_fields=None
140-
):
141-
if not self.draft:
142-
content_type = ContentType.objects.filter(model="project").first()
143-
news_instance, created = News.objects.get_or_create(
144-
content_type=content_type, object_id=self.id
145-
)
146-
super().save(force_insert, force_update, using, update_fields)
147-
148137
class Meta:
149138
ordering = ["-hidden_score", "-datetime_created"]
150139
verbose_name = "Проект"

projects/signals.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ def create_project(sender, instance, created, **kwargs):
1212
"""
1313

1414
if not instance.draft:
15-
# if not a draft, check if project chat exists and if not create it
16-
if not ProjectChat.objects.filter(project=instance).exists():
17-
ProjectChat.objects.create(project=instance)
15+
chat_instance, chat_created = ProjectChat.objects.get_or_create(project=instance)
1816

1917
if created:
2018
Collaborator.objects.create(

0 commit comments

Comments
 (0)