22from django .dispatch import receiver
33
44from chats .models import ProjectChat
5+ from feed .services import delete_news_for_model , create_news_for_model
56from projects .models import Collaborator , Project
7+ from vacancy .models import Vacancy
68
79
810@receiver (post_save , sender = Project )
@@ -18,3 +20,21 @@ def create_project(sender, instance, created, **kwargs):
1820 Collaborator .objects .create (
1921 user = instance .leader , project = instance , role = "Основатель"
2022 )
23+
24+
25+ @receiver (post_save , sender = Project )
26+ def update_vacancy (sender , instance , created , ** kwargs ):
27+ vacancies = Vacancy .objects .filter (project = instance )
28+ old_values = vacancies .values_list ("is_active" , flat = True )
29+ vacancies .update (is_active = False if instance .draft else True )
30+ new_values = vacancies .values_list ("is_active" , flat = True )
31+
32+ vacancies_list = list (vacancies )
33+
34+ for i in range (len (new_values )):
35+ old = old_values [i ]
36+ new = new_values [i ]
37+ if old != new and new is False :
38+ delete_news_for_model (vacancies_list [i ])
39+ elif old != new and new is True :
40+ create_news_for_model (vacancies_list [i ])
0 commit comments