aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/templates
diff options
context:
space:
mode:
authorMichael Elovskikh2013-02-15 14:41:12 +0600
committerMichael Elovskikh2013-02-15 14:41:12 +0600
commit8fdf9250157cde2341ec9c86ead44b2ed1354aa2 (patch)
treee4c6504712720b8168ac462d1ebb4feffdbd3304 /rest_framework/templates
parentde029561d0cbb090c0d704811551b2d611472288 (diff)
downloaddjango-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.html63
-rw-r--r--rest_framework/templates/rest_framework/form.html13
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 %}