diff --git a/flashcards/models.py b/flashcards/models.py index 017c770..9c77cf0 100644 --- a/flashcards/models.py +++ b/flashcards/models.py @@ -1,5 +1,6 @@ from django.contrib.auth.models import AbstractUser, UserManager from django.contrib.auth.tokens import default_token_generator +from django.core.cache import cache from django.core.exceptions import ValidationError from django.core.exceptions import PermissionDenied, SuspiciousOperation from django.core.mail import send_mail @@ -53,8 +54,6 @@ class EmailOnlyUserManager(UserManager): return self._create_user(email, password, True, True, **extra_fields) - - class User(AbstractUser, SimpleEmailConfirmationUserMixin): """ An extension of Django's default user model. @@ -332,9 +331,17 @@ class Section(Model): @property def lecture_times(self): - lecture_periods = self.lectureperiod_set.all() - if not lecture_periods.exists(): return '' - return ''.join(map(lambda x: x.weekday_letter, lecture_periods)) + ' ' + lecture_periods[0].short_start_time + data = cache.get("section_%d_lecture_times" % self.pk) + if not data: + lecture_periods = self.lectureperiod_set.all() + if lecture_periods.exists(): + data = ''.join(map(lambda x: x.weekday_letter, lecture_periods)) + ' ' + lecture_periods[ + 0].short_start_time + else: + data = '' + cache.set("section_%d_lecture_times" % self.pk, data, 24*60*60) + return data + @property def long_name(self): diff --git a/flashcards/views.py b/flashcards/views.py index 4479e58..647ba1f 100644 --- a/flashcards/views.py +++ b/flashcards/views.py @@ -79,11 +79,8 @@ class SectionViewSet(ReadOnlyModelViewSet): """ query = request.GET.get('q', None) if not query: return Response('[]') - data = cache.get("section_search_"+query) - if not data: - qs = Section.search(query.split(' '))[:20] - data = SectionSerializer(qs, many=True).data - cache.set("section_search_"+query, data, 10*60) + qs = Section.search(query.split(' '))[:20] + data = SectionSerializer(qs, many=True).data return Response(data) @detail_route(methods=['GET'])