Beispiel #1
0
    def test_calendar_anonymous(self):
        '''
        Test the exercise overview cache is correctly generated on visit
        by anonymous users
        '''
        self.user_logout()
        self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        for cache_key in ('workout-log-full', 'workout-log-mobile'):
            self.assertFalse(
                cache.get(get_template_cache_name(cache_key, True, 1, 2012,
                                                  10)))
            self.assertFalse(
                cache.get(
                    get_template_cache_name(cache_key, False, 1, 2012, 10)))
        self.client.get(
            reverse('manager:workout:calendar',
                    kwargs={
                        'username': '******',
                        'year': 2012,
                        'month': 10
                    }))

        cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full'
        self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        self.assertTrue(
            cache.get(get_template_cache_name(cache_key, False, 1, 2012, 10)))
        self.assertFalse(
            cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
Beispiel #2
0
def calendar(request, year=None, month=None):
    '''
    Show a calendar with all the workout logs
    '''
    if not year:
        year = datetime.date.today().year
    else:
        year = int(year)
    if not month:
        month = datetime.date.today().month
    else:
        month = int(month)

    context = {}
    logs = WorkoutLog.objects.filter(user=request.user,
                                     date__year=year,
                                     date__month=month).order_by('exercise')
    logs_filtered = cache.get(
        cache_mapper.get_workout_log(request.user.pk, year, month))
    if not logs_filtered:
        logs_filtered = {}

        # Process the logs. Group by date and check for impressions
        for log in logs:
            if log.date not in logs_filtered:
                session = log.get_workout_session()

                if session:
                    impression = session.impression
                else:
                    # Default is 'neutral'
                    impression = WorkoutSession.IMPRESSION_NEUTRAL

                logs_filtered[log.date.day] = {
                    'impression': impression,
                    'log': log
                }
        cache.set(cache_mapper.get_workout_log(request.user.pk, year, month),
                  logs_filtered)

    (current_workout,
     schedule) = Schedule.objects.get_current_workout(request.user)
    context['calendar'] = WorkoutCalendar(logs_filtered).formatmonth(
        year, month)
    context['logs'] = process_log_entries(logs)[0]
    context['current_year'] = year
    context['current_month'] = month
    context['current_workout'] = current_workout
    context['impressions'] = WorkoutSession.IMPRESSION
    context['month_list'] = WorkoutLog.objects.filter(user=request.user).dates(
        'date', 'month')
    return render(request, 'workout/calendar.html', context)
Beispiel #3
0
Datei: log.py Projekt: voszp/wger
def calendar(request, username=None, year=None, month=None):
    '''
    Show a calendar with all the workout logs
    '''
    is_owner, user = check_access(request.user, username)

    logger.info('aa bb cc')
    uid, token = make_token(user)
    year = int(year) if year else datetime.date.today().year
    month = int(month) if month else datetime.date.today().month

    context = {}
    logs = WorkoutLog.objects.filter(user=user,
                                     date__year=year,
                                     date__month=month).order_by('exercise')
    logs_filtered = cache.get(
        cache_mapper.get_workout_log(user.pk, year, month))
    if not logs_filtered:
        logs_filtered = {}

        # Process the logs. Group by date and check for impressions
        for log in logs:
            if log.date not in logs_filtered:
                session = log.get_workout_session()

                if session:
                    impression = session.impression
                else:
                    # Default is 'neutral'
                    impression = WorkoutSession.IMPRESSION_NEUTRAL

                logs_filtered[log.date.day] = {
                    'impression': impression,
                    'log': log
                }
        cache.set(cache_mapper.get_workout_log(user.pk, year, month),
                  logs_filtered)

    (current_workout, schedule) = Schedule.objects.get_current_workout(user)
    context['calendar'] = WorkoutCalendar(logs_filtered).formatmonth(
        year, month)
    context['logs'] = process_log_entries(logs)[0]
    context['current_year'] = year
    context['current_month'] = month
    context['current_workout'] = current_workout
    context['owner_user'] = user
    context['is_owner'] = is_owner
    context['impressions'] = WorkoutSession.IMPRESSION
    context['month_list'] = WorkoutLog.objects.filter(user=user).dates(
        'date', 'month')
    context['show_shariff'] = is_owner and user.userprofile.ro_access
    return render(request, 'workout/calendar.html', context)
Beispiel #4
0
    def test_calendar(self):
        '''
        Test the exercise overview cache is correctly generated on visit
        '''
        self.user_login('admin')
        self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        for cache_key in ('workout-log-full', 'workout-log-mobile'):
            self.assertFalse(cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
        self.client.get(reverse('manager:workout:calendar', kwargs={'year': 2012, 'month': 10}))

        cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full'
        self.assertTrue(cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
        self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
Beispiel #5
0
def calendar(request, year=None, month=None):
    '''
    Show a calendar with all the workout logs
    '''
    if not year:
        year = datetime.date.today().year
    else:
        year = int(year)
    if not month:
        month = datetime.date.today().month
    else:
        month = int(month)

    context = {}
    logs = WorkoutLog.objects.filter(user=request.user,
                                     date__year=year,
                                     date__month=month).order_by('exercise')
    logs_filtered = cache.get(cache_mapper.get_workout_log(request.user.pk, year, month))
    if not logs_filtered:
        logs_filtered = {}

        # Process the logs. Group by date and check for impressions
        for log in logs:
            if log.date not in logs_filtered:
                session = log.get_workout_session()

                if session:
                    impression = session.impression
                else:
                    # Default is 'neutral'
                    impression = WorkoutSession.IMPRESSION_NEUTRAL

                logs_filtered[log.date.day] = {'impression': impression,
                                               'log': log}
        cache.set(cache_mapper.get_workout_log(request.user.pk, year, month), logs_filtered)

    (current_workout, schedule) = Schedule.objects.get_current_workout(request.user)
    context['calendar'] = WorkoutCalendar(logs_filtered).formatmonth(year, month)
    context['logs'] = process_log_entries(logs)[0]
    context['current_year'] = year
    context['current_month'] = month
    context['current_workout'] = current_workout
    context['impressions'] = WorkoutSession.IMPRESSION
    context['month_list'] = WorkoutLog.objects.filter(user=request.user).dates('date', 'month')
    return render(request, 'workout/calendar.html', context)
Beispiel #6
0
    def test_cache_delete_log_2(self):
        '''
        Test that the caches are only cleared for a the log's month
        '''
        self.user_login('admin')
        self.client.get(reverse('manager:workout:calendar', kwargs={'year': 2012, 'month': 10}))

        log = WorkoutLog.objects.get(pk=3)
        log.delete()

        cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full'
        self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        self.assertTrue(cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
    def test_cache_delete_session(self):
        '''
        Test that the caches are cleared when deleting a workout session
        '''
        self.user_login('admin')
        self.client.get(reverse('manager:workout:calendar', kwargs={'year': 2012, 'month': 10}))

        session = WorkoutSession.objects.get(pk=1)
        session.delete()

        cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full'
        self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        self.assertFalse(cache.get(get_template_cache_name(cache_key, 1, 2012, 10)))
Beispiel #8
0
    def test_cache_update_log(self):
        '''
        Test that the caches are cleared when saving a log
        '''
        self.user_login('admin')
        self.client.get(reverse('manager:workout:calendar', kwargs={'year': 2012, 'month': 10}))

        log = WorkoutLog.objects.get(pk=1)
        log.weight = 35
        log.save()

        cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full'
        self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        self.assertFalse(cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
Beispiel #9
0
    def test_calendar(self):
        '''
        Test the exercise overview cache is correctly generated on visit
        '''
        self.user_login('admin')
        self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        self.assertFalse(
            cache.get(get_template_cache_name('workout-log-full', 1, 2012,
                                              10)))
        self.assertFalse(
            cache.get(
                get_template_cache_name('workout-log-mobile', 1, 2012, 10)))
        self.client.get(
            reverse('manager:workout:calendar',
                    kwargs={
                        'year': 2012,
                        'month': 10
                    }))

        cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full'
        self.assertTrue(
            cache.get(get_template_cache_name(cache_key, 1, 2012, 10)))
        self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
    def test_cache_update_session_2(self):
        '''
        Test that the caches are only cleared for a the session's month
        '''
        self.user_login('admin')
        self.client.get(reverse('manager:workout:calendar', kwargs={'year': 2012, 'month': 10}))

        # Session is from 2014
        session = WorkoutSession.objects.get(pk=2)
        session.notes = 'Lorem ipsum'
        session.save()

        cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full'
        self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        self.assertTrue(cache.get(get_template_cache_name(cache_key, 1, 2012, 10)))
Beispiel #11
0
    def test_cache_delete_log_2(self):
        '''
        Test that the caches are only cleared for a the log's month
        '''
        self.user_login('admin')
        self.client.get(
            reverse('manager:workout:calendar',
                    kwargs={
                        'year': 2012,
                        'month': 10
                    }))

        log = WorkoutLog.objects.get(pk=3)
        log.delete()

        cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full'
        self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        self.assertTrue(
            cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
Beispiel #12
0
    def test_cache_delete_session(self):
        '''
        Test that the caches are cleared when deleting a workout session
        '''
        self.user_login('admin')
        self.client.get(
            reverse('manager:workout:calendar',
                    kwargs={
                        'year': 2012,
                        'month': 10
                    }))

        session = WorkoutSession.objects.get(pk=1)
        session.delete()

        cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full'
        self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        self.assertFalse(
            cache.get(get_template_cache_name(cache_key, 'True', 1, 2012, 10)))
Beispiel #13
0
    def test_cache_update_log(self):
        '''
        Test that the caches are cleared when saving a log
        '''
        self.user_login('admin')
        self.client.get(
            reverse('manager:workout:calendar',
                    kwargs={
                        'year': 2012,
                        'month': 10
                    }))

        log = WorkoutLog.objects.get(pk=1)
        log.weight = 35
        log.save()

        cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full'
        self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        self.assertFalse(
            cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
Beispiel #14
0
    def test_cache_update_session_2(self):
        '''
        Test that the caches are only cleared for a the session's month
        '''
        self.user_login('admin')
        self.client.get(
            reverse('manager:workout:calendar',
                    kwargs={
                        'year': 2012,
                        'month': 10
                    }))

        # Session is from 2014
        session = WorkoutSession.objects.get(pk=2)
        session.notes = 'Lorem ipsum'
        session.save()

        cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full'
        self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
        self.assertTrue(
            cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))