Revision 95a51cdc snf-astakos-app/astakos/im/views.py
b/snf-astakos-app/astakos/im/views.py | ||
---|---|---|
704 | 704 |
|
705 | 705 |
@signed_terms_required |
706 | 706 |
@login_required |
707 |
def group_search(request, extra_context={}, **kwargs): |
|
708 |
join_forms = {} |
|
707 |
def group_search(request, extra_context=None, **kwargs): |
|
709 | 708 |
if request.method == 'GET': |
710 | 709 |
form = AstakosGroupSearchForm() |
711 | 710 |
else: |
... | ... | |
714 | 713 |
q = form.cleaned_data['q'].strip() |
715 | 714 |
q = URLField().to_python(q) |
716 | 715 |
queryset = AstakosGroup.objects.select_related().filter(name=q) |
717 |
f = MembershipCreationForm |
|
718 |
for g in queryset: |
|
719 |
join_forms[g.name] = f( |
|
720 |
dict( |
|
721 |
group=g, |
|
722 |
person=request.user, |
|
723 |
date_requested=datetime.now().strftime("%d/%m/%Y") |
|
724 |
) |
|
725 |
) |
|
726 | 716 |
return object_list( |
727 | 717 |
request, |
728 | 718 |
queryset, |
729 | 719 |
template_name='im/astakosgroup_list.html', |
730 | 720 |
extra_context=dict( |
731 | 721 |
form=form, |
732 |
is_search=True, |
|
733 |
join_forms=join_forms |
|
722 |
is_search=True |
|
734 | 723 |
) |
735 | 724 |
) |
736 | 725 |
return render_response( |
737 | 726 |
template='im/astakosgroup_list.html', |
738 | 727 |
form = form, |
739 |
context_instance=get_context(request) |
|
728 |
context_instance=get_context(request, extra_context)
|
|
740 | 729 |
) |
741 | 730 |
|
742 | 731 |
@signed_terms_required |
743 | 732 |
@login_required |
744 | 733 |
def group_join(request, group_id): |
745 |
return create_object( |
|
746 |
request, |
|
747 |
model=Membership, |
|
748 |
template_name='im/astakosgroup_list.html', |
|
734 |
m = Membership(group_id=group_id, |
|
735 |
person=request.user, |
|
736 |
date_requested=datetime.now() |
|
737 |
) |
|
738 |
try: |
|
739 |
m.save() |
|
749 | 740 |
post_save_redirect = reverse( |
750 | 741 |
'group_detail', |
751 | 742 |
kwargs=dict(group_id=group_id) |
752 | 743 |
) |
753 |
) |
|
744 |
return HttpResponseRedirect(post_save_redirect) |
|
745 |
except IntegrityError, e: |
|
746 |
logger.exception(e) |
|
747 |
msg = _('Failed to join group.') |
|
748 |
messages.error(request, msg) |
|
749 |
return group_search(request) |
|
754 | 750 |
|
755 | 751 |
@signed_terms_required |
756 | 752 |
@login_required |
Also available in: Unified diff