Пример #1
0
def text_feed(request, key):
    from cm.views import get_text_by_keys_or_404    
    text = get_text_by_keys_or_404(key)
    feed_title = _(u"Text %(text_title)s's public feed" % {'text_title' : text.title})
    feed_description = _(u"Public activity feed for text %(text_title)s") % {'text_title' : text.title}
    request.user = AnonymousUser()
    activitites = get_viewable_activities(request, {'view_comments' : 1, 'view_texts' : 1}, text=text)
    return _feed(request, activitites, feed_title, feed_description)
Пример #2
0
def public_feed(request):
    feed_title = _(
        u"%(workspace_name)s's public feed" %
        {'workspace_name': ApplicationConfiguration['workspace_name']})
    feed_description = _(
        u"Workspace %(workspace_name)s public activity feed") % {
            'workspace_name': ApplicationConfiguration['workspace_name']
        }
    request.user = AnonymousUser()
    activitites = get_viewable_activities(request, {
        'view_comments': 1,
        'view_texts': 1
    })
    return _feed(request, activitites, feed_title, feed_description)
Пример #3
0
def text_feed(request, key):
    from cm.views import get_text_by_keys_or_404
    text = get_text_by_keys_or_404(key)
    feed_title = _(u"Text %(text_title)s's public feed" %
                   {'text_title': text.title})
    feed_description = _(u"Public activity feed for text %(text_title)s") % {
        'text_title': text.title
    }
    request.user = AnonymousUser()
    activitites = get_viewable_activities(request, {
        'view_comments': 1,
        'view_texts': 1
    },
                                          text=text)
    return _feed(request, activitites, feed_title, feed_description)
Пример #4
0
def dashboard(request):
    request.session.set_test_cookie()
    if request.user.is_authenticated():
        act_view = {
            'view_texts': get_int(request.GET, 'view_texts', 1),
            'view_comments': get_int(request.GET, 'view_comments', 1),
            'view_users': get_int(request.GET, 'view_users', 1),
        }

        paginate_by = get_int(request.GET, 'paginate', ACTIVITY_PAGINATION)

        # texts with can_view_unapproved_comment perms
        moderator_texts = get_texts_with_perm(request,
                                              'can_view_unapproved_comment')
        viewer_texts = get_texts_with_perm(request,
                                           'can_view_approved_comment')
        all_texts_ids = [t.id for t in moderator_texts
                         ] + [t.id for t in viewer_texts]

        span = get_among(request.GET, 'span', (
            'day',
            'month',
            'week',
        ), 'week')
        template_dict = {
            'span':
            span,
            'last_texts':
            get_texts_with_perm(
                request,
                'can_view_text').order_by('-modified')[:RECENT_TEXT_NB],
            'last_comments':
            Comment.objects.filter(text_version__text__in=all_texts_ids).
            order_by('-created')[:RECENT_COMMENT_NB],  # TODO: useful?
            #'last_users' : User.objects.all().order_by('-date_joined')[:5],
        }
        template_dict.update(act_view)

        #selected_activities = []
        #[selected_activities.extend(Activity.VIEWABLE_ACTIVITIES[k]) for k in act_view.keys() if act_view[k]]
        activities = get_viewable_activities(request, act_view)

        if not has_perm(request, 'can_manage_workspace'):
            template_dict['to_mod_profiles'] = []
        else:
            template_dict['to_mod_profiles'] = UserProfile.objects.filter(
                user__is_active=False).filter(is_suspended=True).order_by(
                    '-user__date_joined')[:MODERATE_NB]

        template_dict['to_mod_comments'] = Comment.objects.filter(
            state='pending').filter(
                text_version__text__in=moderator_texts).order_by(
                    '-modified')[:MODERATE_NB -
                                 len(template_dict['to_mod_profiles'])]

        activities = activities.order_by('-created')
        return object_list(
            request,
            activities,
            template_name='site/dashboard.html',
            paginate_by=paginate_by,
            extra_context=template_dict,
        )

    else:
        if request.method == 'POST':
            form = AuthenticationForm(request, request.POST)
            if form.is_valid():
                user = form.get_user()
                user.backend = 'django.contrib.auth.backends.ModelBackend'
                cm_login(request, user)
                display_message(request, _(u"You're logged in!"))
                return HttpResponseRedirect(reverse('index'))
        else:
            form = AuthenticationForm()

        public_texts = get_texts_with_perm(
            request, 'can_view_text').order_by('-modified')

        template_dict = {
            'form': form,
            'public_texts': public_texts,
        }
        return render_to_response('site/non_authenticated_index.html',
                                  template_dict,
                                  context_instance=RequestContext(request))
Пример #5
0
def dashboard(request):
    request.session.set_test_cookie()
    if request.user.is_authenticated():
        act_view = {
                    'view_texts' : get_int(request.GET, 'view_texts', 1),
                    'view_comments' : get_int(request.GET, 'view_comments', 1),
                    'view_users' : get_int(request.GET, 'view_users', 1),
                    }

        paginate_by = get_int(request.GET, 'paginate', ACTIVITY_PAGINATION)

        # texts with can_view_unapproved_comment perms
        moderator_texts = get_texts_with_perm(request, 'can_view_unapproved_comment')
        viewer_texts = get_texts_with_perm(request, 'can_view_approved_comment')
        all_texts_ids = [t.id for t in moderator_texts] + [t.id for t in viewer_texts]

        span = get_among(request.GET, 'span', ('day', 'month', 'week',), 'week')
        template_dict = {
                         'span' : span,
                         'last_texts' : get_texts_with_perm(request, 'can_view_text').order_by('-modified')[:RECENT_TEXT_NB],
                         'last_comments' : Comment.objects.filter(text_version__text__in=all_texts_ids).order_by('-created')[:RECENT_COMMENT_NB], # TODO: useful?
                         #'last_users' : User.objects.all().order_by('-date_joined')[:5],
                         }
        template_dict.update(act_view)

        #selected_activities = []
        #[selected_activities.extend(Activity.VIEWABLE_ACTIVITIES[k]) for k in act_view.keys() if act_view[k]]
        activities = get_viewable_activities(request, act_view)

        if not has_perm(request, 'can_manage_workspace'):
            template_dict['to_mod_profiles'] = []
        else:
            template_dict['to_mod_profiles'] = UserProfile.objects.filter(user__is_active=False).filter(is_suspended=True).order_by('-user__date_joined')[:MODERATE_NB]

        template_dict['to_mod_comments'] = Comment.objects.filter(state='pending').filter(text_version__text__in=moderator_texts).order_by('-modified')[:MODERATE_NB - len(template_dict['to_mod_profiles'])]

        activities = activities.order_by('-created')
        return object_list(request, activities,
                           template_name='site/dashboard.html',
                           paginate_by=paginate_by,
                           extra_context=template_dict,
                           )

    else:
        if request.method == 'POST':
            form = AuthenticationForm(request, request.POST)
            if form.is_valid():
                user = form.get_user()
                user.backend = 'django.contrib.auth.backends.ModelBackend'
                cm_login(request, user)
                display_message(request, _(u"You're logged in!"))
                return HttpResponseRedirect(reverse('index'))
        else:
            form = AuthenticationForm()


        public_texts = get_texts_with_perm(request, 'can_view_text').order_by('-modified')

        template_dict = {
                         'form' : form,
                         'public_texts' : public_texts,
                         }
        return render_to_response('site/non_authenticated_index.html', template_dict, context_instance=RequestContext(request))
Пример #6
0
def public_feed(request):
    feed_title = _(u"%(workspace_name)s's public feed" % {'workspace_name' : ApplicationConfiguration['workspace_name']})
    feed_description = _(u"Workspace %(workspace_name)s public activity feed") % {'workspace_name' : ApplicationConfiguration['workspace_name']}
    request.user = AnonymousUser()
    activitites = get_viewable_activities(request, {'view_comments' : 1, 'view_texts' : 1})
    return _feed(request, activitites, feed_title, feed_description)