diff options
| author | Michael Elovskikh | 2013-02-15 14:41:12 +0600 | 
|---|---|---|
| committer | Michael Elovskikh | 2013-02-15 14:41:12 +0600 | 
| commit | 8fdf9250157cde2341ec9c86ead44b2ed1354aa2 (patch) | |
| tree | e4c6504712720b8168ac462d1ebb4feffdbd3304 /rest_framework/templates | |
| parent | de029561d0cbb090c0d704811551b2d611472288 (diff) | |
| download | django-rest-framework-8fdf9250157cde2341ec9c86ead44b2ed1354aa2.tar.bz2 | |
Added tabs between object form and generic content form on PUT/PATCH form
Some extra behaviour to `BrowsableAPIRenderer` to handle PATCH form.
Added PATCH button on generic content PUT form.
Tabs between object form and generic content form on PUT/PATCH form wich are
both allways visible now.
Fix #570
Refs #591
Diffstat (limited to 'rest_framework/templates')
| -rw-r--r-- | rest_framework/templates/rest_framework/base.html | 63 | ||||
| -rw-r--r-- | rest_framework/templates/rest_framework/form.html | 13 | 
2 files changed, 53 insertions, 23 deletions
diff --git a/rest_framework/templates/rest_framework/base.html b/rest_framework/templates/rest_framework/base.html index 8d807574..87e5dc04 100644 --- a/rest_framework/templates/rest_framework/base.html +++ b/rest_framework/templates/rest_framework/base.html @@ -147,32 +147,49 @@                  </div>                  {% endif %} -                {% if put_form %} +                {% if 'PUT' in allowed_methods or 'PATCH' in allowed_methods %}                  <div class="well"> -                    <form action="{{ request.get_full_path }}" method="POST" {% if put_form.is_multipart %}enctype="multipart/form-data"{% endif %} class="form-horizontal"> -                        <fieldset> -                            <input type="hidden" name="{{ api_settings.FORM_METHOD_OVERRIDE }}" value="PUT" /> -                            {% csrf_token %} -                            {{ put_form.non_field_errors }} -                            {% for field in put_form %} -                                <div class="control-group"> <!--{% if field.errors %}error{% endif %}--> -                                    {{ field.label_tag|add_class:"control-label" }} -                                    <div class="controls"> -                                        {{ field }} -                                        <span class='help-inline'>{{ field.help_text }}</span> -                                        <!--{{ field.errors|add_class:"help-block" }}--> -                                    </div> -                                </div> -                            {% endfor %} -                            <div class="form-actions"> -                                <button class="btn btn-primary js-tooltip" title="Make a PUT request on the {{ name }} resource">PUT</button> -                            </div> - -                        </fieldset> -                    </form> +                    <ul class="nav nav-pills" id="form-switcher"> +                        {% if put_form %} +                        <li><a href="#object-form" data-toggle="pill">Object form</a></li> +                        {% endif %} +                        <li><a href="#generic-content-form" data-toggle="pill">Generic content form</a></li> +                    </ul> +                    <div class="tab-content"> +                        {% if put_form %} +                        <div class="tab-pane" id="object-form"> +                            {% with form=put_form %} +                                <form action="{{ request.get_full_path }}" method="POST" {% if form.is_multipart %}enctype="multipart/form-data"{% endif %} class="form-horizontal"> +                                    <fieldset> +                                        {% include "rest_framework/form.html" %} +                                        <div class="form-actions"> +                                            <button class="btn btn-primary js-tooltip" name="{{ api_settings.FORM_METHOD_OVERRIDE }}" value="PUT" title="Make a PUT request on the {{ name }} resource">PUT</button> +                                        </div> +                                    </fieldset> +                                </form> +                            {% endwith %} +                        </div> +                        {% endif %} +                        <div class="tab-pane" id="generic-content-form"> +                            {% with form=generic_content_form %} +                                <form action="{{ request.get_full_path }}" method="POST" {% if form.is_multipart %}enctype="multipart/form-data"{% endif %} class="form-horizontal"> +                                    <fieldset> +                                        {% include "rest_framework/form.html" %} +                                        <div class="form-actions"> +                                            {% if 'PUT' in allowed_methods %} +                                            <button class="btn btn-primary js-tooltip" name="{{ api_settings.FORM_METHOD_OVERRIDE }}" value="PUT" title="Make a PUT request on the {{ name }} resource">PUT</button> +                                            {% endif %} +                                            {% if 'PATCH' in allowed_methods %} +                                            <button class="btn btn-primary js-tooltip" name="{{ api_settings.FORM_METHOD_OVERRIDE }}" value="PATCH" title="Make a PUT request on the {{ name }} resource">PATCH</button> +                                            {% endif %} +                                        </div> +                                    </fieldset> +                                </form> +                            {% endwith %} +                        </div> +                    </div>                  </div>                  {% endif %} -              {% endif %}          </div> diff --git a/rest_framework/templates/rest_framework/form.html b/rest_framework/templates/rest_framework/form.html new file mode 100644 index 00000000..dc7acc70 --- /dev/null +++ b/rest_framework/templates/rest_framework/form.html @@ -0,0 +1,13 @@ +{% load rest_framework %} +{% csrf_token %} +{{ form.non_field_errors }} +{% for field in form %} +    <div class="control-group"> <!--{% if field.errors %}error{% endif %}--> +        {{ field.label_tag|add_class:"control-label" }} +        <div class="controls"> +            {{ field }} +            <span class="help-inline">{{ field.help_text }}</span> +            <!--{{ field.errors|add_class:"help-block" }}--> +        </div> +    </div> +{% endfor %}  | 
