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