def search(request): num_pages = 0 limit = None nonvouched_only = False picture_only = False people = [] show_pagination = False form = forms.SearchForm(request.GET) groups = None curated_groups = None if form.is_valid(): query = form.cleaned_data.get('q', u'') limit = form.cleaned_data['limit'] vouched = False if form.cleaned_data['nonvouched_only'] else None profilepic = True if form.cleaned_data['picture_only'] else None page = request.GET.get('page', 1) curated_groups = Group.get_curated() # If nothing has been entered don't load any searches. if not (not query and vouched is None and profilepic is None): profiles = UserProfile.search(query, vouched=vouched, photo=profilepic) groups = Group.search(query) paginator = Paginator(profiles, limit) try: people = paginator.page(page) except PageNotAnInteger: people = paginator.page(1) except EmptyPage: people = paginator.page(paginator.num_pages) if len(profiles) == 1 and not groups: return redirect(reverse('profile', args=[people[0].user.username])) if paginator.count > forms.PAGINATION_LIMIT: show_pagination = True num_pages = len(people.paginator.page_range) d = dict(people=people, form=form, limit=limit, nonvouched_only=nonvouched_only, picture_only=picture_only, show_pagination=show_pagination, num_pages=num_pages, groups=groups, curated_groups=curated_groups) if request.is_ajax(): return render(request, 'search_ajax.html', d) return render(request, 'phonebook/search.html', d)
def search(request): num_pages = 0 limit = None people = [] show_pagination = False form = forms.SearchForm(request.GET) groups = None curated_groups = None if form.is_valid(): query = form.cleaned_data.get('q', u'') limit = form.cleaned_data['limit'] include_non_vouched = form.cleaned_data['include_non_vouched'] page = request.GET.get('page', 1) curated_groups = Group.get_curated() public = not (request.user.is_authenticated() and request.user.userprofile.is_vouched) profiles = UserProfile.search(query, public=public, include_non_vouched=include_non_vouched) if not public: groups = Group.search(query) paginator = Paginator(profiles, limit) try: people = paginator.page(page) except PageNotAnInteger: people = paginator.page(1) except EmptyPage: people = paginator.page(paginator.num_pages) if profiles.count() == 1 and not groups: return redirect(reverse('profile', args=[people[0].user.username])) if paginator.count > forms.PAGINATION_LIMIT: show_pagination = True num_pages = len(people.paginator.page_range) d = dict(people=people, form=form, limit=limit, show_pagination=show_pagination, num_pages=num_pages, groups=groups, curated_groups=curated_groups) if request.is_ajax(): return render(request, 'search_ajax.html', d) return render(request, 'phonebook/search.html', d)
def search(request): num_pages = 0 limit = None people = [] show_pagination = False form = forms.SearchForm(request.GET) groups = None curated_groups = None if form.is_valid(): query = form.cleaned_data.get("q", u"") limit = form.cleaned_data["limit"] include_non_vouched = form.cleaned_data["include_non_vouched"] page = request.GET.get("page", 1) curated_groups = Group.get_curated() profiles = UserProfile.search(query, include_non_vouched=include_non_vouched) groups = Group.search(query) paginator = Paginator(profiles, limit) try: people = paginator.page(page) except PageNotAnInteger: people = paginator.page(1) except EmptyPage: people = paginator.page(paginator.num_pages) if profiles.count() == 1 and not groups: return redirect(reverse("profile", args=[people[0].user.username])) if paginator.count > forms.PAGINATION_LIMIT: show_pagination = True num_pages = len(people.paginator.page_range) d = dict( people=people, form=form, limit=limit, show_pagination=show_pagination, num_pages=num_pages, groups=groups, curated_groups=curated_groups, ) if request.is_ajax(): return render(request, "search_ajax.html", d) return render(request, "phonebook/search.html", d)
def home(request): if request.user.is_authenticated(): profile = request.user.get_profile() my_groups = profile.groups.exclude(steward=None).order_by("name") curated_groups = Group.get_curated() data = dict(groups=my_groups, curated_groups=curated_groups) return render(request, "phonebook/home.html", data) else: return render(request, "phonebook/home.html")
def home(request): if request.user.is_authenticated(): profile = request.user.get_profile() my_groups = profile.groups.exclude(steward=None).order_by('name') curated_groups = Group.get_curated() data = dict(groups=my_groups, curated_groups=curated_groups) return render(request, 'phonebook/home.html', data) else: return render(request, 'phonebook/home.html')
class RegisterForm(BaseProfileForm): optin = forms.BooleanField( label=_lazy(u"I'm okay with you handling this info as you " u"explain in Mozilla's privacy policy."), widget=forms.CheckboxInput(attrs={'class': 'checkbox'}), required=True) groups = forms.ModelMultipleChoiceField( widget=forms.CheckboxSelectMultiple, label=_lazy(u'Please indicate the functional areas you are currently ' 'contributing to or would like to contribute to:'), queryset=Group.get_curated(), required=False) class Meta: # Model form stuff model = UserProfile fields = ('ircname', 'website', 'bio', 'photo', 'country', 'region', 'city') exclude = ('display_name', ) widgets = {'bio': forms.Textarea()}
def index_functional_areas(request): """Lists all curated groups.""" query = Group.get_curated() template = 'groups/areas.html' return list_groups(request, template, query)