Exemplo n.º 1
0
 def dec(request, *args, **kwargs):
     if request.user.is_authenticated():
         profile = get_profile(request.user)
         if profile.is_editor:
             return func(request, *args, **kwargs)
     tup = reverse('newsroom-login'), REDIRECT_FIELD_NAME, request.path
     return HttpResponseRedirect('%s?%s=%s' % tup)
Exemplo n.º 2
0
def assignments_count(tab, url_name, request):
    from newsroom_core import models
    from newsroom_core.utils.profile import get_profile
    user = request.user
    if not user or not user.is_authenticated() or\
       not get_profile(request.user).my_assignments_default:
        return tab, None
    count = models.Assignment.objects.assignments().filter(
                    involved=user, status__means_completed=False).count()
    if not count:
        return tab, None
    tab = mark_safe(TAB % (escape(tab), count))
    return tab, None
Exemplo n.º 3
0
def initial(request):
    """
    Redirect the user to either the assignments page or the personal assignments
    involved page (depending on their user preference).
    """
    profile = get_profile(request.user)
    if profile.my_assignments_default:
        url = reverse('newsroom-assignments-profile',
                      args=[request.user.username])
    else:
        url = reverse('newsroom-assignments')
    if profile.my_section_default:
        url = '%s?section=%s' % (url, profile.section.slug)
    return HttpResponseRedirect(url)
Exemplo n.º 4
0
    def test_tab_assignments_count(self):
        tab_text = 'Assignments <span class="number"><span>(</span>%s<span>)'\
                   '</span></span>'
        profile = get_profile(self.user)
        profile.section = self.section
        profile.my_assignments_default = True
        profile.save()
        a1 = self.create_assignment('Article one')
        a2 = self.create_assignment('Article two')
        a3 = self.create_assignment('Article three', user=self.superuser)
        url = reverse('newsroom-add-assignment', args=[self.category.slug])

        response = self.client.get(url)
        self.assertContains(response, tab_text % '2')

        a1.status = self.status_closed
        a1.save()
        response = self.client.get(url)
        self.assertContains(response, tab_text % '1')
Exemplo n.º 5
0
def edit_profile(request, username=None):
    c = {}
    if not username:
        url = reverse(edit_profile, args=[request.user.username])
        return HttpResponseRedirect(url)
    user = get_object_or_404(User, username=username)
    profile = get_profile(user)
    kwargs = form_kwargs(request)
    user_form = forms.UserForm(instance=user, **kwargs)
    form = forms.ProfileForm(instance=profile, **kwargs)
    if not request.user.is_staff:
        del form.fields['is_editor']
    if username != request.user.username:
        del form.fields['email_notifications']
        del form.fields['my_assignments_default']
        del form.fields['my_section_default']
        valid = form.is_valid() and user_form.is_valid()
    else:
        password_form = forms.PasswordForm(user=user, **kwargs)
        c['password_form'] = password_form
        valid = form.is_valid() and user_form.is_valid() and \
                password_form.is_valid()
        if valid:
            password_form.save()
    if valid:
        user = user_form.save()
        if profile:
            profile = form.save()
        else:
            profile = form.save(commit=False)
            profile.user = user
        url = reverse(detail, args=[profile.user.username])
        return HttpResponseRedirect(url)
    c['form'] = form
    c['user_form'] = user_form
    return direct_to_template(request, 'newsroom/person_edit.html', c)
def profile(user):
    """
    Return the common HTML output for a user, showing their name and a link
    to their profile.
    """
    return {'profile': get_profile(user)}
 def render(self, context):
     user = self.user_var.resolve(context)
     context[self.context_name] = get_profile(user)
     return ''