Beispiel #1
0
    def render(self, context):
        user = context['user']

        # TODO: DRY
        if isinstance(self.field_name, basestring):
            field_name = self.field_name
        else:
            field_name = self.field_name.resolve(context)

        if isinstance(self.save_to, basestring):
            save_to = self.save_to
        else:
            save_to = self.save_to.resolve(context)


        value = context['request'].GET.get(field_name, None)
        if value is not None and value in self.allowed_values:
            if user.is_authenticated():
                profile = user.get_profile()
                setattr(profile, field_name, value)
                profile.save()
            elif not settings.DISABLE_PREF_COOKIES:
                response_update_cookie(context['request'], field_name, value)
        else:
            value = get_useroption(context['request'], field_name,
                self.default_value)

        context._useroptions_field_name = field_name
        context._useroptions_value = unicode(value)
        context[save_to] = unicode(value)

        out = '<div style="float:right;padding:8px;" class="btn-group">'    \
            + self.nodelist.render(context) \
            + '</div>'
        return out
Beispiel #2
0
def task_view_type_check(context):
    """
        Used for inc_task_list.html. Use select_related('content') if showing
        the content. Checks the user options and if the 'tasks' is the queryset.
    """
    # TODO: This is temporary solution. Refactor UserOptions!
    # Takes the old value if the current request updates it.
    tasks = context['tasks']
    if hasattr(tasks, 'select_related'):
        field_name = context.get('view_type', "task_view_type")
        # 0 is list, 1 is with content, 2 is with context (two tasks per row)
        if get_useroption(context['request'], field_name) != 0:
            context['tasks'] = tasks.select_related('content')
    return ''