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)
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')), ], })
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 })
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')), ], })
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')), ], })