Exemple #1
0
def group_detail(request):
    if request.method == "GET":
        key_name = request.values.get("key_name", None)
        group = Group.get_by_key_name(key_name)
        if not group.is_owned_by(request.user):
            raise Forbidden()
        return render_to_response("groupy/group_detail.html", {
            "message": _("The details of the group"),
            "group": group
        })
Exemple #2
0
def edit_group(request):
    error_message = None
    if request.method == "GET":
        key_name = request.values.get("key_name", None)
        group = Group.get_by_key_name(key_name)
        if not group.is_owned_by(request.user):
            raise Forbidden()
        form = get_edit_form(group)

    elif request.method == "POST":
        key_name = request.form.get("hidden_key_name", None)
        group = Group.get_by_key_name(key_name)
        if not group.is_owned_by(request.user):
            raise Forbidden()
        form = get_edit_form(group)
        if form.validate(request.form):
            if str(group.updated) == form["hidden_updated"]:
                group.language = form["language"]
                group.description = form["description"]
                group.members = form["members"]
                group.applications = form["applications"]
                group.banned_addresses = form["banned_addresses"]
                group.put()
                return redirect(
                    url_for('groupy/group_detail',
                            key_name=group.key().name()))
            else:
                # re-init because of race condition
                form = get_edit_form(group)
                error_message = _("Sorry, It can not be saved because "
                                  "a race condition happened. "
                                  "Please try again from the start.")
        else:
            pass
    return render_to_response(
        "groupy/edit_group.html", {
            "message": _("Editing a group"),
            "form": form.as_widget(),
            "error_message": error_message,
            "group": group
        })