Пример #1
0
def activity(request, team):
    filters_form = forms.ActivityFiltersForm(team, request.GET)
    paginator = AmaraPaginator(filters_form.get_queryset(), ACTIONS_PER_PAGE)
    page = paginator.get_page(request)

    action_choices = ActivityRecord.type_choices()

    next_page_query = request.GET.copy()
    next_page_query['page'] = page.next_page_number()

    context = {
        'paginator': paginator,
        'page': page,
        'filters_form': filters_form,
        'filtered': filters_form.is_bound,
        'team': team,
        'tab': 'activity',
        'user': request.user,
        'next_page_query': next_page_query.urlencode(),
        'breadcrumbs': [
            BreadCrumb(team, 'teams:dashboard', team.slug),
            BreadCrumb(_('Activity')),
        ],
    }
    if team.is_old_style():
        template_dir = 'teams/'
    else:
        template_dir = 'new-teams/'

    if not request.is_ajax():
        return render(request, template_dir + 'activity.html', context)
    else:
        # for ajax requests we only want to return the activity list, since
        # that's all that the JS code needs.
        return render(request, template_dir + '_activity-list.html', context)
Пример #2
0
def videos(request, team):
    team_videos, filters_form = _videos_and_filters_form(request, team)

    page_forms = VideoPageForms(team, request.user, team_videos)
    error_form = error_form_name = None

    add_form, add_formset = page_forms.build_add_multiple_forms(request, filters_form)
    if add_form.is_bound and add_form.is_valid() and add_formset.is_bound and add_formset.is_valid():
        errors = ""
        added = 0
        project = add_form.cleaned_data['project']
        thumbnail = add_form.cleaned_data['thumbnail']
        language = add_form.cleaned_data['language']
        for form in add_formset:
            created, error = form.save(team, request.user, project=project, thumbnail=thumbnail, language=language)
            if len(error) > 0:
                errors += error + "<br/>"
            if created:
                added += 1
        message = fmt(_(u"%(added)i videos added<br/>%(errors)s"), added=added, errors=errors)
        messages.success(request, message)
        return HttpResponseRedirect(request.build_absolute_uri())
    paginator = AmaraPaginator(team_videos, VIDEOS_PER_PAGE)
    page = paginator.get_page(request)

    if request.method == 'POST':
        csv_form = forms.TeamVideoCSVForm(data=request.POST, files=request.FILES)
        if csv_form.is_bound and csv_form.is_valid():
            csv_file = csv_form.cleaned_data['csv_file']
            if csv_file is not None:
                try:
                    add_videos_from_csv(team, request.user, csv_file)
                    message = fmt(_(u"File successfully uploaded, you should receive the summary shortly."))
                except:
                    message = fmt(_(u"File was not successfully parsed."))
                messages.success(request, message)
    else:
        csv_form = forms.TeamVideoCSVForm()

    return render(request, 'new-teams/videos.html', {
        'team': team,
        'page': page,
        'paginator': paginator,
        'filters_form': filters_form,
        'forms': page_forms,
        'add_form': add_form,
        'add_formset': add_formset,
        'add_csv_form': csv_form,
        'error_form': error_form,
        'error_form_name': error_form_name,
        'bulk_mode_enabled': page and page_forms.has_bulk_form,
        'breadcrumbs': [
            BreadCrumb(team, 'teams:dashboard', team.slug),
            BreadCrumb(_('Videos')),
        ],
    })
Пример #3
0
def video_listing_page(request, subheader, video_qs, query=None,
                       force_pages=None):
    paginator = AmaraPaginator(video_qs, VIDEO_IN_ROW * 3)
    if force_pages:
        paginator._count = paginator.per_page * force_pages
    page = paginator.get_page(request)

    return render(request, 'videos/watch.html', {
        'subheader': subheader,
        'page': page,
        'query': query
    })
Пример #4
0
def members(request, team):
    member = team.get_member(request.user)

    filters_form = forms.MemberFiltersForm(request.GET)

    if request.method == 'POST':
        edit_form = forms.EditMembershipForm(member, request.POST)
        if edit_form.is_valid():
            edit_form.save()
            return HttpResponseRedirect(request.path)
        else:
            logger.warning("Error updating team memership: %s (%s)",
                           edit_form.errors.as_text(), request.POST)
            messages.warning(request, _(u'Error updating membership'))
    else:
        edit_form = forms.EditMembershipForm(member)

    members = filters_form.update_qs(
        team.members.select_related('user').prefetch_related(
            'user__userlanguage_set', 'projects_managed', 'languages_managed'))

    paginator = AmaraPaginator(members, MEMBERS_PER_PAGE)
    page = paginator.get_page(request)

    return render(
        request, 'new-teams/members.html', {
            'team':
            team,
            'page':
            page,
            'filters_form':
            filters_form,
            'edit_form':
            edit_form,
            'show_invite_link':
            permissions.can_invite(team, request.user),
            'breadcrumbs': [
                BreadCrumb(team, 'teams:dashboard', team.slug),
                BreadCrumb(_('Members')),
            ],
        })
Пример #5
0
def videos(request, team):
    team_videos, filters_form = _videos_and_filters_form(request, team)

    page_forms = VideoPageForms(team, request.user, team_videos)
    error_form = error_form_name = None

    add_form = page_forms.build_add_form(request, filters_form)
    if add_form.is_bound and add_form.is_valid():
        add_form.save()
        messages.success(request, add_form.message())
        return HttpResponseRedirect(request.build_absolute_uri())

    paginator = AmaraPaginator(team_videos, VIDEOS_PER_PAGE)
    page = paginator.get_page(request)

    return render(
        request, 'new-teams/videos.html', {
            'team':
            team,
            'page':
            page,
            'paginator':
            paginator,
            'filters_form':
            filters_form,
            'forms':
            page_forms,
            'add_form':
            add_form,
            'error_form':
            error_form,
            'error_form_name':
            error_form_name,
            'bulk_mode_enabled':
            page and page_forms.has_bulk_form,
            'breadcrumbs': [
                BreadCrumb(team, 'teams:dashboard', team.slug),
                BreadCrumb(_('Videos')),
            ],
        })