示例#1
0
    def get_initial(self):
        user = self.request.user
        settings = user.settings

        return {
            'username':
            user.username,
            'first_name':
            user.first_name,
            'last_name':
            user.last_name,
            'email':
            user.email,
            'time_zone':
            settings.time_zone,
            'glucose_unit':
            settings.glucose_unit,
            'default_category':
            settings.default_category,
            'glucose_low':
            glucose_by_unit_setting(user, settings.glucose_low),
            'glucose_high':
            glucose_by_unit_setting(user, settings.glucose_high),
            'glucose_target_min':
            glucose_by_unit_setting(user, settings.glucose_target_min),
            'glucose_target_max':
            glucose_by_unit_setting(user, settings.glucose_target_max),
        }
示例#2
0
    def render_column(self, row, column):
        user = self.request.user
        user_settings = user.settings
        low = user_settings.glucose_low
        high = user_settings.glucose_high
        target_min = user_settings.glucose_target_min
        target_max = user_settings.glucose_target_max

        if column == 'value':
            value_by_unit_setting = glucose_by_unit_setting(user, row.value)
            edit_url = reverse('glucose_update', args=(row.id,))
            if row.value < low or row.value > high:
                return self.get_value_cell_style(edit_url, value_by_unit_setting,
                                                 'red')
            elif row.value >= target_min and row.value <= target_max:
                return self.get_value_cell_style(edit_url, value_by_unit_setting,
                                                 'green')
            else:
                return self.get_value_cell_style(edit_url, value_by_unit_setting)
        elif column == 'category':
            return '%s' % row.category.name
        elif column == 'record_date':
            return row.record_date.strftime('%m/%d/%Y')
        elif column == 'record_time':
            return row.record_time.strftime('%I:%M %p')
        elif column == 'actions':
            edit_link = """<a href="%s">
                <img src="/static/images/icons/icon_changelink.gif"></a>""" % \
                reverse('glucose_update', args=(row.id,))
            delete_link = """<a href="%s">
                <img src="/static/images/icons/icon_deletelink.gif"></a>""" % \
                reverse('glucose_delete', args=(row.id,))
            return '<center>%s&nbsp;%s</center>' % (edit_link, delete_link)
        else:
            return super(GlucoseListJson, self).render_column(row, column)
示例#3
0
    def get_object(self, queryset=None):
        obj = Glucose.objects.get(pk=self.kwargs['pk'])

        # Convert the value based on user's glucose unit setting.
        obj.value = glucose_by_unit_setting(self.request.user, obj.value)

        return obj
示例#4
0
    def get_object(self, queryset=None):
        obj = Glucose.objects.get(pk=self.kwargs['pk'])

        # Convert the value based on user's glucose unit setting.
        obj.value = glucose_by_unit_setting(self.request.user, obj.value)

        return obj
示例#5
0
    def get_object(self, queryset=None):
        try:
            obj = Glucose.objects.get(pk=self.kwargs['pk'])
        except Glucose.DoesNotExist:
            raise Http404

        # Convert the value based on user's glucose unit setting.
        obj.value = glucose_by_unit_setting(self.request.user, obj.value)

        return obj
示例#6
0
    def get_object(self, queryset=None):
        try:
            obj = Glucose.objects.get(pk=self.kwargs['pk'])
        except Glucose.DoesNotExist:
            raise Http404

        # Convert the value based on user's glucose unit setting.
        obj.value = glucose_by_unit_setting(self.request.user, obj.value)

        return obj
示例#7
0
    def get_initial(self):
        user = self.request.user
        settings = user.settings

        return {
            'username': user.username,
            'first_name': user.first_name,
            'last_name': user.last_name,
            'email': user.email,
            'time_zone': settings.time_zone,
            'glucose_unit': settings.glucose_unit,
            'default_category': settings.default_category,
            'glucose_low': glucose_by_unit_setting(user, settings.glucose_low),
            'glucose_high': glucose_by_unit_setting(user, settings.glucose_high),
            'glucose_target_min': glucose_by_unit_setting(
                user, settings.glucose_target_min),
            'glucose_target_max': glucose_by_unit_setting(
                user, settings.glucose_target_max),
        }
示例#8
0
    def get_avg_by_day(cls, user, days):
        now = datetime.now(tz=user.settings.time_zone).date()

        glucose_averages = Glucose.objects.avg_by_day(
            (now - timedelta(days=days)), now, user)

        data = {'dates': [], 'values': []}
        for avg in glucose_averages:
            rounded_value = core_utils.round_value(avg['avg_value'])
            data['values'].append(
                core_utils.glucose_by_unit_setting(user, rounded_value))
            data['dates'].append(avg['record_date'].strftime('%m/%d'))

        return data
示例#9
0
    def get_avg_by_category(cls, user, days):
        now = datetime.now(tz=user.settings.time_zone).date()

        glucose_averages = Color.objects.avg_by_category(
            (now - timedelta(days=days)), now, user)

        data = {'categories': [], 'values': []}
        for avg in glucose_averages:
            rounded_value = core_utils.round_value(avg['avg_value'])
            data['values'].append(
                core_utils.glucose_by_unit_setting(user, rounded_value))
            data['categories'].append(avg['category__name'])

        return data
示例#10
0
    def get_avg_by_day(cls, user, days):
        now = datetime.now(tz=user.settings.time_zone).date()

        glucose_averages = Glucose.objects.avg_by_day(
            (now - timedelta(days=days)), now, user)

        data = {'dates': [], 'values': []}
        for avg in glucose_averages:
            rounded_value = core_utils.round_value(avg['avg_value'])
            data['values'].append(
                core_utils.glucose_by_unit_setting(user, rounded_value))
            data['dates'].append(avg['record_date'].strftime('%m/%d'))

        return data
示例#11
0
    def get(self, request, *args, **kwargs):
        self.object = self.get_object()

        # If the record's user doesn't match the currently logged-in user,
        # deny viewing/updating of the object by showing the 403.html
        # forbidden page. This can occur when the user changes the id in
        # the URL field to a record that the user doesn't own.
        if self.object.user != request.user:
            raise PermissionDenied
        else:
            # Convert the value based on user's glucose unit setting.
            self.object.value = glucose_by_unit_setting(
                request.user, self.object.value)
            context = self.get_context_data(object=self.object)
            return self.render_to_response(context)
示例#12
0
    def get(self, request, *args, **kwargs):
        self.object = self.get_object()

        # If the record's user doesn't match the currently logged-in user,
        # deny viewing/updating of the object by showing the 403.html
        # forbidden page. This can occur when the user changes the id in
        # the URL field to a record that the user doesn't own.
        if self.object.user != request.user:
            raise PermissionDenied
        else:
            # Convert the value based on user's glucose unit setting.
            self.object.value = glucose_by_unit_setting(request.user,
                                                        self.object.value)
            context = self.get_context_data(object=self.object)
            return self.render_to_response(context)
示例#13
0
    def render_column(self, row, column):
        user = self.request.user
        user_settings = user.settings
        low = user_settings.glucose_low
        high = user_settings.glucose_high
        target_min = user_settings.glucose_target_min
        target_max = user_settings.glucose_target_max

        if column == 'value':
            value_by_unit_setting = glucose_by_unit_setting(user, row.value)
            edit_url = reverse('glucose_update', args=(row.id, ))
            if row.value < low or row.value > high:
                return self.get_value_cell_style(edit_url,
                                                 value_by_unit_setting, 'red')
            elif row.value >= target_min and row.value <= target_max:
                return self.get_value_cell_style(edit_url,
                                                 value_by_unit_setting,
                                                 'green')
            else:
                return self.get_value_cell_style(edit_url,
                                                 value_by_unit_setting)
        elif column == 'category':
            return '%s' % row.category.name
        elif column == 'record_date':
            return row.record_date.strftime('%m/%d/%Y')
        elif column == 'record_time':
            return row.record_time.strftime('%I:%M %p')
        elif column == 'tags':
            return ', '.join([t.name for t in row.tags.all()])
        elif column == 'actions':
            edit_link = """<a href="%s">
                <img src="/static/images/icons/icon_changelink.gif"></a>""" % \
                reverse('glucose_update', args=(row.id,))
            delete_link = """<a href="%s">
                <img src="/static/images/icons/icon_deletelink.gif"></a>""" % \
                reverse('glucose_delete', args=(row.id,))
            return '<center>%s&nbsp;&nbsp;%s</center>' % (edit_link,
                                                          delete_link)
        else:
            return super(GlucoseListJson, self).render_column(row, column)
示例#14
0
    def render_column(self, row, column):
        user = self.request.user
        user_settings = user.settings
        low = user_settings.glucose_low
        high = user_settings.glucose_high
        target_min = user_settings.glucose_target_min
        target_max = user_settings.glucose_target_max

        if column == 'value':
            value_by_unit_setting = glucose_by_unit_setting(user, row.value)
            edit_url = reverse('glucose_update', args=(row.id, ))
            text_class = 'text-primary'

            if row.value < low or row.value > high:
                text_class = 'text-danger'
            elif target_max >= row.value >= target_min:
                text_class = 'text-success'

            return '''<center><a class="%s" href="%s">%s</a></center>''' % \
                (text_class, edit_url, value_by_unit_setting)

        elif column == 'category':
            return '%s' % row.category.name
        elif column == 'record_date':
            return row.record_date.strftime('%m/%d/%Y')
        elif column == 'record_time':
            return row.record_time.strftime('%I:%M %p')
        elif column == 'tags':
            return ', '.join([t.name for t in row.tags.all()])
        elif column == 'actions':
            edit_url = reverse('glucose_update', args=(row.id, ))
            edit_link = '<a href="%s"><i class="fa fa-pencil text-warning">' \
                        '</i></a>' % edit_url
            delete_url = reverse('glucose_delete', args=(row.id, ))
            delete_link = '<a href="%s"><i class="fa fa-trash text-danger">' \
                          '</i></a>' % delete_url
            return '<center>%s&nbsp;&nbsp%s</center>' % (edit_link,
                                                         delete_link)
        else:
            return super(GlucoseListJson, self).render_column(row, column)
示例#15
0
    def render_column(self, row, column):
        user = self.request.user
        user_settings = user.settings
        low = user_settings.glucose_low
        high = user_settings.glucose_high
        target_min = user_settings.glucose_target_min
        target_max = user_settings.glucose_target_max

        if column == 'value':
            value_by_unit_setting = glucose_by_unit_setting(user, row.value)
            edit_url = reverse('glucose_update', args=(row.id,))
            text_class = 'text-primary'

            if row.value < low or row.value > high:
                text_class = 'text-danger'
            elif target_max >= row.value >= target_min:
                text_class = 'text-success'

            return '''<center><a class="%s" href="%s">%s</a></center>''' % \
                (text_class, edit_url, value_by_unit_setting)

        elif column == 'category':
            return '%s' % row.category.name
        elif column == 'record_date':
            return row.record_date.strftime('%m/%d/%Y')
        elif column == 'record_time':
            return row.record_time.strftime('%I:%M %p')
        elif column == 'tags':
            return ', '.join([t.name for t in row.tags.all()])
        elif column == 'actions':
            edit_url = reverse('glucose_update', args=(row.id,))
            edit_link = '<a href="%s"><i class="fa fa-pencil text-warning">' \
                        '</i></a>' % edit_url
            delete_url = reverse('glucose_delete', args=(row.id,))
            delete_link = '<a href="%s"><i class="fa fa-trash text-danger">' \
                          '</i></a>' % delete_url
            return '<center>%s&nbsp;&nbsp%s</center>' % (edit_link, delete_link)
        else:
            return super(GlucoseListJson, self).render_column(row, column)
示例#16
0
 def glucose_by_unit_setting(self, value):
     return core_utils.glucose_by_unit_setting(self.user, value)
示例#17
0
 def glucose_by_unit_setting(self, value):
     return core_utils.glucose_by_unit_setting(self.user, value)