Example #1
0
def edit_articles(request):
    if not Permissions.can_approve_web_article(request.user):
        request.session['error_message']='You are not authorized to edit web articles.'
        return redirect('history:index')
    prefix='webstories'
    WebStoryFormset = modelformset_factory(WebsiteArticle,can_delete=True)
    if request.method =='POST':
        formset = WebStoryFormset(request.POST,prefix=prefix,queryset = WebsiteArticle.objects.order_by('approved','-date_posted'))
        if formset.is_valid():
            formset.save()
            request.session['success_message']='Web stories updated successfully'
            return redirect('history:index')
        else:
            request.session['error_message']='Form is invalid. Please correct the noted errors.'
    else:
        formset = WebStoryFormset(prefix=prefix,queryset = WebsiteArticle.objects.order_by('approved','-date_posted'))
    template = loader.get_template('generic_formset.html')
    context_dict = {
        'formset':formset,
        'prefix':prefix,
        'has_files':False,
        'can_add_row':False,
        'submit_name':'Update Website Stories',
        'form_title':'Edit Website Stories',
        'help_text':'Use this to edit or approve website stories submitted by others, for long stories, make sure to add the <fold> attribute.',
        'base':'history/base_history.html',
        'back_button':{'link':reverse('history:index'),'text':'To Website Stories'},
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Example #2
0
def get_permissions(user):
    permission_dict={
        'can_post':Permissions.can_post_web_article(user),
        'can_edit':Permissions.can_approve_web_article(user),
        'post_button':Permissions.can_upload_articles(user),
        'is_member':hasattr(user,'userprofile') and user.userprofile.is_member(),
        'can_process_project_reports': Permissions.can_process_project_reports(user),
        }
    return permission_dict
Example #3
0
def get_permissions(user):
    can_process_reports = Permissions.can_process_project_reports(user)
    permission_dict = {
        'can_post': Permissions.can_post_web_article(user),
        'can_edit': Permissions.can_approve_web_article(user),
        'post_button': Permissions.can_upload_articles(user),
        'is_member': (hasattr(user, 'userprofile') and
                      user.userprofile.is_member()),
        'can_process_project_reports': can_process_reports,
    }
    return permission_dict
Example #4
0
def get_article_view(request,article_id):
    request.session['current_page']=request.path
    today = date.today()
    web_articles    = WebsiteArticle.get_stories()
    if Permissions.can_post_web_article(request.user):
        NewArticleForm = modelform_factory(WebsiteArticle,form=WebArticleForm)
        if request.method == 'POST':
            form = NewArticleForm(request.POST)
            if form.is_valid():
                a=form.save()
                if Permissions.can_approve_web_article(request.user):
                    a.approved=True
                    a.save()
                    request.session['success_message']='Your webstory was posted successfully'
                else:
                    request.session['success_message']='Your webstory has been submitted and is awaiting approval'
                if hasattr(request.user,'userprofile') and request.user.userprofile.is_member():
                    a.created_by = request.user.userprofile.memberprofile
                    a.save()
                tweet_option = form.cleaned_data.pop('tweet_option','N')
                if tweet_option=='T':
                    a.tweet_story(False)
                elif tweet_option=='H':
                    a.tweet_story(True)
                return get_previous_page(request, 'history:index')
            else:
                request.session['error_message']='There were errors in your submission. Please correct the noted errors.'
        else:
            form = NewArticleForm(initial={'date_posted':today})
    else:
        form = None
    template = loader.get_template('history/publications.html')
    if not article_id:
        if web_articles:
            article_id=web_articles[0].id
        else:
            article_id=0
    context_dict = {
        'web_articles':web_articles,
        'main_id':int(article_id),
        'form':form,
        'subnav':'news',
        'event_photos': (EventPhoto.objects.all() if form else None),
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Example #5
0
def edit_articles(request):
    """ Allows editing and approving articles."""
    if not Permissions.can_approve_web_article(request.user):
        request.session['error_message'] = ('You are not authorized to edit '
                                            'web articles.')
        return redirect('history:index')
    prefix = 'webstories'
    WebStoryFormset = modelformset_factory(WebsiteArticle,
                                           can_delete=True,
                                           exclude=[])
    formset = WebStoryFormset(
                request.POST or None,
                prefix=prefix,
                queryset=WebsiteArticle.objects.order_by(
                                            'approved',
                                            '-date_posted'
                )
    )
    if request.method == 'POST':
        if formset.is_valid():
            formset.save()
            request.session['success_message'] = ('Web stories updated '
                                                  'successfully')
            return redirect('history:index')
        else:
            request.session['error_message'] = messages.GENERIC_SUBMIT_ERROR
    template = loader.get_template('generic_formset.html')
    context_dict = {
        'formset': formset,
        'prefix': prefix,
        'has_files': False,
        'can_add_row': False,
        'submit_name': 'Update Website Stories',
        'form_title': 'Edit Website Stories',
        'help_text': ('Use this to edit or approve website stories '
                      'submitted by others, for long stories, make sure to '
                      'add the <fold> attribute.'),
        'base': 'history/base_history.html',
        'back_button': {
                'link': reverse('history:index'),
                'text': 'To Website Stories'
        },
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    return HttpResponse(template.render(context_dict, request))
Example #6
0
def get_article_view(request, article_id):
    """ The helper view method for the index and the article view.

    This is not a url-findable method. To find article urls, use article_view.
    This also serves a form to submit new articles, provided that the user
    has the permissions to submit such a story.
    """
    request.session['current_page'] = request.path
    today = date.today()
    web_articles = WebsiteArticle.get_stories()
    if (hasattr(request.user, 'userprofile') and
       request.user.userprofile.is_member()):
        profile = request.user.userprofile.memberprofile
    else:
        profile = None
    can_post = Permissions.can_post_web_article(request.user)
    NewArticleForm = modelform_factory(WebsiteArticle, form=WebArticleForm)
    form = NewArticleForm(request.POST or None,
                          initial={'date_posted': today})
    if can_post and request.method == 'POST':
        if form.is_valid():
            a = form.save()
            if Permissions.can_approve_web_article(request.user):
                a.approved = True
                a.save()
                request.session['success_message'] = ('Your webstory was '
                                                      'posted')
            else:
                request.session['success_message'] = ('Your webstory has '
                                                      'been submitted and '
                                                      'is awaiting '
                                                      'approval')
            if profile:
                a.created_by = profile
                a.save()
            tweet_option = form.cleaned_data.pop('tweet_option', 'N')
            if tweet_option == 'T':
                a.tweet_story(False)
            elif tweet_option == 'H':
                a.tweet_story(True)
            return get_previous_page(request, 'history:index')
        else:
            request.session['error_message'] = messages.GENERIC_SUBMIT_ERROR
    elif not can_post:
        form = None
    template = loader.get_template('history/publications.html')
    if not article_id:
        if web_articles:
            article_id = web_articles[0].id
        else:
            article_id = 0
    context_dict = {
        'web_articles': web_articles,
        'main_id': int(article_id),
        'form': form,
        'subnav': 'news',
        'event_photos': (EventPhoto.objects.all() if form else None),
        'needs_social_media': True,
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    return HttpResponse(template.render(context_dict, request))