This commit is contained in:
Daniel Ryan 2014-10-17 14:56:04 +00:00
commit 4fd458f625
9 changed files with 73 additions and 925 deletions

View File

@ -162,6 +162,10 @@ class Field(object):
attrs = {} attrs = {}
if 'id' not in self.widget.attrs: if 'id' not in self.widget.attrs:
attrs['id'] = self._name attrs['id'] = self._name
if 'class' not in self.widget.attrs:
attrs['class'] = 'form-control'
elif attrs['class'].find('form-control') == -1:
attrs['class'] += ' form-control'
return self.widget.render(self._name, self._value, attrs=attrs) return self.widget.render(self._name, self._value, attrs=attrs)

View File

@ -10,12 +10,13 @@ a single block in the template.
background: transparent; background: transparent;
border-top-color: transparent; border-top-color: transparent;
padding-top: 0; padding-top: 0;
text-align: right;
} }
.navbar-inverse .brand a { .navbar-inverse .navbar-brand a {
color: #999999; color: #999999;
} }
.navbar-inverse .brand:hover a { .navbar-inverse .navbar-brand:hover a {
color: white; color: white;
text-decoration: none; text-decoration: none;
} }
@ -29,7 +30,7 @@ a single block in the template.
z-index: 3; z-index: 3;
} }
.navbar .navbar-inner { .navbar-inverse {
background: #2C2C2C; background: #2C2C2C;
color: white; color: white;
border: none; border: none;
@ -37,7 +38,7 @@ a single block in the template.
border-radius: 0px; border-radius: 0px;
} }
.navbar .navbar-inner .nav li, .navbar .navbar-inner .nav li a, .navbar .navbar-inner .brand:hover { .navbar .navbar-nav li, .navbar .navbar-nav li a, .navbar .navbar-brand:hover {
color: white; color: white;
} }
@ -45,11 +46,11 @@ a single block in the template.
background: #2C2C2C; background: #2C2C2C;
} }
.navbar .navbar-inner .dropdown-menu li a, .navbar .navbar-inner .dropdown-menu li { .navbar .dropdown-menu li a, .navbar .dropdown-menu li {
color: #A30000; color: #A30000;
} }
.navbar .navbar-inner .dropdown-menu li a:hover { .navbar .dropdown-menu li a:hover {
background: #EEEEEE; background: #EEEEEE;
color: #C20000; color: #C20000;
} }
@ -61,11 +62,6 @@ html {
background: none; background: none;
} }
body, .navbar .navbar-inner .container-fluid {
max-width: 1150px;
margin: 0 auto;
}
body { body {
background: url("../img/grid.png") repeat-x; background: url("../img/grid.png") repeat-x;
background-attachment: fixed; background-attachment: fixed;

File diff suppressed because one or more lines are too long

View File

@ -36,6 +36,10 @@ ul.breadcrumb {
margin: 80px 0 0 0; margin: 80px 0 0 0;
} }
.container ul.breadcrumb {
margin-top: 0;
}
form select, form input, form textarea { form select, form input, form textarea {
width: 90%; width: 90%;
} }

View File

@ -5,14 +5,14 @@
<html> <html>
<head> <head>
{% block head %} {% block head %}
{% block meta %} {% block meta %}
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="robots" content="NONE,NOARCHIVE" /> <meta name="robots" content="NONE,NOARCHIVE" />
{% endblock %} {% endblock %}
<title>{% block title %}Django REST framework{% endblock %}</title> <title>{% block title %}Django REST framework{% endblock %}</title>
{% block style %} {% block style %}
{% block bootstrap_theme %} {% block bootstrap_theme %}
<link rel="stylesheet" type="text/css" href="{% static "rest_framework/css/bootstrap.min.css" %}"/> <link rel="stylesheet" type="text/css" href="{% static "rest_framework/css/bootstrap.min.css" %}"/>
@ -21,49 +21,51 @@
<link rel="stylesheet" type="text/css" href="{% static "rest_framework/css/prettify.css" %}"/> <link rel="stylesheet" type="text/css" href="{% static "rest_framework/css/prettify.css" %}"/>
<link rel="stylesheet" type="text/css" href="{% static "rest_framework/css/default.css" %}"/> <link rel="stylesheet" type="text/css" href="{% static "rest_framework/css/default.css" %}"/>
{% endblock %} {% endblock %}
{% endblock %} {% endblock %}
</head> </head>
{% block body %} {% block body %}
<body class="{% block bodyclass %}{% endblock %} container"> <body class="{% block bodyclass %}{% endblock %}">
<div class="wrapper"> <div class="wrapper">
{% block navbar %} {% block navbar %}
<div class="navbar {% block bootstrap_navbar_variant %}navbar-inverse{% endblock %}"> <div class="navbar navbar-static-top {% block bootstrap_navbar_variant %}navbar-inverse{% endblock %}">
<div class="navbar-inner"> <div class="container">
<div class="container-fluid"> <span>
<span> {% block branding %}
{% block branding %} <a class='navbar-brand' rel="nofollow" href='http://www.django-rest-framework.org'>
<a class='brand' rel="nofollow" href='http://www.django-rest-framework.org'> Django REST framework <span class="version">{{ version }}</span>
Django REST framework <span class="version">{{ version }}</span> </a>
</a> {% endblock %}
{% endblock %} </span>
</span> <ul class="nav navbar-nav pull-right">
<ul class="nav pull-right"> {% block userlinks %}
{% block userlinks %} {% if user.is_authenticated %}
{% if user.is_authenticated %} {% optional_logout request user %}
{% optional_logout request user %} {% else %}
{% else %} {% optional_login request %}
{% optional_login request %} {% endif %}
{% endif %} {% endblock %}
{% endblock %} </ul>
</ul>
</div>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}
<div class="container">
{% block breadcrumbs %} {% block breadcrumbs %}
<ul class="breadcrumb"> <ul class="breadcrumb">
{% for breadcrumb_name, breadcrumb_url in breadcrumblist %} {% for breadcrumb_name, breadcrumb_url in breadcrumblist %}
{% if forloop.last %}
<li class="active">{{ breadcrumb_name }}</li>
{% else %}
<li> <li>
<a href="{{ breadcrumb_url }}" {% if forloop.last %}class="active"{% endif %}> <a href="{{ breadcrumb_url }}">
{{ breadcrumb_name }} {{ breadcrumb_name }}
</a> </a>
{% if not forloop.last %}<span class="divider">&rsaquo;</span>{% endif %}
</li> </li>
{% endif %}
{% endfor %} {% endfor %}
</ul> </ul>
{% endblock %} {% endblock %}
@ -77,7 +79,7 @@
<div class="btn-group format-selection"> <div class="btn-group format-selection">
<a class="btn btn-primary js-tooltip" href='{{ request.get_full_path }}' <a class="btn btn-primary js-tooltip" href='{{ request.get_full_path }}'
rel="nofollow" title="Make a GET request on the {{ name }} resource">GET</a> rel="nofollow" title="Make a GET request on the {{ name }} resource">GET</a>
<button class="btn btn-primary dropdown-toggle js-tooltip" data-toggle="dropdown" <button class="btn btn-primary dropdown-toggle js-tooltip" data-toggle="dropdown"
title="Specify a format for the GET request"> title="Specify a format for the GET request">
<span class="caret"></span> <span class="caret"></span>
@ -136,7 +138,7 @@
</div> </div>
{% if display_edit_forms %} {% if display_edit_forms %}
{% if post_form or raw_data_post_form %} {% if post_form or raw_data_post_form %}
<div {% if post_form %}class="tabbable"{% endif %}> <div {% if post_form %}class="tabbable"{% endif %}>
{% if post_form %} {% if post_form %}
@ -182,7 +184,7 @@
</div> </div>
</div> </div>
{% endif %} {% endif %}
{% if put_form or raw_data_put_form or raw_data_patch_form %} {% if put_form or raw_data_put_form or raw_data_patch_form %}
<div {% if put_form %}class="tabbable"{% endif %}> <div {% if put_form %}class="tabbable"{% endif %}>
{% if put_form %} {% if put_form %}
@ -238,7 +240,8 @@
{% endif %} {% endif %}
</div> </div>
<!-- END Content --> <!-- END Content -->
</div><!-- /.container -->
<footer> <footer>
{% block footer %} {% block footer %}
<p>Sponsored by <a href="http://dabapps.com/">DabApps</a>.</p> <p>Sponsored by <a href="http://dabapps.com/">DabApps</a>.</p>

View File

@ -3,9 +3,9 @@
{{ form.non_field_errors }} {{ form.non_field_errors }}
{% for field in form.fields.values %} {% for field in form.fields.values %}
{% if not field.read_only %} {% if not field.read_only %}
<div class="control-group {% if field.errors %}error{% endif %}"> <div class="form-group {% if field.errors %}has-error{% endif %}">
{{ field.label_tag|add_class:"control-label" }} {{ field.label_tag|add_class:"control-label col-md-3" }}
<div class="controls"> <div class="controls col-md-9">
{{ field.widget_html }} {{ field.widget_html }}
{% if field.help_text %}<span class="help-block">{{ field.help_text }}</span>{% endif %} {% if field.help_text %}<span class="help-block">{{ field.help_text }}</span>{% endif %}
{% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %} {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}

View File

@ -7,62 +7,39 @@
<body class="container"> <body class="container">
<div class="container-fluid" style="margin-top: 30px"> <div class="container-fluid" style="margin-top: 30px">
<div class="row-fluid"> <div class="row">
<div class="well" style="width: 320px; margin-left: auto; margin-right: auto"> <div class="well" style="width: 320px; margin-left: auto; margin-right: auto">
<div class="row-fluid"> <div class="row">
<div> <div>
{% block branding %}<h3 style="margin: 0 0 20px;">Django REST framework</h3>{% endblock %} {% block branding %}<h3 style="margin: 0 0 20px;">Django REST framework</h3>{% endblock %}
</div> </div>
</div><!-- /row fluid --> </div><!-- /row fluid -->
<div class="row-fluid"> <div class="row">
<div> <div>
<form action="{% url 'rest_framework:login' %}" role="form" method="post"> <form action="{% url 'rest_framework:login' %}" class=" form-inline" method="post">
{% csrf_token %} {% csrf_token %}
<div id="div_id_username" <div id="div_id_username" class="clearfix form-group">
class="clearfix control-group {% if form.username.errors %}error{% endif %}">
<div class="controls"> <div class="controls">
<Label class="span4">Username:</label> <Label class="col-md-4">Username:</label>
<input style="height: 25px" type="text" name="username" maxlength="100" <input style="height: 25px" type="text" name="username" maxlength="100" autocapitalize="off" autocorrect="off" class="textinput textInput" id="id_username">
autocapitalize="off"
autocorrect="off" class="span12 textinput textInput"
id="id_username" required
{% if form.username.value %}value="{{ form.username.value }}"{% endif %}>
{% if form.username.errors %}
<p class="text-error">
{{ form.username.errors|striptags }}
</p>
{% endif %}
</div> </div>
</div> </div>
<div id="div_id_password" <div id="div_id_password" class="clearfix form-group">
class="clearfix control-group {% if form.password.errors %}error{% endif %}"> <div class="controls">
<div class="controls"> <Label class="col-md-4">Password:</label>
<Label class="span4">Password:</label> <input style="height: 25px" type="password" name="password" maxlength="100" autocapitalize="off" autocorrect="off" class="textinput textInput" id="id_password">
<input style="height: 25px" type="password" name="password" maxlength="100"
autocapitalize="off" autocorrect="off" class="span12 textinput textInput"
id="id_password" required>
{% if form.password.errors %}
<p class="text-error">
{{ form.password.errors|striptags }}
</p>
{% endif %}
</div> </div>
</div> </div>
<input type="hidden" name="next" value="{{ next }}" /> <input type="hidden" name="next" value="{{ next }}" />
{% if form.non_field_errors %}
{% for error in form.non_field_errors %}
<div class="well well-small text-error" style="border: none">{{ error }}</div>
{% endfor %}
{% endif %}
<div class="form-actions-no-box"> <div class="form-actions-no-box">
<input type="submit" name="submit" value="Log in" class="btn btn-primary" id="submit-id-submit"> <input type="submit" name="submit" value="Log in" class="btn btn-primary" id="submit-id-submit">
</div> </div>
</form> </form>
</div> </div>
</div><!-- /.row-fluid --> </div><!-- /.row -->
</div><!--/.well--> </div><!--/.well-->
</div><!-- /.row-fluid --> </div><!-- /.row -->
</div><!-- /.container-fluid --> </div><!-- /.container-fluid -->
</body> </body>
{% endblock %} {% endblock %}

View File

@ -2,9 +2,9 @@
{% csrf_token %} {% csrf_token %}
{{ form.non_field_errors }} {{ form.non_field_errors }}
{% for field in form %} {% for field in form %}
<div class="control-group"> <div class="form-group">
{{ field.label_tag|add_class:"control-label" }} {{ field.label_tag|add_class:"control-label col-md-3" }}
<div class="controls"> <div class="controls col-md-9">
{{ field }} {{ field }}
<span class="help-block">{{ field.help_text }}</span> <span class="help-block">{{ field.help_text }}</span>
</div> </div>

View File

@ -142,7 +142,7 @@ class SessionAuthTests(TestCase):
cf. [#1810](https://github.com/tomchristie/django-rest-framework/pull/1810) cf. [#1810](https://github.com/tomchristie/django-rest-framework/pull/1810)
""" """
response = self.csrf_client.get('/auth/login/') response = self.csrf_client.get('/auth/login/')
self.assertContains(response, '<Label class="span4">Username:</label>') self.assertContains(response, '<Label class="col-md-4">Username:</label>')
def test_post_form_session_auth_failing_csrf(self): def test_post_form_session_auth_failing_csrf(self):
""" """