Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

from django.db.models.signals import post_save 

 

from backend_app.models.country import Country 

from backend_app.models.course import Course 

from backend_app.models.courseFeedback import CourseFeedback 

from backend_app.models.exchange import Exchange 

from backend_app.models.exchangeFeedback import ExchangeFeedback 

from backend_app.models.sharedUnivFeedback import SharedUnivFeedback 

from backend_app.models.taggedItems import ( 

UNIVERSITY_TAG_CHOICES, 

UniversityTaggedItem, 

CountryTaggedItem, 

COUNTRY_TAG_CHOICES, 

) 

from backend_app.models.university import University 

from backend_app.models.universityInfo import UniversityInfo 

from backend_app.models.universitySemestersDates import UniversitySemestersDates 

from backend_app.models.userData import UserData 

from backend_app.utils import get_module_defaults_for_bot, revision_bot 

from base_app.models import User 

 

 

def create_univ_modules(sender, instance: University, created, **kwargs): 

if created: 

defaults = get_module_defaults_for_bot() 

with revision_bot(): 

UniversityInfo.objects.get_or_create(university=instance, defaults=defaults) 

with revision_bot(): 

UniversitySemestersDates.objects.get_or_create( 

university=instance, defaults=defaults 

) 

with revision_bot(): 

SharedUnivFeedback.objects.get_or_create( 

university=instance, defaults=defaults 

) 

 

 

def create_user_modules(sender, instance, created, **kwargs): 

if created: 

UserData.objects.create(owner=instance) 

 

 

def create_exchange_feedback_module(sender, instance: Exchange, created, **kwargs): 

if created: 

with revision_bot(): 

ExchangeFeedback.objects.create(exchange=instance) 

 

 

def create_course_feedback_module(sender, instance, created, **kwargs): 

if created: 

with revision_bot(): 

CourseFeedback.objects.create(course=instance) 

 

 

def create_tagged_items_university(sender, instance, created, **kwargs): 

if created: 

defaults = get_module_defaults_for_bot() 

for tag in UNIVERSITY_TAG_CHOICES: 

with revision_bot(): 

UniversityTaggedItem.objects.get_or_create( 

tag=tag, university=instance, defaults=defaults 

) 

 

 

def create_tagged_items_country(sender, instance, created, **kwargs): 

if created: 

defaults = get_module_defaults_for_bot() 

for tag in COUNTRY_TAG_CHOICES: 

with revision_bot(): 

CountryTaggedItem.objects.get_or_create( 

tag=tag, country=instance, defaults=defaults 

) 

 

 

def enable_auto_create(): 

post_save.connect(create_univ_modules, sender=University) 

post_save.connect(create_user_modules, sender=User) 

post_save.connect(create_course_feedback_module, sender=Course) 

post_save.connect(create_exchange_feedback_module, sender=Exchange) 

post_save.connect(create_tagged_items_university, sender=University) 

post_save.connect(create_tagged_items_country, sender=Country)