Skip to content

Commit

Permalink
updated the function for 12M connection between course adn training
Browse files Browse the repository at this point in the history
  • Loading branch information
Rutvikrj26 committed Aug 27, 2024
1 parent 73b4f7b commit 9a5febe
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions physionet-django/user/managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,37 +10,35 @@ def get_review(self):
return self.filter(status=TrainingStatus.REVIEW)

def get_valid(self):
course_duration = Course.objects.filter(trainings=OuterRef('pk')).values('valid_duration')[:1]

return self.filter(
Q(status=TrainingStatus.ACCEPTED),
Q(training_type__valid_duration__isnull=True)
| Q(process_datetime__gte=timezone.now() - Case(
When(training_type__required_field=RequiredField.PLATFORM, then=Subquery(course_duration)),
When(training_type__required_field=RequiredField.PLATFORM, then=F('course__valid_duration')),
default=F('training_type__valid_duration')
)),
).annotate(
valid_datetime=ExpressionWrapper(
F('process_datetime') + Case(
When(training_type__required_field=RequiredField.PLATFORM, then=Subquery(course_duration)),
When(training_type__required_field=RequiredField.PLATFORM, then=F('course__valid_duration')),
default=F('training_type__valid_duration')
), output_field=DateTimeField()
)
)

def get_expired(self):
course_duration = Course.objects.filter(trainings=OuterRef('pk')).values('valid_duration')[:1]

return self.filter(
Q(status=TrainingStatus.ACCEPTED),
Q(process_datetime__lt=timezone.now() - Case(
When(training_type__required_field=RequiredField.PLATFORM, then=Subquery(course_duration)),
When(training_type__required_field=RequiredField.PLATFORM, then=F('course__valid_duration')),
default=F('training_type__valid_duration')
)),
).annotate(
valid_datetime=ExpressionWrapper(
F('process_datetime') + Case(
When(training_type__required_field=RequiredField.PLATFORM, then=Subquery(course_duration)),
When(training_type__required_field=RequiredField.PLATFORM, then=F('course__valid_duration')),
default=F('training_type__valid_duration')
), output_field=DateTimeField()
)
Expand Down

0 comments on commit 9a5febe

Please sign in to comment.