get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/1516037/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 1516037,
    "url": "http://patchwork.ozlabs.org/api/patches/1516037/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/patchwork/patch/20210811213705.36293-2-stephen@that.guru/",
    "project": {
        "id": 16,
        "url": "http://patchwork.ozlabs.org/api/projects/16/?format=api",
        "name": "Patchwork",
        "link_name": "patchwork",
        "list_id": "patchwork.lists.ozlabs.org",
        "list_email": "patchwork@lists.ozlabs.org",
        "web_url": "http://jk.ozlabs.org/projects/patchwork/",
        "scm_url": "git://github.com/getpatchwork/patchwork",
        "webscm_url": "https://github.com/getpatchwork/patchwork",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20210811213705.36293-2-stephen@that.guru>",
    "list_archive_url": null,
    "date": "2021-08-11T21:36:47",
    "name": "[RFC,01/19] templates: Use standard indentation",
    "commit_ref": null,
    "pull_url": null,
    "state": "rfc",
    "archived": false,
    "hash": "ea6140b2a4d3143b9059d1a3f057aea7027e4dc6",
    "submitter": {
        "id": 69991,
        "url": "http://patchwork.ozlabs.org/api/people/69991/?format=api",
        "name": "Stephen Finucane",
        "email": "stephen@that.guru"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/patchwork/patch/20210811213705.36293-2-stephen@that.guru/mbox/",
    "series": [
        {
            "id": 257699,
            "url": "http://patchwork.ozlabs.org/api/series/257699/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/patchwork/list/?series=257699",
            "date": "2021-08-11T21:36:49",
            "name": "Integrate Bulma",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/257699/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/1516037/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/1516037/checks/",
    "tags": {},
    "related": [
        {
            "id": 1523324,
            "url": "http://patchwork.ozlabs.org/api/patches/1523324/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/patchwork/patch/20210901165756.181192-2-stephen@that.guru/",
            "msgid": "<20210901165756.181192-2-stephen@that.guru>",
            "list_archive_url": null,
            "date": "2021-09-01T16:57:38",
            "name": "[RFC,v2,01/19] templates: Use standard indentation",
            "mbox": "http://patchwork.ozlabs.org/project/patchwork/patch/20210901165756.181192-2-stephen@that.guru/mbox/"
        }
    ],
    "headers": {
        "Return-Path": "\n <patchwork-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "patchwork@lists.ozlabs.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "patchwork@lists.ozlabs.org"
        ],
        "Authentication-Results": [
            "ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=112.213.38.117; helo=lists.ozlabs.org;\n envelope-from=patchwork-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=<UNKNOWN>)",
            "ozlabs.org;\n\tdkim=fail reason=\"key not found in DNS\" header.d=that.guru\n header.i=@that.guru header.a=rsa-sha256 header.s=x header.b=jxDDgzUE;\n\tdkim-atps=neutral",
            "lists.ozlabs.org;\n\tdkim=fail reason=\"key not found in DNS\" header.d=that.guru\n header.i=@that.guru header.a=rsa-sha256 header.s=x header.b=jxDDgzUE;\n\tdkim-atps=neutral",
            "lists.ozlabs.org;\n spf=none (no SPF record) smtp.mailfrom=that.guru\n (client-ip=136.175.108.45; helo=mail-108-mta45.mxroute.com;\n envelope-from=stephen@that.guru; receiver=<UNKNOWN>)",
            "lists.ozlabs.org;\n dkim=fail reason=\"key not found in DNS\" header.d=that.guru\n header.i=@that.guru\n header.a=rsa-sha256 header.s=x header.b=jxDDgzUE;\n dkim-atps=neutral"
        ],
        "Received": [
            "from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (4096 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 4GlNTg1JkPz9sXN\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 12 Aug 2021 07:37:59 +1000 (AEST)",
            "from boromir.ozlabs.org (localhost [IPv6:::1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4GlNTf6l1vz3bYx\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 12 Aug 2021 07:37:58 +1000 (AEST)",
            "from mail-108-mta45.mxroute.com (mail-108-mta45.mxroute.com\n [136.175.108.45])\n (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n (No client certificate requested)\n by lists.ozlabs.org (Postfix) with ESMTPS id 4GlNT25jyTz30Fg\n for <patchwork@lists.ozlabs.org>; Thu, 12 Aug 2021 07:37:25 +1000 (AEST)",
            "from filter004.mxroute.com ([149.28.56.236] filter004.mxroute.com)\n (Authenticated sender: mN4UYu2MZsgR)\n by mail-108-mta45.mxroute.com (ZoneMTA) with ESMTPSA id\n 17b3725f42d00074ba.002\n for <patchwork@lists.ozlabs.org>\n (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256);\n Wed, 11 Aug 2021 21:37:19 +0000"
        ],
        "X-Zone-Loop": "ec6a1962c5512f3e1901efa33cafb7ef90dd6ee7a30e",
        "X-Originating-IP": "[149.28.56.236]",
        "DKIM-Signature": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=that.guru;\n s=x;\n h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:\n In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID:\n Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n List-Post:List-Owner:List-Archive;\n bh=wgao7Kc1wz+7Imp/FJKiY2X03wka3d4/PhDJLtV1eR0=; b=jxDDgzUE1lbKz/piOgV9Xzz60U\n t/53L5y+S9vd2m1kgcixx0GnIgY0/KyooeQSurFrQsj8s4Pkp8OnfmKVtsLe4zXQIS8UJGuI7Z4IQ\n puANyEf0R0RU8MuOjKQYjBdO0rR4Kn+VMvJpRej2VwOlqzpa9hhg7quQ0gxm67GN27EUT4yq98Xrb\n LDy7LP0gXqA4GERJFTmKGL5aGyAq57fNFIPTRbIvLl8XDj8LoCyVbcgnWa4X0qGMMHWcFTd0tjthq\n GMzNo+tsEsBAv7xKOSRoWHDqfwAfblR8KGVzcBBHA1ImjHMmwYwrPUK7gvY3LIAlQECOOtXeJRa+7\n k0RsdAFw==;",
        "From": "Stephen Finucane <stephen@that.guru>",
        "To": "patchwork@lists.ozlabs.org",
        "Subject": "[RFC PATCH 01/19] templates: Use standard indentation",
        "Date": "Wed, 11 Aug 2021 22:36:47 +0100",
        "Message-Id": "<20210811213705.36293-2-stephen@that.guru>",
        "X-Mailer": "git-send-email 2.31.1",
        "In-Reply-To": "<20210811213705.36293-1-stephen@that.guru>",
        "References": "<20210811213705.36293-1-stephen@that.guru>",
        "MIME-Version": "1.0",
        "X-AuthUser": "stephen@that.guru",
        "X-Zone-Spam-Resolution": "no action",
        "X-Zone-Spam-Status": "No, score=0.9, required=15, tests=[ARC_NA=0,\n MID_CONTAINS_FROM=1, FROM_HAS_DN=0, RCPT_COUNT_THREE=0, TO_DN_SOME=0,\n MIME_GOOD=-0.1, FROM_EQ_ENVFROM=0, MIME_TRACE=0, RCVD_COUNT_ZERO=0,\n NEURAL_SPAM=0]",
        "X-BeenThere": "patchwork@lists.ozlabs.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "Patchwork development <patchwork.lists.ozlabs.org>",
        "List-Unsubscribe": "<https://lists.ozlabs.org/options/patchwork>,\n <mailto:patchwork-request@lists.ozlabs.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.ozlabs.org/pipermail/patchwork/>",
        "List-Post": "<mailto:patchwork@lists.ozlabs.org>",
        "List-Help": "<mailto:patchwork-request@lists.ozlabs.org?subject=help>",
        "List-Subscribe": "<https://lists.ozlabs.org/listinfo/patchwork>,\n <mailto:patchwork-request@lists.ozlabs.org?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "base64",
        "Errors-To": "patchwork-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org",
        "Sender": "\"Patchwork\"\n <patchwork-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>"
    },
    "content": "Use a standard two space indentation across files, rewrapping some stuff\nas we go along.\n\nSigned-off-by: Stephen Finucane <stephen@that.guru>\n---\n patchwork/templates/patchwork/about.html      |   6 +-\n patchwork/templates/patchwork/bundle.html     |  37 +-\n patchwork/templates/patchwork/bundles.html    |  84 +--\n .../templates/patchwork/confirm-error.html    |  12 +-\n patchwork/templates/patchwork/list.html       |  12 +-\n patchwork/templates/patchwork/login.html      |  40 +-\n .../templates/patchwork/mail-settings.html    |  47 +-\n patchwork/templates/patchwork/mail.html       |  45 +-\n .../templates/patchwork/optin-request.html    |  50 +-\n patchwork/templates/patchwork/optin.html      |  21 +-\n .../templates/patchwork/optout-request.html   |  52 +-\n patchwork/templates/patchwork/optout.html     |  28 +-\n .../patchwork/partials/download-buttons.html  |  34 +-\n .../templates/patchwork/partials/filters.html |  83 +--\n .../patchwork/partials/pagination.html        |  42 +-\n .../patchwork/partials/patch-list.html        | 479 +++++++++---------\n patchwork/templates/patchwork/profile.html    | 271 +++++-----\n patchwork/templates/patchwork/project.html    |  98 ++--\n patchwork/templates/patchwork/projects.html   |  16 +-\n .../patchwork/registration-confirm.html       |   9 +-\n .../templates/patchwork/registration.html     | 160 +++---\n patchwork/templates/patchwork/submission.html | 445 ++++++++--------\n patchwork/templates/patchwork/todo-list.html  |   8 +-\n patchwork/templates/patchwork/todo-lists.html |  31 +-\n .../patchwork/user-link-confirm.html          |  11 +-\n patchwork/templates/patchwork/user-link.html  |  36 +-\n templates/404.html                            |   2 -\n templates/base.html                           | 224 ++++----\n .../registration/password_change_done.html    |   2 -\n .../registration/password_change_form.html    |  52 +-\n .../registration/password_reset_complete.html |   3 +-\n .../registration/password_reset_confirm.html  |  62 ++-\n .../registration/password_reset_done.html     |  14 +-\n .../registration/password_reset_email.html    |   2 +-\n .../registration/password_reset_form.html     |  52 +-\n 35 files changed, 1290 insertions(+), 1280 deletions(-)",
    "diff": "diff --git patchwork/templates/patchwork/about.html patchwork/templates/patchwork/about.html\nindex 210e9513..43f3110b 100644\n--- patchwork/templates/patchwork/about.html\n+++ patchwork/templates/patchwork/about.html\n@@ -48,8 +48,7 @@\n     <ul class=\"list-group\">\n       <li class=\"list-group-item\">\n         REST\n-        <span class=\"glyphicon glyphicon-question-sign\" title=\"The REST\n-          API\"></span>\n+        <span class=\"glyphicon glyphicon-question-sign\" title=\"The REST API\"></span>\n         {% if enabled_apis.rest %}\n         <span class=\"label label-success pull-right\">enabled</span>\n         {% else %}\n@@ -58,8 +57,7 @@\n       </li>\n       <li class=\"list-group-item\">\n         XML-RPC\n-        <span class=\"glyphicon glyphicon-question-sign\" title=\"The XML-RPC\n-          API\"></span>\n+        <span class=\"glyphicon glyphicon-question-sign\" title=\"The XML-RPC API\"></span>\n         {% if enabled_apis.xmlrpc %}\n         <span class=\"label label-success pull-right\">enabled</span>\n         {% else %}\ndiff --git patchwork/templates/patchwork/bundle.html patchwork/templates/patchwork/bundle.html\nindex 411c18b5..fc87eac4 100644\n--- patchwork/templates/patchwork/bundle.html\n+++ patchwork/templates/patchwork/bundle.html\n@@ -4,37 +4,34 @@\n {% load static %}\n \n {% block headers %}\n-  <script src=\"{% static \"js/jquery.tablednd.js\" %}\"></script>\n-  <script src=\"{% static \"js/bundle.js\" %}\"></script>\n+    <script src=\"{% static \"js/jquery.tablednd.js\" %}\"></script>\n+    <script src=\"{% static \"js/bundle.js\" %}\"></script>\n {% endblock %}\n-{% block title %}{{project.name}}{% endblock %}\n+{% block title %}{{ project.name }}{% endblock %}\n \n {% block body %}\n <h1>Bundle</h1>\n \n-<p>This bundle contains patches for the {{ bundle.project.linkname }}\n-project.</p>\n+<p>This bundle contains patches for the {{ bundle.project.linkname }} project.</p>\n \n <p><a href=\"{% url 'bundle-mbox' username=bundle.owner.username bundlename=bundle.name %}\">Download bundle as mbox</a></p>\n \n {% if bundleform %}\n <form method=\"post\">\n- {% csrf_token %}\n- <input type=\"hidden\" name=\"form\" value=\"bundle\"/>\n-<table class=\"form\">\n-\n- <tr>\n-  <th colspan=\"2\" class=\"headerrow\">Bundle settings</th>\n- </tr>\n-\n+  {% csrf_token %}\n+  <input type=\"hidden\" name=\"form\" value=\"bundle\"/>\n+  <table class=\"form\">\n+    <tr>\n+      <th colspan=\"2\" class=\"headerrow\">Bundle settings</th>\n+    </tr>\n {{ bundleform }}\n- <tr>\n-  <td colspan=\"2\" class=\"submitrow\">\n-   <input type=\"submit\" name=\"action\" value=\"Update\"/>\n-   <input type=\"submit\" name=\"action\" value=\"Delete\"/>\n-  </td>\n- </tr>\n-</table>\n+    <tr>\n+      <td colspan=\"2\" class=\"submitrow\">\n+        <input type=\"submit\" name=\"action\" value=\"Update\"/>\n+        <input type=\"submit\" name=\"action\" value=\"Delete\"/>\n+      </td>\n+    </tr>\n+  </table>\n </form>\n \n <div style=\"clear: both; padding: 1em;\"></div>\ndiff --git patchwork/templates/patchwork/bundles.html patchwork/templates/patchwork/bundles.html\nindex 1bb3b0da..cc2ebf90 100644\n--- patchwork/templates/patchwork/bundles.html\n+++ patchwork/templates/patchwork/bundles.html\n@@ -10,53 +10,55 @@\n \n {% if bundles %}\n <table class=\"bundlelist\">\n- <tr>\n-  <th>Bundle</th>\n-  <th>Project</th>\n-  <th>Public</th>\n-  <th>Patches</th>\n-  <th>Download</th>\n-  <th>Delete</th>\n- </tr>\n+  <tr>\n+    <th>Bundle</th>\n+    <th>Project</th>\n+    <th>Public</th>\n+    <th>Patches</th>\n+    <th>Download</th>\n+    <th>Delete</th>\n+  </tr>\n {% for bundle in bundles %}\n- <tr>\n-  <td><a href=\"{{ bundle.get_absolute_url }}\">{{ bundle.name }}</a></td>\n-  <td>\n-   <a href=\"{% url 'project-detail' project_id=bundle.project.linkname %}\">\n-    {{ bundle.project.linkname }}\n-   </a>\n-  </td>\n-  <td style=\"text-align: center;\">\n-   {% if bundle.public %}\n-    <span class=\"glyphicon glyphicon-ok\"></span>\n-   {% else %}\n-    <span class=\"glyphicon glyphicon-remove\"></span>\n-   {% endif %}\n-  </td>\n-  <td style=\"text-align: right\">{{ bundle.patches.count }}</td>\n-  <td style=\"text-align: center;\"><a href=\"{{ bundle.get_mbox_url }}\"\n-   ><span class=\"glyphicon glyphicon-download-alt\"></span></a></td>\n-  <td style=\"text-align: center;\">\n-   <form method=\"post\"\n-    onsubmit=\"return confirm_delete('bundle', '{{bundle.name|escapejs}}');\">\n-    {% csrf_token %}\n-    {{ bundle.delete_form.as_p }}\n-    <button type=\"submit\" style=\"background: transparent; border: 0px; padding: 0; outline: 0;\">\n-     <span class=\"glyphicon glyphicon-remove\"></span>\n-    </button>\n-   </form>\n-  </td>\n+  <tr>\n+    <td><a href=\"{{ bundle.get_absolute_url }}\">{{ bundle.name }}</a></td>\n+    <td>\n+      <a href=\"{% url 'project-detail' project_id=bundle.project.linkname %}\">\n+        {{ bundle.project.linkname }}\n+      </a>\n+    </td>\n+    <td style=\"text-align: center;\">\n+      {% if bundle.public %}\n+        <span class=\"glyphicon glyphicon-ok\"></span>\n+      {% else %}\n+        <span class=\"glyphicon glyphicon-remove\"></span>\n+      {% endif %}\n+    </td>\n+    <td style=\"text-align: right\">{{ bundle.patches.count }}</td>\n+    <td style=\"text-align: center;\"><a href=\"{{ bundle.get_mbox_url }}\"\n+      ><span class=\"glyphicon glyphicon-download-alt\"></span></a></td>\n+    <td style=\"text-align: center;\">\n+      <form method=\"post\"\n+        onsubmit=\"return confirm_delete('bundle', '{{ bundle.name|escapejs }}');\">\n+        {% csrf_token %}\n+        {{ bundle.delete_form.as_p }}\n+        <button type=\"submit\" style=\"background: transparent; border: 0px; padding: 0; outline: 0;\">\n+          <span class=\"glyphicon glyphicon-remove\"></span>\n+        </button>\n+      </form>\n+    </td>\n \n- </tr>\n+  </tr>\n {% endfor %}\n </table>\n {% endif %}\n \n-<p>Bundles are groups of related patches. You can create bundles by\n-selecting patches from a project, then using the 'create bundle' form\n-to give your bundle a name. Each bundle can be public or private; public\n-bundles are given a persistent URL, based you your username and the name\n-of the bundle. Private bundles are only visible to you.</p>\n+<p>\n+  Bundles are groups of related patches. You can create bundles by\n+  selecting patches from a project, then using the 'create bundle' form\n+  to give your bundle a name. Each bundle can be public or private; public\n+  bundles are given a persistent URL, based you your username and the name\n+  of the bundle. Private bundles are only visible to you.\n+</p>\n \n {% if not bundles %}\n <p>You have no bundles.</p>\ndiff --git patchwork/templates/patchwork/confirm-error.html patchwork/templates/patchwork/confirm-error.html\nindex 81292e27..b1ce42ee 100644\n--- patchwork/templates/patchwork/confirm-error.html\n+++ patchwork/templates/patchwork/confirm-error.html\n@@ -7,13 +7,17 @@\n {% block body %}\n \n {% if error == 'inactive' %}\n-<p>This confirmation has already been processed; you've probably visited this\n-page before.</p>\n+<p>\n+  This confirmation has already been processed; you've probably visited this\n+  page before.\n+</p>\n {% endif %}\n \n {% if error == 'expired' %}\n-<p>The confirmation has expired. If you'd still like to perform the\n-{{conf.get_type_display}} process, you'll need to resubmit the request.</p>\n+<p>\n+  The confirmation has expired. If you'd still like to perform the\n+  {{ conf.get_type_display }} process, you'll need to resubmit the request.\n+</p>\n {% endif %}\n \n {% endblock %}\ndiff --git patchwork/templates/patchwork/list.html patchwork/templates/patchwork/list.html\nindex 5d3d82aa..5a9d9702 100644\n--- patchwork/templates/patchwork/list.html\n+++ patchwork/templates/patchwork/list.html\n@@ -3,17 +3,19 @@\n {% load person %}\n {% load static %}\n \n-{% block title %}{{project.name}}{% endblock %}\n+{% block title %}{{ project.name }}{% endblock %}\n {% block patch_active %}active{% endblock %}\n \n {% block body %}\n-\n {% if errors %}\n-<p>The following error{{ errors|length|pluralize:\" was,s were\" }} encountered\n-while updating patches:</p>\n+<p>\n+  The following error{{ errors|length|pluralize:\" was,s were\" }} encountered\n+  while updating patches:\n+</p>\n+\n <ul class=\"errorlist\">\n {% for error in errors %}\n- <li>{{ error }}</li>\n+  <li>{{ error }}</li>\n {% endfor %}\n </ul>\n {% endif %}\ndiff --git patchwork/templates/patchwork/login.html patchwork/templates/patchwork/login.html\nindex 46f77edf..86111342 100644\n--- patchwork/templates/patchwork/login.html\n+++ patchwork/templates/patchwork/login.html\n@@ -14,26 +14,24 @@\n {% block body %}\n <form method=\"post\">\n {% csrf_token %}\n-<table class=\"form loginform\">\n- <tr>\n-  <th colspan=\"2\" class=\"headerrow\">login</th>\n- </tr>\n- {% if error %}\n-  <tr>\n-   <td colspan=\"2\">{{ error }}</td>\n-  </tr>\n- {% endif %}\n- {{ form }}\n- <tr>\n-  <td class=\"submitrow\">\n-   <input type=\"submit\" value=\"Login\"/>\n-  </td>\n-  <td class=\"submitrow\">\n-   <a href=\"{% url 'password_reset' %}\">\n-     Forgot password?\n-   </a>\n-  </td>\n- </tr>\n-</table>\n+  <table class=\"form loginform\">\n+    <tr>\n+      <th colspan=\"2\" class=\"headerrow\">login</th>\n+    </tr>\n+{% if error %}\n+    <tr>\n+      <td colspan=\"2\">{{ error }}</td>\n+    </tr>\n+{% endif %}\n+{{ form }}\n+    <tr>\n+      <td class=\"submitrow\">\n+        <input type=\"submit\" value=\"Login\"/>\n+      </td>\n+      <td class=\"submitrow\">\n+        <a href=\"{% url 'password_reset' %}\">Forgot password?</a>\n+      </td>\n+    </tr>\n+  </table>\n </form>\n {% endblock %}\ndiff --git patchwork/templates/patchwork/mail-settings.html patchwork/templates/patchwork/mail-settings.html\nindex e35fa871..58f567ac 100644\n--- patchwork/templates/patchwork/mail-settings.html\n+++ patchwork/templates/patchwork/mail-settings.html\n@@ -4,33 +4,34 @@\n {% block heading %}Mail settings{% endblock %}\n \n {% block body %}\n-<p>Settings for <strong>{{email}}</strong>:</p>\n+<p>Settings for <strong>{{ email }}</strong>:</p>\n \n <table class=\"horizontal\">\n- <tr>\n-  <th>Opt-out list</th>\n+  <tr>\n+    <th>Opt-out list</th>\n {% if is_optout %}\n-  <td>Patchwork <strong>may not</strong> send automated notifications to\n-   this address.</td>\n-  <td>\n-   <form method=\"post\" action=\"{% url 'mail-optin' %}\">\n-    {% csrf_token %}\n-    <input type=\"hidden\" name=\"email\" value=\"{{email}}\"/>\n-    <input type=\"submit\" value=\"Opt-in\"/>\n-   </form>\n-  </td>\n+    <td>\n+      Patchwork <strong>may not</strong> send automated notifications to this address.\n+    </td>\n+    <td>\n+      <form method=\"post\" action=\"{% url 'mail-optin' %}\">\n+        {% csrf_token %}\n+        <input type=\"hidden\" name=\"email\" value=\"{{ email }}\"/>\n+        <input type=\"submit\" value=\"Opt-in\"/>\n+      </form>\n+    </td>\n {% else %}\n-  <td>Patchwork <strong>may</strong> send automated notifications to\n-   this address.</td>\n-  <td>\n-   <form method=\"post\" action=\"{% url 'mail-optout' %}\">\n-    {% csrf_token %}\n-    <input type=\"hidden\" name=\"email\" value=\"{{email}}\"/>\n-    <input type=\"submit\" value=\"Opt-out\"/>\n-   </form>\n-  </td>\n+    <td>\n+      Patchwork <strong>may</strong> send automated notifications to this address.\n+    </td>\n+    <td>\n+      <form method=\"post\" action=\"{% url 'mail-optout' %}\">\n+        {% csrf_token %}\n+        <input type=\"hidden\" name=\"email\" value=\"{{ email }}\"/>\n+        <input type=\"submit\" value=\"Opt-out\"/>\n+      </form>\n+    </td>\n {% endif %}\n- </tr>\n+  </tr>\n </table>\n-\n {% endblock %}\ndiff --git patchwork/templates/patchwork/mail.html patchwork/templates/patchwork/mail.html\nindex 1c6c0493..a2ad23d1 100644\n--- patchwork/templates/patchwork/mail.html\n+++ patchwork/templates/patchwork/mail.html\n@@ -4,35 +4,34 @@\n {% block heading %}Mail settings{% endblock %}\n \n {% block body %}\n-\n-<p>You can configure Patchwork to send you mail on certain events,\n-or block automated mail altogether. Enter your email address to\n-view or change your email settings.</p>\n+<p>\n+  You can configure Patchwork to send you mail on certain events,\n+  or block automated mail altogether. Enter your email address to\n+  view or change your email settings.\n+</p>\n \n <form method=\"post\">\n {% csrf_token %}\n <table class=\"form registerform\">\n {% if form.errors %}\n- <tr>\n-  <td colspan=\"2\" class=\"error\">\n-   There was an error accessing your mail settings:\n-  </td>\n- </tr>\n+  <tr>\n+    <td colspan=\"2\" class=\"error\">\n+      There was an error accessing your mail settings:\n+    </td>\n+  </tr>\n {% endif %}\n- <tr>\n-  <th>{{ form.email.label_tag }}</th>\n-  <td>\n-   {{form.email}}\n-   {{form.email.errors}}\n-  </td>\n- </tr>\n- <tr>\n-  <td colspan=\"2\" class=\"submitrow\">\n-   <input type=\"submit\" value=\"Access mail settings\"/>\n-  </td>\n- </tr>\n+  <tr>\n+    <th>{{ form.email.label_tag }}</th>\n+    <td>\n+      {{ form.email }}\n+      {{ form.email.errors }}\n+    </td>\n+  </tr>\n+  <tr>\n+    <td colspan=\"2\" class=\"submitrow\">\n+      <input type=\"submit\" value=\"Access mail settings\"/>\n+    </td>\n+  </tr>\n </table>\n </form>\n-\n-\n {% endblock %}\ndiff --git patchwork/templates/patchwork/optin-request.html patchwork/templates/patchwork/optin-request.html\nindex 90963e65..3384c462 100644\n--- patchwork/templates/patchwork/optin-request.html\n+++ patchwork/templates/patchwork/optin-request.html\n@@ -6,44 +6,50 @@\n {% block body %}\n {% if confirmation %}\n <p><strong>Opt-in confirmation email sent</strong></p>\n-<p>An opt-in confirmation mail has been sent to\n-<strong>{{confirmation.email}}</strong>, containing a link. Please click on\n-that link to confirm your opt-in.</p>\n+<p>\n+  An opt-in confirmation mail has been sent to\n+  <strong>{{ confirmation.email }}</strong>, containing a link. Please click on\n+  that link to confirm your opt-in.\n+</p>\n {% else %}\n {% if error %}\n-<p class=\"error\">{{error}}</p>\n+<p class=\"error\">{{ error }}</p>\n {% endif %}\n \n {% if form %}\n-<p>This form allows you to opt-in to automated email from Patchwork. Use\n-this if you have previously opted-out of Patchwork mail, but now want to\n-received notifications from Patchwork.</p>\n-When you submit it, an email will be sent to your address with a link to click\n-to finalise the opt-in. Patchwork does this to prevent someone opting you in\n-without your consent.</p>\n+<p>\n+  This form allows you to opt-in to automated email from Patchwork. Use\n+  this if you have previously opted-out of Patchwork mail, but now want to\n+  received notifications from Patchwork.\n+</p>\n+<p>\n+  When you submit it, an email will be sent to your address with a link to\n+  click to finalise the opt-in. Patchwork does this to prevent someone opting\n+  you in without your consent.\n+</p>\n+\n <form method=\"post\" action=\"\">\n-{% csrf_token %}\n-{{form.email.errors}}\n-<div style=\"padding: 0.5em 1em 2em;\">\n-{{form.email.label_tag}}: {{form.email}}\n-</div>\n-<input type=\"submit\" value=\"Send me an opt-in link\">\n+  {% csrf_token %}\n+  {{ form.email.errors }}\n+  <div style=\"padding: 0.5em 1em 2em;\">\n+    {{ form.email.label_tag }}: {{ form.email }}\n+  </div>\n+  <input type=\"submit\" value=\"Send me an opt-in link\">\n </form>\n {% endif %}\n \n {% if error and admins %}\n-<p>If you are having trouble opting in, please email\n+<p>\n+  If you are having trouble opting in, please email\n {% for admin in admins %}\n {% if admins|length > 1 and forloop.last %} or {% endif %}\n-{{admin.0}} &lt;<a href=\"mailto:{{admin.1}}\">{{admin.1}}</a\n->&gt;{% if admins|length > 2 and not forloop.last %}, {% endif %}\n+{{ admin.0 }} &lt;<a href=\"mailto:{{ admin.1 }}\">{{ admin.1 }}</a>&gt;{% if admins|length > 2 and not forloop.last %}, {% endif %}\n {% endfor %}\n+</p>\n {% endif %}\n {% endif %}\n \n {% if user.is_authenticated %}\n-<p>Return to your <a href=\"{% url 'user-profile' %}\">user\n-profile</a>.</p>\n+<p>Return to your <a href=\"{% url 'user-profile' %}\">user profile</a>.</p>\n {% endif %}\n-\n {% endblock %}\ndiff --git patchwork/templates/patchwork/optin.html patchwork/templates/patchwork/optin.html\nindex 37a2198f..659bfccb 100644\n--- patchwork/templates/patchwork/optin.html\n+++ patchwork/templates/patchwork/optin.html\n@@ -4,15 +4,18 @@\n {% block heading %}Opt-in{% endblock %}\n \n {% block body %}\n-<p><strong>Opt-in complete</strong>. You have successfully opted back in to\n-automated email from this Patchwork system, using the address\n-<strong>{{email}}</strong>.</p>\n-<p>If you later decide that you no longer want to receive automated mail from\n-Patchwork, just visit <a href=\"{% url 'mail-settings' %}\"\n->http://{{site.domain}}{% url 'mail-settings' %}</a>, or\n-visit the main Patchwork page and navigate from there.</p>\n+<p>\n+  <strong>Opt-in complete</strong>. You have successfully opted back in to\n+  automated email from this Patchwork system, using the address\n+  <strong>{{ email }}</strong>.\n+</p>\n+<p>\n+  If you later decide that you no longer want to receive automated mail from\n+  Patchwork, just visit\n+  <a href=\"{% url 'mail-settings' %}\">http://{{ site.domain }}{% url 'mail-settings' %}</a>,\n+  or visit the main Patchwork page and navigate from there.\n+</p>\n {% if user.is_authenticated %}\n-<p>Return to your <a href=\"{% url 'user-profile' %}\">user\n-profile</a>.</p>\n+<p>Return to your <a href=\"{% url 'user-profile' %}\">user profile</a>.</p>\n {% endif %}\n {% endblock %}\ndiff --git patchwork/templates/patchwork/optout-request.html patchwork/templates/patchwork/optout-request.html\nindex 659af773..7396fd36 100644\n--- patchwork/templates/patchwork/optout-request.html\n+++ patchwork/templates/patchwork/optout-request.html\n@@ -6,45 +6,53 @@\n {% block body %}\n {% if confirmation %}\n <p><strong>Opt-out confirmation email sent</strong></p>\n-<p>An opt-out confirmation mail has been sent to\n-<strong>{{confirmation.email}}</strong>, containing a link. Please click on\n-that link to confirm your opt-out.</p>\n+<p>\n+  An opt-out confirmation mail has been sent to\n+  <strong>{{ confirmation.email }}</strong>, containing a link. Please click on\n+  that link to confirm your opt-out.\n+</p>\n {% else %}\n {% if error %}\n-<p class=\"error\">{{error}}</p>\n+<p class=\"error\">{{ error }}</p>\n {% endif %}\n \n {% if form %}\n-<p>This form allows you to opt-out of automated email from Patchwork.</p>\n-<p>If you opt-out of email, Patchwork may still email you if you do certain\n-actions yourself (such as create a new Patchwork account), but will not send\n-you unsolicited email.</p>\n-When you submit it, one email will be sent to your address with a link to click\n-to finalise the opt-out. Patchwork does this to prevent someone opting you out\n-without your consent.</p>\n+<p>\n+  This form allows you to opt-out of automated email from Patchwork.\n+</p>\n+<p>\n+  If you opt-out of email, Patchwork may still email you if you do certain\n+  actions yourself (such as create a new Patchwork account), but will not\n+  send you unsolicited email.\n+</p>\n+<p>\n+  When you submit it, one email will be sent to your address with a link to\n+  click to finalise the opt-out. Patchwork does this to prevent someone\n+  opting you out without your consent.\n+</p>\n <form method=\"post\" action=\"\">\n-{% csrf_token %}\n-{{form.email.errors}}\n-<div style=\"padding: 0.5em 1em 2em;\">\n-{{form.email.label_tag}}: {{form.email}}\n-</div>\n-<input type=\"submit\" value=\"Send me an opt-out link\">\n+  {% csrf_token %}\n+  {{ form.email.errors }}\n+  <div style=\"padding: 0.5em 1em 2em;\">\n+    {{ form.email.label_tag }}: {{ form.email }}\n+  </div>\n+  <input type=\"submit\" value=\"Send me an opt-out link\">\n </form>\n {% endif %}\n \n {% if error and admins %}\n-<p>If you are having trouble opting out, please email\n+<p>\n+  If you are having trouble opting out, please email\n {% for admin in admins %}\n {% if admins|length > 1 and forloop.last %} or {% endif %}\n-{{admin.0}} &lt;<a href=\"mailto:{{admin.1}}\">{{admin.1}}</a\n->&gt;{% if admins|length > 2 and not forloop.last %}, {% endif %}\n+{{ admin.0 }} &lt;<a href=\"mailto:{{ admin.1 }}\">{{ admin.1 }}</a>&gt;{% if admins|length > 2 and not forloop.last %}, {% endif %}\n {% endfor %}\n+</p>\n {% endif %}\n {% endif %}\n \n {% if user.is_authenticated %}\n-<p>Return to your <a href=\"{% url 'user-profile' %}\">user\n-profile</a>.</p>\n+<p>Return to your <a href=\"{% url 'user-profile' %}\">user profile</a>.</p>\n {% endif %}\n \n {% endblock %}\ndiff --git patchwork/templates/patchwork/optout.html patchwork/templates/patchwork/optout.html\nindex f3b75ce6..2d7e67e5 100644\n--- patchwork/templates/patchwork/optout.html\n+++ patchwork/templates/patchwork/optout.html\n@@ -4,18 +4,22 @@\n {% block heading %}Opt-out{% endblock %}\n \n {% block body %}\n-<p><strong>Opt-out complete</strong>. You have successfully opted-out of\n-automated notifications from this Patchwork system, from the address\n-<strong>{{email}}</strong></p>\n-<p>Please note that you may still receive email from other Patchwork setups at\n-different sites, as they are run independently. You may need to opt-out of\n-those separately.</p>\n-<p>If you later decide to receive mail from Patchwork, just visit\n-<a href=\"{% url 'mail-settings' %}\"\n->http://{{site.domain}}{% url 'mail-settings' %}</a>, or\n-visit the main Patchwork page and navigate from there.</p>\n+<p>\n+  <strong>Opt-out complete</strong>. You have successfully opted-out of\n+  automated notifications from this Patchwork system, from the address\n+  <strong>{{ email }}</strong>\n+</p>\n+<p>\n+  Please note that you may still receive email from other Patchwork setups at\n+  different sites, as they are run independently. You may need to opt-out of\n+  those separately.\n+</p>\n+<p>\n+  If you later decide to receive mail from Patchwork, just visit\n+  <a href=\"{% url 'mail-settings' %}\">http://{{ site.domain }}{% url 'mail-settings' %}</a>,\n+  or visit the main Patchwork page and navigate from there.\n+</p>\n {% if user.is_authenticated %}\n-<p>Return to your <a href=\"{% url 'user-profile' %}\">user\n-profile</a>.</p>\n+<p>Return to your <a href=\"{% url 'user-profile' %}\">user profile</a>.</p>\n {% endif %}\n {% endblock %}\ndiff --git patchwork/templates/patchwork/partials/download-buttons.html patchwork/templates/patchwork/partials/download-buttons.html\nindex e75a25ce..149bbc62 100644\n--- patchwork/templates/patchwork/partials/download-buttons.html\n+++ patchwork/templates/patchwork/partials/download-buttons.html\n@@ -1,23 +1,27 @@\n <div class=\"btn-group pull-right\">\n   <button type=\"button\" class=\"btn btn-default btn-copy\"\n-     data-clipboard-text=\"{{ submission.id }}\" title=\"Copy to Clipboard\">\n-      {{ submission.id }}\n+      data-clipboard-text=\"{{ submission.id }}\" title=\"Copy to Clipboard\">\n+    {{ submission.id }}\n   </button>\n-  {% if submission.diff %}\n+{% if submission.diff %}\n   <a href=\"{% url 'patch-raw' project_id=project.linkname msgid=submission.url_msgid %}\"\n-   class=\"btn btn-default\" role=\"button\" title=\"Download patch diff\"\n-   >diff</a>\n+      class=\"btn btn-default\" role=\"button\" title=\"Download patch diff\">\n+    diff\n+  </a>\n   <a href=\"{% url 'patch-mbox' project_id=project.linkname msgid=submission.url_msgid %}\"\n-   class=\"btn btn-default\" role=\"button\" title=\"Download patch mbox\"\n-   >mbox</a>\n-  {% else %}\n+      class=\"btn btn-default\" role=\"button\" title=\"Download patch mbox\">\n+    mbox\n+  </a>\n+{% else %}\n   <a href=\"{% url 'cover-mbox' project_id=project.linkname msgid=submission.url_msgid %}\"\n-   class=\"btn btn-default\" role=\"button\" title=\"Download cover mbox\"\n-   >mbox</a>\n-  {% endif %}\n-  {% if submission.series %}\n+      class=\"btn btn-default\" role=\"button\" title=\"Download cover mbox\">\n+    mbox\n+  </a>\n+{% endif %}\n+{% if submission.series %}\n   <a href=\"{% url 'series-mbox' series_id=submission.series.id %}\"\n-   class=\"btn btn-default\" role=\"button\"\n-   title=\"Download patch mbox with dependencies\">series</a>\n-  {% endif %}\n+      class=\"btn btn-default\" role=\"button\" title=\"Download patch mbox with dependencies\">\n+    series\n+  </a>\n+{% endif %}\n </div>\ndiff --git patchwork/templates/patchwork/partials/filters.html patchwork/templates/patchwork/partials/filters.html\nindex e89c4d0f..1175af14 100644\n--- patchwork/templates/patchwork/partials/filters.html\n+++ patchwork/templates/patchwork/partials/filters.html\n@@ -80,45 +80,46 @@ $(document).ready(function() {\n </script>\n \n <div class=\"filters\">\n- <div id=\"filtersummary\">\n-  <a href=\"javascript:filter_click()\">Show patches with</a>:\n- {% if filters.applied_filters %}\n-  {% for filter in filters.applied_filters.values %}\n-   {{ filter.name }} = <strong>{{ filter.condition }}</strong>\n-    {% if not filter.forced %}\n-     <a class=\"filter-action\"\n-        href=\"{{ filter.url_without_me }}\">&nbsp;&nbsp;<span\n-        class=\"glyphicon glyphicon-minus-sign\"></span></a>\n-    {% endif %}\n-   {% if not forloop.last %}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;{% endif %}\n-  {% endfor %}\n- {% else %}\n-  none&nbsp;&nbsp;<a class=\"filter-action\"\n-   href=\"javascript:filter_click()\"><span\n-   class=\"glyphicon glyphicon-plus-sign\"></span></a>\n- {% endif %}\n- {% with patch_count=page.paginator.count %}\n-   &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;{{ patch_count }}\n-   patch{{ patch_count | pluralize:\"es\" }}\n- {% endwith %}\n- </div>\n- <div id=\"filterform\" style=\"padding-top: 1em; display: none\">\n-  <form class=\"form-horizontal\" method=\"get\">\n-   {% for filter in filters.available_filters %}\n-   {% if not filter.forced %}\n-   <div class=\"form-group\">\n-    <label class=\"col-sm-2 control-label\">{{ filter.name }}</label>\n-    <div class=\"col-sm-5\">\n-      {{ filter.form }}\n-    </div>\n-   </div>\n-   {% endif %}\n-   {% endfor %}\n-   <div class=\"form-group\">\n-    <div class=\"col-sm-offset-2 col-sm-5\">\n-     <button type=\"submit\" class=\"btn btn-default\">Apply</button>\n-    </div>\n-   </div>\n-  </form>\n- </div>\n+  <div id=\"filtersummary\">\n+    <a href=\"javascript:filter_click()\">Show patches with</a>:\n+{% if filters.applied_filters %}\n+{% for filter in filters.applied_filters.values %}\n+    {{ filter.name }} = <strong>{{ filter.condition }}</strong>\n+{% if not filter.forced %}\n+    <a class=\"filter-action\" href=\"{{ filter.url_without_me }}\">\n+      &nbsp;&nbsp;<span class=\"glyphicon glyphicon-minus-sign\"></span>\n+    </a>\n+{% endif %}\n+{% if not forloop.last %}\n+    &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;\n+{% endif %}\n+{% endfor %}\n+{% else %}\n+    none&nbsp;&nbsp;<a class=\"filter-action\" href=\"javascript:filter_click()\"><span class=\"glyphicon glyphicon-plus-sign\"></span></a>\n+{% endif %}\n+{% with patch_count=page.paginator.count %}\n+    &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;{{ patch_count }}\n+    patch{{ patch_count | pluralize:\"es\" }}\n+{% endwith %}\n+  </div>\n+\n+  <div id=\"filterform\" style=\"padding-top: 1em; display: none\">\n+    <form class=\"form-horizontal\" method=\"get\">\n+{% for filter in filters.available_filters %}\n+{% if not filter.forced %}\n+      <div class=\"form-group\">\n+        <label class=\"col-sm-2 control-label\">{{ filter.name }}</label>\n+        <div class=\"col-sm-5\">\n+          {{ filter.form }}\n+        </div>\n+      </div>\n+{% endif %}\n+{% endfor %}\n+      <div class=\"form-group\">\n+        <div class=\"col-sm-offset-2 col-sm-5\">\n+          <button type=\"submit\" class=\"btn btn-default\">Apply</button>\n+        </div>\n+      </div>\n+    </form>\n+  </div>\n </div>\ndiff --git patchwork/templates/patchwork/partials/pagination.html patchwork/templates/patchwork/partials/pagination.html\nindex ee4b555d..0767d385 100644\n--- patchwork/templates/patchwork/partials/pagination.html\n+++ patchwork/templates/patchwork/partials/pagination.html\n@@ -3,43 +3,41 @@\n {% if page.paginator.num_pages != 1 %}\n <div class=\"paginator\">\n {% if page.has_previous %}\n- <span class=\"prev\">\n-  <a href=\"{% listurl page=page.previous_page_number %}\"\n-     title=\"Previous Page\">&laquo;</a></span>\n+  <span class=\"prev\">\n+    <a href=\"{% listurl page=page.previous_page_number %}\" title=\"Previous Page\">&laquo;</a>\n+  </span>\n {% else %}\n- <span class=\"prev-na\">&laquo;</span>\n+  <span class=\"prev-na\">&laquo;</span>\n {% endif %}\n \n {% if page.paginator.trailing_set %}\n- {% for p in page.paginator.trailing_set %}\n- <span class=\"page\"><a href=\"{% listurl page=p %}\" >{{ p }}</a></span>\n- {% endfor %}\n-        ...\n+{% for p in page.paginator.trailing_set %}\n+  <span class=\"page\"><a href=\"{% listurl page=p %}\" >{{ p }}</a></span>\n+{% endfor %}\n+  …\n {% endif %}\n \n {% for p in page.paginator.adjacent_set %}\n-  {% if p == page.number %}\n-    <span class=\"curr\" title=\"Current Page\">{{ p }}</span>\n-  {% else %}\n-    <span class=\"page\"><a href=\"{% listurl page=p %}\"\n-     title=\"Page {{ p }}\">{{ p }}</a></span>\n-  {% endif %}\n+{% if p == page.number %}\n+  <span class=\"curr\" title=\"Current Page\">{{ p }}</span>\n+{% else %}\n+  <span class=\"page\"><a href=\"{% listurl page=p %}\" title=\"Page {{ p }}\">{{ p }}</a></span>\n+{% endif %}\n {% endfor %}\n \n {% if page.paginator.leading_set %}\n-        …\n- {% for p in page.paginator.leading_set %}\n-    <span class=\"page\"><a href=\"{% listurl page=p %}\">{{ p }}</a></span>\n- {% endfor %}\n+  …\n+{% for p in page.paginator.leading_set %}\n+  <span class=\"page\"><a href=\"{% listurl page=p %}\">{{ p }}</a></span>\n+{% endfor %}\n {% endif %}\n \n {% if page.has_next %}\n- <span class=\"next\">\n-  <a href=\"{% listurl page=page.next_page_number %}\"\n-   title=\"Next Page\">&raquo;</a>\n+  <span class=\"next\">\n+    <a href=\"{% listurl page=page.next_page_number %}\" title=\"Next Page\">&raquo;</a>\n   </span>\n {% else %}\n- <span class=\"next-na\">&raquo;</span>\n+  <span class=\"next-na\">&raquo;</span>\n {% endif %}\n </div>\n {% endif %}\ndiff --git patchwork/templates/patchwork/partials/patch-list.html patchwork/templates/patchwork/partials/patch-list.html\nindex 02d6dff8..93d1e867 100644\n--- patchwork/templates/patchwork/partials/patch-list.html\n+++ patchwork/templates/patchwork/partials/patch-list.html\n@@ -5,33 +5,30 @@\n {% load static %}\n \n {% include \"patchwork/partials/filters.html\" %}\n-\n {% include \"patchwork/partials/pagination.html\" %}\n \n {% if order.editable %}\n <table class=\"patchlist\">\n- <tr>\n-  <td class=\"patchlistreorder\">\n-   <form method=\"post\" id=\"reorderform\">\n-    {% csrf_token %}\n-    <input type=\"hidden\" name=\"form\" value=\"reorderform\"/>\n-    <input type=\"hidden\" name=\"order_start\" value=\"0\"/>\n-    <span id=\"reorderhelp\"></span>\n-    <input id=\"reorder-cancel\" type=\"button\" value=\"Cancel\"\n-     onClick=\"order_cancel_click(this)\"/>\n-    <input id=\"reorder-change\" type=\"button\" value=\"Change order\"\n-     onClick=\"order_button_click(this)\"/>\n-    </form>\n-  </td>\n- </tr>\n+  <tr>\n+    <td class=\"patchlistreorder\">\n+      <form method=\"post\" id=\"reorderform\">\n+        {% csrf_token %}\n+        <input type=\"hidden\" name=\"form\" value=\"reorderform\"/>\n+        <input type=\"hidden\" name=\"order_start\" value=\"0\"/>\n+        <span id=\"reorderhelp\"></span>\n+        <input id=\"reorder-cancel\" type=\"button\" value=\"Cancel\" onClick=\"order_cancel_click(this)\"/>\n+        <input id=\"reorder-change\" type=\"button\" value=\"Change order\" onClick=\"order_button_click(this)\"/>\n+      </form>\n+    </td>\n+  </tr>\n </table>\n {% endif %}\n \n {% if page.paginator.long_page and user.is_authenticated %}\n <div class=\"floaty\">\n- <a title=\"jump to form\" href=\"#patchforms\">\n-  <span style=\"font-size: 120%\">&#9662;</span>\n- </a>\n+  <a title=\"jump to form\" href=\"#patchforms\">\n+    <span style=\"font-size: 120%\">&#9662;</span>\n+  </a>\n </div>\n {% endif %}\n \n@@ -51,252 +48,246 @@ $(document).ready(function() {\n </script>\n \n <form method=\"post\">\n-{% csrf_token %}\n-<input type=\"hidden\" name=\"form\" value=\"patchlistform\"/>\n-<input type=\"hidden\" name=\"project\" value=\"{{project.id}}\"/>\n-<table id=\"patchlist\" class=\"table table-hover table-extra-condensed table-striped pw-list\"\n-       data-toggle=\"checkboxes\" data-range=\"true\">\n- <thead>\n-  <tr>\n-   {% if user.is_authenticated %}\n-   <th style=\"text-align: center;\">\n-    <input type=\"checkbox\" id=\"check-all\"/>\n-   </th>\n-   {% endif %}\n+  {% csrf_token %}\n+  <input type=\"hidden\" name=\"form\" value=\"patchlistform\"/>\n+  <input type=\"hidden\" name=\"project\" value=\"{{project.id}}\"/>\n+  <table id=\"patchlist\" class=\"table table-hover table-extra-condensed table-striped pw-list\" data-toggle=\"checkboxes\" data-range=\"true\">\n+    <thead>\n+      <tr>\n+{% if user.is_authenticated %}\n+        <th style=\"text-align: center;\">\n+         <input type=\"checkbox\" id=\"check-all\"/>\n+        </th>\n+{% endif %}\n \n-   {% if user.is_authenticated and user.profile.show_ids %}\n-   <th>\n-     ID\n-   </th>\n-   {% endif %}\n+{% if user.is_authenticated and user.profile.show_ids %}\n+        <th>\n+          ID\n+        </th>\n+{% endif %}\n \n-   <th>\n-    {% if order.name == \"name\" %}\n-     <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n-      <span class=\"glyphicon glyphicon-chevron-{{ order.updown }}\"></span>\n-     </a>\n-     <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n-      Patch\n-     </a>\n-    {% else %}\n-     {% if not order.editable %}\n-     <a class=\"colinactive\" href=\"{% listurl order=\"name\" %}\">Patch</a>\n-     {% else %}\n-     <span class=\"colinactive\">Patch</span>\n-     {% endif %}\n-    {% endif %}\n-   </th>\n+        <th>\n+{% if order.name == \"name\" %}\n+          <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n+            <span class=\"glyphicon glyphicon-chevron-{{ order.updown }}\"></span>\n+          </a>\n+          <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n+           Patch\n+          </a>\n+{% else %}\n+{% if not order.editable %}\n+          <a class=\"colinactive\" href=\"{% listurl order=\"name\" %}\">Patch</a>\n+{% else %}\n+          <span class=\"colinactive\">Patch</span>\n+{% endif %}\n+{% endif %}\n+        </th>\n \n-   <th>\n-    <span class=\"colinactive\">Series</span>\n-   </th>\n+        <th>\n+          <span class=\"colinactive\">Series</span>\n+        </th>\n \n-   <th>\n-    {% project_tags %}\n-   </th>\n+        <th>\n+          {% project_tags %}\n+        </th>\n \n-   <th>\n-    <span title=\"Success / Warning / Fail\">S/W/F</span>\n-   </th>\n+        <th>\n+          <span title=\"Success / Warning / Fail\">S/W/F</span>\n+        </th>\n \n-   <th>\n-    {% if order.name == \"date\" %}\n-     <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n-      <span class=\"glyphicon glyphicon-chevron-{{ order.updown }}\"></span>\n-     </a>\n-     <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n-      Date\n-     </a>\n-    {% else %}\n-     {% if not order.editable %}\n-     <a class=\"colinactive\" href=\"{% listurl order=\"date\" %}\">Date</a>\n-     {% else %}\n-     <span class=\"colinactive\">Date</span>\n-     {% endif %}\n-    {% endif %}\n-   </th>\n+        <th>\n+{% if order.name == \"date\" %}\n+          <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n+            <span class=\"glyphicon glyphicon-chevron-{{ order.updown }}\"></span>\n+          </a>\n+          <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n+            Date\n+          </a>\n+{% else %}\n+{% if not order.editable %}\n+          <a class=\"colinactive\" href=\"{% listurl order=\"date\" %}\">Date</a>\n+{% else %}\n+          <span class=\"colinactive\">Date</span>\n+{% endif %}\n+{% endif %}\n+        </th>\n \n-   <th>\n-    {% if order.name == \"submitter\" %}\n-     <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n-      <span class=\"glyphicon glyphicon-chevron-{{ order.updown }}\"></span>\n-     </a>\n-     <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n-      Submitter\n-     </a>\n-    {% else %}\n-     {% if not order.editable %}\n-     <a class=\"colinactive\" href=\"{% listurl order=\"submitter\" %}\">\n-      Submitter\n-     </a>\n-     {% else %}\n-     <span class=\"colinactive\">Submitter</span>\n-     {% endif %}\n-    {% endif %}\n-   </th>\n+        <th>\n+{% if order.name == \"submitter\" %}\n+          <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n+            <span class=\"glyphicon glyphicon-chevron-{{ order.updown }}\"></span>\n+          </a>\n+          <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n+            Submitter\n+          </a>\n+{% else %}\n+{% if not order.editable %}\n+          <a class=\"colinactive\" href=\"{% listurl order=\"submitter\" %}\">\n+            Submitter\n+          </a>\n+{% else %}\n+          <span class=\"colinactive\">Submitter</span>\n+{% endif %}\n+{% endif %}\n+        </th>\n \n-   <th>\n-    {% if order.name == \"delegate\" %}\n-     <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n-      <span class=\"glyphicon glyphicon-chevron-{{ order.updown }}\"></span>\n-     </a>\n-     <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n-      Delegate\n-     </a>\n-    {% else %}\n-     {% if not order.editable %}\n-     <a class=\"colinactive\" href=\"{% listurl order=\"delegate\" %}\">Delegate</a>\n-     {% else %}\n-     <span class=\"colinactive\">Delegate</span>\n-     {% endif %}\n-    {% endif %}\n-   </th>\n+        <th>\n+{% if order.name == \"delegate\" %}\n+          <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n+            <span class=\"glyphicon glyphicon-chevron-{{ order.updown }}\"></span>\n+          </a>\n+          <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n+            Delegate\n+          </a>\n+{% else %}\n+{% if not order.editable %}\n+          <a class=\"colinactive\" href=\"{% listurl order=\"delegate\" %}\">Delegate</a>\n+{% else %}\n+          <span class=\"colinactive\">Delegate</span>\n+{% endif %}\n+{% endif %}\n+        </th>\n \n-   <th>\n-    {% if order.name == \"state\" %}\n-     <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n-      <span class=\"glyphicon glyphicon-chevron-{{ order.updown }}\"></span>\n-     </a>\n-     <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n-      State\n-     </a>\n-    {% else %}\n-     {% if not order.editable %}\n-     <a class=\"colinactive\" href=\"{% listurl order=\"state\" %}\">State</a>\n-     {% else %}\n-     <span class=\"colinactive\">State</span>\n-     {% endif %}\n-    {% endif %}\n-   </th>\n+        <th>\n+{% if order.name == \"state\" %}\n+          <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n+            <span class=\"glyphicon glyphicon-chevron-{{ order.updown }}\"></span>\n+          </a>\n+          <a class=\"colactive\" href=\"{% listurl order=order.reversed_name %}\">\n+            State\n+          </a>\n+{% else %}\n+{% if not order.editable %}\n+          <a class=\"colinactive\" href=\"{% listurl order=\"state\" %}\">State</a>\n+{% else %}\n+          <span class=\"colinactive\">State</span>\n+{% endif %}\n+{% endif %}\n+        </th>\n \n-  </tr>\n- </thead>\n+      </tr>\n+    </thead>\n \n- <tbody>\n- {% for patch in page.object_list %}\n-  <tr id=\"patch_row:{{patch.id}}\">\n-   {% if user.is_authenticated %}\n-   <td style=\"text-align: center;\">\n-    <input type=\"checkbox\" name=\"patch_id:{{patch.id}}\"/>\n-   </td>\n-   {% endif %}\n-   {% if user.is_authenticated and user.profile.show_ids %}\n-   <td>\n-    <button type=\"button\" class=\"btn btn-xs btn-copy\"\n-     data-clipboard-text=\"{{ patch.id }}\" title=\"Copy to Clipboard\">\n-      {{ patch.id }}\n-    </button>\n-   </td>\n-   {% endif %}\n-   <td>\n-    <a href=\"{% url 'patch-detail' project_id=project.linkname msgid=patch.url_msgid %}\">\n-     {{ patch.name|default:\"[no subject]\"|truncatechars:100 }}\n-    </a>\n-   </td>\n-   <td>\n-    {% if patch.series %}\n-    <a href=\"?series={{patch.series.id}}\">\n-     {{ patch.series|truncatechars:100 }}\n-    </a>\n-    {% endif %}\n-   </td>\n-   <td class=\"text-nowrap\">{{ patch|patch_tags }}</td>\n-   <td class=\"text-nowrap\">{{ patch|patch_checks }}</td>\n-   <td class=\"text-nowrap\">{{ patch.date|date:\"Y-m-d\" }}</td>\n-   <td>{{ patch.submitter|personify:project }}</td>\n-   <td>{{ patch.delegate.username }}</td>\n-   <td>{{ patch.state }}</td>\n-  </tr>\n- {% empty %}\n-  <tr>\n-   <td colspan=\"8\">No patches to display</td>\n-  </tr>\n- {% endfor %}\n- </tbody>\n-</table>\n+    <tbody>\n+{% for patch in page.object_list %}\n+      <tr id=\"patch_row:{{patch.id}}\">\n+{% if user.is_authenticated %}\n+        <td style=\"text-align: center;\">\n+          <input type=\"checkbox\" name=\"patch_id:{{patch.id}}\"/>\n+        </td>\n+{% endif %}\n+{% if user.is_authenticated and user.profile.show_ids %}\n+        <td>\n+          <button type=\"button\" class=\"btn btn-xs btn-copy\" data-clipboard-text=\"{{ patch.id }}\" title=\"Copy to Clipboard\">\n+            {{ patch.id }}\n+          </button>\n+        </td>\n+{% endif %}\n+        <td>\n+          <a href=\"{% url 'patch-detail' project_id=project.linkname msgid=patch.url_msgid %}\">\n+            {{ patch.name|default:\"[no subject]\"|truncatechars:100 }}\n+          </a>\n+        </td>\n+        <td>\n+{% if patch.series %}\n+          <a href=\"?series={{patch.series.id}}\">\n+            {{ patch.series|truncatechars:100 }}\n+          </a>\n+{% endif %}\n+        </td>\n+        <td class=\"text-nowrap\">{{ patch|patch_tags }}</td>\n+        <td class=\"text-nowrap\">{{ patch|patch_checks }}</td>\n+        <td class=\"text-nowrap\">{{ patch.date|date:\"Y-m-d\" }}</td>\n+        <td>{{ patch.submitter|personify:project }}</td>\n+        <td>{{ patch.delegate.username }}</td>\n+        <td>{{ patch.state }}</td>\n+       </tr>\n+{% empty %}\n+      <tr>\n+        <td colspan=\"8\">No patches to display</td>\n+      </tr>\n+{% endfor %}\n+    </tbody>\n+  </table>\n \n {% if page.paginator.count %}\n {% include \"patchwork/partials/pagination.html\" %}\n \n-<div class=\"patchforms\" id=\"patchforms\">\n+  <div class=\"patchforms\" id=\"patchforms\">\n \n {% if patchform %}\n- <div class=\"patchform patchform-properties\">\n-  <h3>Properties</h3>\n-    <table class=\"form\">\n-     <tr>\n-      <th>Change state:</th>\n-      <td>\n-       {{ patchform.state }}\n-       {{ patchform.state.errors }}\n-      </td>\n-     </tr>\n-     <tr>\n-      <th>Delegate to:</th>\n-      <td>\n-       {{ patchform.delegate }}\n-       {{ patchform.delegate.errors }}\n-      </td>\n-     </tr>\n-     <tr>\n-      <th>Archive:</th>\n-      <td>\n-       {{ patchform.archived }}\n-       {{ patchform.archived.errors }}\n-      </td>\n-     </tr>\n-     <tr>\n-      <td></td>\n-      <td>\n-       <input type=\"submit\" name=\"action\" value=\"{{patchform.action}}\"/>\n-      </td>\n-     </tr>\n-    </table>\n- </div>\n-\n+     <div class=\"patchform patchform-properties\">\n+       <h3>Properties</h3>\n+       <table class=\"form\">\n+         <tr>\n+           <th>Change state:</th>\n+           <td>\n+             {{ patchform.state }}\n+             {{ patchform.state.errors }}\n+           </td>\n+         </tr>\n+         <tr>\n+           <th>Delegate to:</th>\n+           <td>\n+             {{ patchform.delegate }}\n+             {{ patchform.delegate.errors }}\n+           </td>\n+         </tr>\n+         <tr>\n+           <th>Archive:</th>\n+           <td>\n+             {{ patchform.archived }}\n+             {{ patchform.archived.errors }}\n+           </td>\n+         </tr>\n+         <tr>\n+           <td></td>\n+           <td>\n+             <input type=\"submit\" name=\"action\" value=\"{{patchform.action}}\"/>\n+           </td>\n+         </tr>\n+       </table>\n+     </div>\n {% endif %}\n \n {% if user.is_authenticated %}\n- <div class=\"patchform patchform-bundle\">\n-  <h3>Bundling</h3>\n-   <table class=\"form\">\n-    <tr>\n-     <td>Create bundle:</td>\n-     <td>\n-      <input type=\"text\" name=\"bundle_name\"/>\n-      <input name=\"action\" value=\"Create\" type=\"submit\"/>\n-      </td>\n-    </tr>\n-  {% if bundles %}\n-    <tr>\n-     <td>Add to bundle:</td>\n-     <td>\n-       <select name=\"bundle_id\">\n-        {% for bundle in bundles %}\n-         <option value=\"{{bundle.id}}\">{{bundle.name}}</option>\n-        {% endfor %}\n-        </select>\n-       <input name=\"action\" value=\"Add\" type=\"submit\"/>\n-     </td>\n-    </tr>\n-  {% endif %}\n-  {% if bundle %}\n-   <tr>\n-     <td>Remove from bundle:</td>\n-     <td>\n-       <input type=\"hidden\" name=\"removed_bundle_id\" value=\"{{bundle.id}}\"/>\n-       <input name=\"action\" value=\"Remove\" type=\"submit\"/>\n-     </td>\n-    </tr>\n-  {% endif %}\n-  </table>\n- </div>\n+    <div class=\"patchform patchform-bundle\">\n+      <h3>Bundling</h3>\n+      <table class=\"form\">\n+        <tr>\n+         <td>Create bundle:</td>\n+         <td>\n+           <input type=\"text\" name=\"bundle_name\"/>\n+           <input name=\"action\" value=\"Create\" type=\"submit\"/>\n+         </td>\n+        </tr>\n+{% if bundles %}\n+        <tr>\n+          <td>Add to bundle:</td>\n+          <td>\n+            <select name=\"bundle_id\">\n+{% for bundle in bundles %}\n+              <option value=\"{{bundle.id}}\">{{bundle.name}}</option>\n+{% endfor %}\n+            </select>\n+            <input name=\"action\" value=\"Add\" type=\"submit\"/>\n+          </td>\n+        </tr>\n {% endif %}\n-\n- <div style=\"clear: both;\">\n- </div>\n-</div>\n-\n+{% if bundle %}\n+        <tr>\n+          <td>Remove from bundle:</td>\n+          <td>\n+            <input type=\"hidden\" name=\"removed_bundle_id\" value=\"{{bundle.id}}\"/>\n+            <input name=\"action\" value=\"Remove\" type=\"submit\"/>\n+          </td>\n+        </tr>\n+{% endif %}\n+      </table>\n+    </div>\n+{% endif %}\n+    <div style=\"clear: both;\">\n+    </div>\n+  </div>\n {% endif %}\n-\n </form>\ndiff --git patchwork/templates/patchwork/profile.html patchwork/templates/patchwork/profile.html\nindex 4a4b5582..552dde47 100644\n--- patchwork/templates/patchwork/profile.html\n+++ patchwork/templates/patchwork/profile.html\n@@ -6,169 +6,168 @@\n {% block body %}\n <h1>Your Profile</h1>\n \n-<p>\n {% if user.profile.maintainer_projects.count %}\n-Maintainer of\n+<p>\n+  Maintainer of\n {% for project in user.profile.maintainer_projects.all %}\n-<a href=\"{% url 'patch-list' project_id=project.linkname %}\"\n->{{ project.linkname }}</a>{% if not forloop.last %},{% endif %}{% endfor %}.\n+  <a href=\"{% url 'patch-list' project_id=project.linkname %}\">{{ project.linkname }}</a>{% if not forloop.last %},{% endif %}\n+{% endfor %}.\n+</p>\n {% endif %}\n \n {% if user.profile.contributor_projects.count %}\n-Contributor to\n+<p>\n+  Contributor to\n {% for project in user.profile.contributor_projects.all %}\n-<a href=\"{% url 'patch-list' project_id=project.linkname %}\"\n->{{ project.linkname }}</a>{% if not forloop.last %},{% endif %}{% endfor %}.\n-{% endif %}\n+  <a href=\"{% url 'patch-list' project_id=project.linkname %}\">{{ project.linkname }}</a>{% if not forloop.last %},{% endif %}\n+{% endfor %}.\n </p>\n+{% endif %}\n \n <div class=\"leftcol\">\n-<div class=\"box\">\n- <h2>Todo</h2>\n+  <div class=\"box\">\n+    <h2>Todo</h2>\n+    <p>\n+      Your <a href=\"{% url 'user-todos' %}\">todo list</a> contains patches that\n+      have been delegated to you.\n {% if user.profile.n_todo_patches %}\n- <p>Your <a href=\"{% url 'user-todos' %}\">todo\n-  list</a> contains {{ user.profile.n_todo_patches }}\n-  patch{{ user.profile.n_todo_patches|pluralize:\"es\" }}.</p>\n+      Your have {{ user.profile.n_todo_patches }}\n+      patch{{ user.profile.n_todo_patches|pluralize:\"es\" }} in your todo list.\n {% else %}\n- <p>Your todo list contains patches that have been delegated to you. You\n-  have no items in your todo list at present.</p>\n+      You have no patches in your todo list at present.\n {% endif %}\n-</div>\n-\n-<div class=\"box\">\n-<h2>Linked email addresses</h2>\n-<p>The following email addresses are associated with this Patchwork account.\n-Adding alternative addresses allows Patchwork to group contributions that\n-you have made under different addresses.</p>\n-<p>The \"notify?\" column allows you to opt-in or -out of automated\n-Patchwork notification emails. Setting it to \"no\" will disable automated\n-notifications for that address.</p>\n-<p>Adding a new email address will send a confirmation email to that\n-address.</p>\n-<table class=\"vertical\">\n- <tr>\n-  <th>email</th>\n-  <th>action</th>\n-  <th>notify?</th>\n- </tr>\n+    </p>\n+  </div>\n+\n+  <div class=\"box\">\n+    <h2>Linked email addresses</h2>\n+    <p>\n+      The following email addresses are associated with this Patchwork account.\n+      Adding alternative addresses allows Patchwork to group contributions that\n+      you have made under different addresses.\n+    </p>\n+    <p>\n+      The \"notify?\" column allows you to opt-in or opt-out of automated\n+      Patchwork notification emails. Setting it to \"no\" will disable automated\n+      notifications for that address.\n+    </p>\n+    <p>\n+      Adding a new email address will send a confirmation email to that address.\n+    </p>\n+    <table class=\"vertical\">\n+      <tr>\n+        <th>email</th>\n+        <th>action</th>\n+        <th>notify?</th>\n+      </tr>\n {% for email in linked_emails %}\n- <tr>\n-  <td>{{ email.email }}</td>\n-  <td>\n-  {% if user.email != email.email %}\n-   <form action=\"{% url 'user-unlink' person_id=email.id %}\"\n-    method=\"post\">\n-    {% csrf_token %}\n-    <input type=\"submit\" value=\"Unlink\"/>\n-   </form>\n-    {% endif %}\n-  </td>\n-  <td>\n-   {% if email.is_optout %}\n-   <form method=\"post\" action=\"{% url 'mail-optin' %}\">\n-    No,\n-     {% csrf_token %}\n-     <input type=\"hidden\" name=\"email\" value=\"{{email.email}}\"/>\n-     <input type=\"submit\" value=\"Opt-in\"/>\n-    </form>\n-   {% else %}\n-    <form method=\"post\" action=\"{% url 'mail-optout' %}\">\n-    Yes,\n-     {% csrf_token %}\n-     <input type=\"hidden\" name=\"email\" value=\"{{email.email}}\"/>\n-     <input type=\"submit\" value=\"Opt-out\"/>\n-    </form>\n-   {% endif %}\n-  </td>\n- </tr>\n+      <tr>\n+        <td>{{ email.email }}</td>\n+        <td>\n+{% if user.email != email.email %}\n+          <form action=\"{% url 'user-unlink' person_id=email.id %}\" method=\"post\">\n+            {% csrf_token %}\n+            <input type=\"submit\" value=\"Unlink\"/>\n+          </form>\n+{% endif %}\n+        </td>\n+        <td>\n+{% if email.is_optout %}\n+          <form method=\"post\" action=\"{% url 'mail-optin' %}\">\n+            {% csrf_token %}\n+            No,\n+            <input type=\"hidden\" name=\"email\" value=\"{{ email.email }}\"/>\n+            <input type=\"submit\" value=\"Opt-in\"/>\n+          </form>\n+{% else %}\n+          <form method=\"post\" action=\"{% url 'mail-optout' %}\">\n+            {% csrf_token %}\n+            Yes,\n+            <input type=\"hidden\" name=\"email\" value=\"{{ email.email }}\"/>\n+            <input type=\"submit\" value=\"Opt-out\"/>\n+          </form>\n+{% endif %}\n+        </td>\n+      </tr>\n {% endfor %}\n- <tr>\n-  <td colspan=\"3\">\n-   <form action=\"{% url 'user-link' %}\" method=\"post\">\n-    {% csrf_token %}\n-    {{ linkform.email }}\n-    <input type=\"submit\" value=\"Add\"/>\n-   </form>\n-  </td>\n- </tr>\n-</table>\n-</div>\n+      <tr>\n+        <td colspan=\"3\">\n+          <form action=\"{% url 'user-link' %}\" method=\"post\">\n+            {% csrf_token %}\n+            {{ linkform.email }}\n+            <input type=\"submit\" value=\"Add\"/>\n+          </form>\n+        </td>\n+      </tr>\n+    </table>\n+  </div>\n </div>\n \n <div class=\"rightcol\">\n-\n-<div class=\"box\">\n-<h2>Bundles</h2>\n-\n+  <div class=\"box\">\n+    <h2>Bundles</h2>\n {% if bundles %}\n-<p>You have the following bundle{{ bundles|length|pluralize }}:</p>\n-<ul>\n+    <p>You have the following bundle{{ bundles|length|pluralize }}:</p>\n+    <ul>\n {% for bundle in bundles %}\n- <li><a href=\"{{ bundle.get_absolute_url }}\">{{ bundle.name }}</a></li>\n+      <li><a href=\"{{ bundle.get_absolute_url }}\">{{ bundle.name }}</a></li>\n {% endfor %}\n-</ul>\n-<p>Visit the <a href=\"{%url 'user-bundles' %}\">bundles\n- page</a> to manage your bundles.</p>\n+    </ul>\n+    <p>Visit the <a href=\"{%url 'user-bundles' %}\">bundles page</a> to manage your bundles.</p>\n {% else %}\n-<p>You have no bundles.</p>\n+    <p>You have no bundles.</p>\n {% endif %}\n-</div>\n-\n-\n-<div class=\"box\">\n-<h2>Settings</h2>\n-\n-<form method=\"post\">\n- {% csrf_token %}\n- <table class=\"form\">\n-{{ profileform }}\n-  <tr>\n-   <td></td>\n-   <td>\n-    <input type=\"submit\" value=\"Apply\"/>\n-   </td>\n-  </tr>\n- </table>\n-</form>\n-</div>\n+  </div>\n+\n+  <div class=\"box\">\n+    <h2>Settings</h2>\n+\n+    <form method=\"post\">\n+      {% csrf_token %}\n+      <table class=\"form\">\n+        {{ profileform }}\n+        <tr>\n+          <td></td>\n+          <td><input type=\"submit\" value=\"Apply\"/></td>\n+        </tr>\n+      </table>\n+    </form>\n+  </div>\n \n-<div class=\"box\">\n-<h2>Authentication</h2>\n+  <div class=\"box\">\n+    <h2>Authentication</h2>\n \n-<table class=\"form\">\n- <tr>\n-  <th>Password:</th>\n-  <td><a href=\"{% url 'password_change' %}\">Change password</a>\n- </tr>\n+    <table class=\"form\">\n+      <tr>\n+        <th>Password:</th>\n+        <td><a href=\"{% url 'password_change' %}\">Change password</a>\n+      </tr>\n {% if rest_api_enabled %}\n- <tr>\n-  <th>API Token:</th>\n-  <td>\n-   {% if api_token %}\n-   <input id=\"token\" style=\"width: 25em;\" readonly value=\"{{ api_token }}\">\n-   <button type=\"button\" class=\"btn-copy\" title=\"Copy to clipboard\"\n-    data-clipboard-target=\"#token\">Copy</button>\n-   {% endif %}\n-  </td>\n- <tr>\n-  <th></th>\n-  <td>\n-   <form method=\"post\" action=\"{% url 'generate_token' %}\">\n-    {% csrf_token %}\n-    {% if api_token %}\n-    <input type=\"submit\" value=\"Regenerate token\"/>\n-    {% else %}\n-    <input type=\"submit\" value=\"Generate token\"/>\n-    {% endif %}\n-   </form>\n-  </td>\n- </tr>\n+      <tr>\n+        <th>API Token:</th>\n+        <td>\n+{% if api_token %}\n+          <input id=\"token\" style=\"width: 25em;\" readonly value=\"{{ api_token }}\">\n+          <button type=\"button\" class=\"btn-copy\" title=\"Copy to clipboard\" data-clipboard-target=\"#token\">Copy</button>\n {% endif %}\n-</table>\n-</div>\n-\n+        </td>\n+      <tr>\n+        <th></th>\n+        <td>\n+          <form method=\"post\" action=\"{% url 'generate_token' %}\">\n+            {% csrf_token %}\n+{% if api_token %}\n+            <input type=\"submit\" value=\"Regenerate token\"/>\n+{% else %}\n+            <input type=\"submit\" value=\"Generate token\"/>\n+{% endif %}\n+          </form>\n+        </td>\n+      </tr>\n+{% endif %}\n+    </table>\n+  </div>\n </div>\n \n <p style=\"clear: both\"></p>\n-\n {% endblock %}\ndiff --git patchwork/templates/patchwork/project.html patchwork/templates/patchwork/project.html\nindex bd9d20e2..cad372f7 100644\n--- patchwork/templates/patchwork/project.html\n+++ patchwork/templates/patchwork/project.html\n@@ -4,70 +4,76 @@\n {% block info_active %}active{% endblock %}\n \n {% block body %}\n-<h1>About {{project.name}}</h1>\n+<h1>About {{ project.name }}</h1>\n \n <table class=\"horizontal\">\n- <tr>\n-  <th>Name</th>\n-  <td>{{project.name}}\n- </tr>\n- <tr>\n-  <th>List address</th>\n-  <td>{{project.listemail}}</td>\n- </tr>\n+  <tr>\n+    <th>Name</th>\n+    <td>{{ project.name }}\n+  </tr>\n+  <tr>\n+    <th>List address</th>\n+    <td>{{ project.listemail }}</td>\n+  </tr>\n {% if project.list_archive_url %}\n- <tr>\n-  <th>List archive</th>\n-  <td><a href=\"{{ project.list_archive_url }}\">{{ project.list_archive_url }}</a></td>\n- </tr>\n+  <tr>\n+    <th>List archive</th>\n+    <td><a href=\"{{ project.list_archive_url }}\">{{ project.list_archive_url }}</a></td>\n+  </tr>\n {% endif %}\n- <tr>\n-  <th>Maintainer{{maintainers|length|pluralize}}</th>\n-  <td>\n-   {% for maintainer in maintainers %}\n-    {{ maintainer.profile.name }}\n-     &lt;<a href=\"mailto:{{maintainer.email}}\">{{maintainer.email}}</a>&gt;\n-     <br />\n-   {% endfor %}\n-  </td>\n- </tr>\n- <tr>\n-  <th>Patches </th>\n-  <td>{{n_patches}} (+ {{n_archived_patches}} archived)</td>\n- </tr>\n+  <tr>\n+    <th>Maintainer{{ maintainers|length|pluralize }}</th>\n+    <td>\n+      {% for maintainer in maintainers %}\n+        {{ maintainer.profile.name }}\n+          &lt;<a href=\"mailto:{{ maintainer.email }}\">{{ maintainer.email }}</a>&gt;\n+          <br />\n+      {% endfor %}\n+    </td>\n+  </tr>\n+  <tr>\n+    <th>Patches </th>\n+    <td>{{ n_patches }} (+ {{ n_archived_patches }} archived)</td>\n+  </tr>\n {% if project.web_url %}\n- <tr>\n-  <th>Website</th>\n-  <td><a href=\"{{project.web_url}}\">{{project.web_url}}</a></td>\n- </tr>\n+  <tr>\n+    <th>Website</th>\n+    <td><a href=\"{{ project.web_url }}\">{{ project.web_url }}</a></td>\n+  </tr>\n {% endif %}\n {% if project.webscm_url %}\n- <tr>\n-  <th>Source Code Web Interface</th>\n-  <td><a href=\"{{project.webscm_url}}\">{{project.webscm_url}}</a></td>\n- </tr>\n+  <tr>\n+    <th>Source Code Web Interface</th>\n+    <td><a href=\"{{ project.webscm_url }}\">{{ project.webscm_url }}</a></td>\n+  </tr>\n {% endif %}\n {% if project.scm_url %}\n- <tr>\n-  <th>Source Code Manager URL</th>\n-  <td><a href=\"{{project.scm_url}}\">{{project.scm_url}}</a></td>\n- </tr>\n+  <tr>\n+    <th>Source Code Manager URL</th>\n+    <td><a href=\"{{ project.scm_url }}\">{{ project.scm_url }}</a></td>\n+  </tr>\n {% endif %}\n </table>\n \n {% if enable_xmlrpc %}\n <h2>pwclient</h2>\n \n-<p><code>pwclient</code> is the command-line client for Patchwork. Currently,\n-it provides access to some read-only features of Patchwork, such as downloading\n-and applying patches.</p>\n+<p>\n+  <code>pwclient</code> is the command-line client for Patchwork. Currently,\n+  it provides access to some read-only features of Patchwork, such as\n+  downloading and applying patches.\n+</p>\n \n <p>To use pwclient, you will need:</p>\n <ul>\n- <li>The <a href=\"https://github.com/getpatchwork/pwclient\">pwclient</a> program</li>\n- <li>(optional) A <code><a href=\"{% url 'pwclientrc' project.linkname %}\"\n- >.pwclientrc</a></code> file for this project, which should be stored in your\n- home directory.</li>\n+  <li>\n+    The <a href=\"https://github.com/getpatchwork/pwclient\">pwclient</a>\n+    program.\n+  </li>\n+  <li>\n+    (Optional) A <code><a href=\"{% url 'pwclientrc' project.linkname %}\">.pwclientrc</a></code>\n+    file for this project, which should be stored in your home directory.\n+  </li>\n </ul>\n {% endif %}\n {% endblock %}\ndiff --git patchwork/templates/patchwork/projects.html patchwork/templates/patchwork/projects.html\nindex 9ce1918c..16b1bc5d 100644\n--- patchwork/templates/patchwork/projects.html\n+++ patchwork/templates/patchwork/projects.html\n@@ -9,19 +9,19 @@\n   <div class=\"col-sm-6 col-md-4\">\n     <div class=\"thumbnail\">\n       <div class=\"caption\">\n-        <h3>{{p.name}}</h3>\n+        <h3>{{ p.name }}</h3>\n         <p class=\"core-info\">\n-         <span>\n-          <a href=\"{% url 'patch-list' project_id=p.linkname %}\">\n-           View patches\n-          </a>\n-        </span>\n+          <span>\n+            <a href=\"{% url 'patch-list' project_id=p.linkname %}\">\n+              View patches\n+            </a>\n+          </span>\n         </p>\n {% if p.web_url %}\n-      <p><a href=\"{{p.web_url}}\">{{p.web_url}}</a></p>\n+      <p><a href=\"{{ p.web_url }}\">{{ p.web_url }}</a></p>\n {% endif %}\n {% if p.webscm_url %}\n-      <p><a href=\"{{p.webscm_url}}\">{{p.webscm_url}}</a></p>\n+      <p><a href=\"{{ p.webscm_url }}\">{{ p.webscm_url }}</a></p>\n {% endif %}\n      </div>\n    </div>\ndiff --git patchwork/templates/patchwork/registration-confirm.html patchwork/templates/patchwork/registration-confirm.html\nindex 3832139c..e9219a5a 100644\n--- patchwork/templates/patchwork/registration-confirm.html\n+++ patchwork/templates/patchwork/registration-confirm.html\n@@ -6,8 +6,9 @@\n {% block body %}\n <p>Registration confirmed!</p>\n \n-<p>Your Patchwork registration is complete. Head over to your <a\n- href=\"{% url 'user-profile' %}\">profile</a> to start using\n-Patchwork's extra features.</p>\n-\n+<p>\n+  Your Patchwork registration is complete. Head over to your\n+  <a href=\"{% url 'user-profile' %}\">profile</a> to start using\n+  Patchwork's extra features.\n+</p>\n {% endblock %}\ndiff --git patchwork/templates/patchwork/registration.html patchwork/templates/patchwork/registration.html\nindex 5280b660..8e2a3511 100644\n--- patchwork/templates/patchwork/registration.html\n+++ patchwork/templates/patchwork/registration.html\n@@ -4,116 +4,110 @@\n {% block heading %}Registration{% endblock %}\n \n {% block body %}\n-\n {% if confirmation and not error %}\n- <p>Registration successful!</p>\n- <p>A confirmation email has been sent to {{ confirmation.email }}. You'll\n- need to visit the link provided in that email to confirm your\n- registration.</p>\n+<p>\n+  Registration successful!\n+</p>\n+<p>\n+  A confirmation email has been sent to {{ confirmation.email }}.\n+  You'll need to visit the link provided in that email to confirm your\n+  registration.\n </p>\n {% else %}\n <p>By creating a Patchwork account, you can:<p>\n <ul>\n- <li>create \"bundles\" of patches</li>\n- <li>update the state of your own patches</li>\n+  <li>create \"bundles\" of patches</li>\n+  <li>update the state of your own patches</li>\n </ul>\n <form method=\"post\">\n-{% csrf_token %}\n-<table class=\"form registerform\">\n- <tr>\n-  <th colspan=\"2\" class=\"headerrow\">register</th>\n- </tr>\n- {% if error %}\n-  <tr>\n-   <td colspan=\"2\">{{ error }}</td>\n-  </tr>\n- {% endif %}\n-\n-  <tr>\n-   <td>{{ form.first_name.label_tag }}</td>\n-   <td>\n+  {% csrf_token %}\n+  <table class=\"form registerform\">\n+    <tr>\n+      <th colspan=\"2\" class=\"headerrow\">register</th>\n+    </tr>\n+{% if error %}\n+    <tr>\n+      <td colspan=\"2\">{{ error }}</td>\n+    </tr>\n+{% endif %}\n+    <tr>\n+      <td>{{ form.first_name.label_tag }}</td>\n+      <td>\n {% if form.first_name.errors %}\n-    {{ form.first_name.errors }}\n+        {{ form.first_name.errors }}\n {% endif %}\n-    {{ form.first_name }}\n+        {{ form.first_name }}\n {% if form.first_name.help_text %}\n-    <div class=\"help_text\"/>{{ form.first_name.help_text }}</div>\n+        <div class=\"help_text\"/>{{ form.first_name.help_text }}</div>\n {% endif %}\n-   </td>\n-  </tr>\n-\n-  <tr>\n-   <td>{{ form.last_name.label_tag }}</td>\n-   <td>\n+      </td>\n+    </tr>\n+    <tr>\n+      <td>{{ form.last_name.label_tag }}</td>\n+      <td>\n {% if form.last_name.errors %}\n-    {{ form.last_name.errors }}\n+        {{ form.last_name.errors }}\n {% endif %}\n-    {{ form.last_name }}\n+        {{ form.last_name }}\n {% if form.last_name.help_text %}\n-    <div class=\"help_text\"/>{{ form.last_name.help_text }}</div>\n+        <div class=\"help_text\"/>{{ form.last_name.help_text }}</div>\n {% endif %}\n-   </td>\n-  </tr>\n-\n-  <tr>\n-   <td></td>\n-   <td class=\"form-help\">\n-    Your name is used to identify you on the site\n-   </td>\n-  </tr>\n-\n-  <tr>\n-   <td>{{ form.email.label_tag }}</td>\n-   <td>\n+      </td>\n+    </tr>\n+    <tr>\n+      <td></td>\n+      <td class=\"form-help\">\n+        Your name is used to identify you on the site\n+      </td>\n+    </tr>\n+    <tr>\n+      <td>{{ form.email.label_tag }}</td>\n+      <td>\n {% if form.email.errors %}\n-    {{ form.email.errors }}\n+        {{ form.email.errors }}\n {% endif %}\n-    {{ form.email }}\n+        {{ form.email }}\n {% if form.email.help_text %}\n-    <div class=\"help_text\"/>{{ form.email.help_text }}</div>\n+        <div class=\"help_text\"/>{{ form.email.help_text }}</div>\n {% endif %}\n-   </td>\n-  </tr>\n-\n-  <tr>\n-   <td></td>\n-   <td class=\"form-help\">\n-    Patchwork will send a confirmation email to this address\n-   </td>\n-  </tr>\n-\n-  <tr>\n-   <td>{{ form.username.label_tag }}</td>\n-   <td>\n+      </td>\n+    </tr>\n+    <tr>\n+      <td></td>\n+      <td class=\"form-help\">\n+        Patchwork will send a confirmation email to this address\n+      </td>\n+    </tr>\n+    <tr>\n+      <td>{{ form.username.label_tag }}</td>\n+      <td>\n {% if form.username.errors %}\n-    {{ form.username.errors }}\n+        {{ form.username.errors }}\n {% endif %}\n-    {{ form.username }}\n+        {{ form.username }}\n {% if form.username.help_text %}\n-    <div class=\"help_text\"/>{{ form.username.help_text }}</div>\n+        <div class=\"help_text\"/>{{ form.username.help_text }}</div>\n {% endif %}\n-   </td>\n-  </tr>\n-\n-  <tr>\n-   <td>{{ form.password.label_tag }}</td>\n-   <td>\n+      </td>\n+    </tr>\n+    <tr>\n+      <td>{{ form.password.label_tag }}</td>\n+      <td>\n {% if form.password.errors %}\n-    {{ form.password.errors }}\n+        {{ form.password.errors }}\n {% endif %}\n-    {{ form.password }}\n+        {{ form.password }}\n {% if form.password.help_text %}\n-    <div class=\"help_text\"/>{{ form.password.help_text }}</div>\n+        <div class=\"help_text\"/>{{ form.password.help_text }}</div>\n {% endif %}\n-   </td>\n-  </tr>\n-\n-   <tr>\n-  <td colspan=\"2\" class=\"submitrow\">\n-   <input type=\"submit\" value=\"Register\"/>\n-  </td>\n- </tr>\n-</table>\n+      </td>\n+    </tr>\n+    <tr>\n+      <td colspan=\"2\" class=\"submitrow\">\n+        <input type=\"submit\" value=\"Register\"/>\n+      </td>\n+    </tr>\n+  </table>\n </form>\n {% endif %}\n {% endblock %}\ndiff --git patchwork/templates/patchwork/submission.html patchwork/templates/patchwork/submission.html\nindex 978559b8..03a3ae58 100644\n--- patchwork/templates/patchwork/submission.html\n+++ patchwork/templates/patchwork/submission.html\n@@ -5,7 +5,7 @@\n {% load person %}\n {% load patch %}\n \n-{% block title %}{{submission.name}}{% endblock %}\n+{% block title %}{{ submission.name }}{% endblock %}\n \n {% block body %}\n <script>\n@@ -33,241 +33,244 @@ function toggle_div(link_id, headers_id, label_show, label_hide)\n </div>\n \n <table class=\"patchmeta\">\n- <tr>\n-  <th>Message ID</th>\n-  {% if submission.list_archive_url %}\n-  <td>{{ submission.url_msgid }} (<a href=\"{{ submission.list_archive_url }}\">mailing list archive</a>)</td>\n-  {% else %}\n-  <td>{{ submission.url_msgid }}</td>\n-  {% endif %}\n- </tr>\n+  <tr>\n+    <th>Message ID</th>\n+    {% if submission.list_archive_url %}\n+    <td>{{ submission.url_msgid }} (<a href=\"{{ submission.list_archive_url }}\">mailing list archive</a>)</td>\n+    {% else %}\n+    <td>{{ submission.url_msgid }}</td>\n+    {% endif %}\n+  </tr>\n {% if submission.state %}\n- <tr>\n-  <th>State</th>\n-  <td>{{ submission.state.name }}{% if submission.archived %}, archived{% endif %}</td>\n- </tr>\n+  <tr>\n+    <th>State</th>\n+    <td>{{ submission.state.name }}{% if submission.archived %}, archived{% endif %}</td>\n+  </tr>\n {% endif %}\n {% if submission.commit_ref %}\n- <tr>\n-  <th>Commit</th>\n-  <td>{{ submission|patch_commit_display }}</td>\n- </tr>\n+  <tr>\n+    <th>Commit</th>\n+    <td>{{ submission|patch_commit_display }}</td>\n+  </tr>\n {% endif %}\n {% if submission.delegate %}\n- <tr>\n-  <th>Delegated to:</th>\n-  <td>{{ submission.delegate.profile.name }}</td>\n- </tr>\n+  <tr>\n+    <th>Delegated to:</th>\n+    <td>{{ submission.delegate.profile.name }}</td>\n+  </tr>\n {% endif %}\n- <tr>\n-  <th>Headers</th>\n-  <td><a id=\"togglepatchheaders\"\n-   href=\"javascript:toggle_div('togglepatchheaders', 'patchheaders')\"\n-   >show</a>\n-   <div id=\"patchheaders\" class=\"patchheaders\" style=\"display:none;\">\n-    <pre>{{submission.headers}}</pre>\n-   </div>\n-  </td>\n- </tr>\n+  <tr>\n+    <th>Headers</th>\n+    <td>\n+      <a id=\"togglepatchheaders\" href=\"javascript:toggle_div('togglepatchheaders', 'patchheaders')\">\n+        show\n+      </a>\n+      <div id=\"patchheaders\" class=\"patchheaders\" style=\"display:none;\">\n+        <pre>{{ submission.headers }}</pre>\n+      </div>\n+    </td>\n+  </tr>\n {% if submission.series %}\n- <tr>\n-  <th>Series</th>\n-  <td>\n-   <a href=\"{% url 'patch-list' project_id=project.linkname %}?series={{ submission.series.id }}\">\n-    {{ submission.series.name }}\n-   </a> |\n-   <a id=\"togglepatchseries\"\n-      href=\"javascript:toggle_div('togglepatchseries', 'patchseries', 'expand', 'collapse')\"\n-   >expand</a>\n-   <div id=\"patchseries\" class=\"submissionlist\" style=\"display:none;\">\n-    <ul>\n-     {% with submission.series.cover_letter as cover %}\n-      <li>\n-      {% if cover %}\n-       {% if cover == submission %}\n-        {{ cover.name|default:\"[no subject]\"|truncatechars:100 }}\n-       {% else %}\n-       <a href=\"{% url 'cover-detail' project_id=project.linkname msgid=cover.url_msgid %}\">\n-        {{ cover.name|default:\"[no subject]\"|truncatechars:100 }}\n-       </a>\n-       {% endif %}\n-      {% endif %}\n-      </li>\n-     {% endwith %}\n-     {% for sibling in submission.series.patches.all %}\n-      <li>\n-       {% if sibling == submission %}\n-        {{ sibling.name|default:\"[no subject]\"|truncatechars:100 }}\n-       {% else %}\n-       <a href=\"{% url 'patch-detail' project_id=project.linkname msgid=sibling.url_msgid %}\">\n-        {{ sibling.name|default:\"[no subject]\"|truncatechars:100 }}\n-       </a>\n-       {% endif %}\n-      </li>\n-     {% endfor %}\n-    </ul>\n-   </div>\n-  </td>\n- </tr>\n+  <tr>\n+    <th>Series</th>\n+    <td>\n+      <a href=\"{% url 'patch-list' project_id=project.linkname %}?series={{ submission.series.id }}\">\n+        {{ submission.series.name }}\n+      </a>\n+      |\n+      <a id=\"togglepatchseries\" href=\"javascript:toggle_div('togglepatchseries', 'patchseries', 'expand', 'collapse')\">\n+        expand\n+      </a>\n+      <div id=\"patchseries\" class=\"submissionlist\" style=\"display:none;\">\n+        <ul>\n+{% with submission.series.cover_letter as cover %}\n+            <li>\n+{% if cover %}\n+{% if cover == submission %}\n+                {{ cover.name|default:\"[no subject]\"|truncatechars:100 }}\n+{% else %}\n+              <a href=\"{% url 'cover-detail' project_id=project.linkname msgid=cover.url_msgid %}\">\n+                {{ cover.name|default:\"[no subject]\"|truncatechars:100 }}\n+              </a>\n+{% endif %}\n+{% endif %}\n+            </li>\n+{% endwith %}\n+{% for sibling in submission.series.patches.all %}\n+            <li>\n+{% if sibling == submission %}\n+                {{ sibling.name|default:\"[no subject]\"|truncatechars:100 }}\n+{% else %}\n+              <a href=\"{% url 'patch-detail' project_id=project.linkname msgid=sibling.url_msgid %}\">\n+                {{ sibling.name|default:\"[no subject]\"|truncatechars:100 }}\n+              </a>\n+{% endif %}\n+            </li>\n+{% endfor %}\n+        </ul>\n+      </div>\n+    </td>\n+  </tr>\n {% endif %}\n {% if submission.related %}\n- <tr>\n-  <th>Related</th>\n-  <td>\n-   <a id=\"togglerelated\"\n-      href=\"javascript:toggle_div('togglerelated', 'related')\"\n-   >show</a>\n-   <div id=\"related\" class=\"submissionlist\" style=\"display:none;\">\n-    <ul>\n-     {% for sibling in related_same_project %}\n-      <li>\n-       {% if sibling.id != submission.id %}\n-        <a href=\"{% url 'patch-detail' project_id=project.linkname msgid=sibling.url_msgid %}\">\n-         {{ sibling.name|default:\"[no subject]\"|truncatechars:100 }}\n-        </a>\n-       {% endif %}\n-      </li>\n-     {% endfor %}\n-     {% if related_different_project %}\n-      <a id=\"togglerelatedoutside\"\n-         href=\"javascript:toggle_div('togglerelatedoutside', 'relatedoutside', 'show from other projects')\"\n-      >show from other projects</a>\n-      <div id=\"relatedoutside\" class=\"submissionlist\" style=\"display:none;\">\n-       {% for sibling in related_outside %}\n-        <li>\n-         <a href=\"{% url 'patch-detail' project_id=sibling.project.linkname msgid=sibling.url_msgid %}\">\n-          {{ sibling.name|default:\"[no subject]\"|truncatechars:100 }}\n-         </a> (in {{ sibling.project }})\n-        </li>\n-       {% endfor %}\n+  <tr>\n+    <th>Related</th>\n+    <td>\n+      <a id=\"togglerelated\" href=\"javascript:toggle_div('togglerelated', 'related')\">\n+        show\n+      </a>\n+      <div id=\"related\" class=\"submissionlist\" style=\"display:none;\">\n+        <ul>\n+{% for sibling in related_same_project %}\n+            <li>\n+{% if sibling.id != submission.id %}\n+                <a href=\"{% url 'patch-detail' project_id=project.linkname msgid=sibling.url_msgid %}\">\n+                  {{ sibling.name|default:\"[no subject]\"|truncatechars:100 }}\n+                </a>\n+{% endif %}\n+            </li>\n+{% endfor %}\n+{% if related_different_project %}\n+            <a id=\"togglerelatedoutside\" href=\"javascript:toggle_div('togglerelatedoutside', 'relatedoutside', 'show from other projects')\">\n+              show from other projects\n+            </a>\n+            <div id=\"relatedoutside\" class=\"submissionlist\" style=\"display:none;\">\n+{% for sibling in related_outside %}\n+                <li>\n+                  <a href=\"{% url 'patch-detail' project_id=sibling.project.linkname msgid=sibling.url_msgid %}\">\n+                    {{ sibling.name|default:\"[no subject]\"|truncatechars:100 }}\n+                  </a> (in {{ sibling.project }})\n+                </li>\n+{% endfor %}\n+            </div>\n+{% endif %}\n+        </ul>\n       </div>\n-     {% endif %}\n-    </ul>\n-   </div>\n-  </td>\n- </tr>\n+    </td>\n+  </tr>\n {% endif %}\n </table>\n \n <div class=\"patchforms\">\n {% if patchform %}\n- <div class=\"patchform patchform-properties\">\n-  <h3>Patch Properties</h3>\n-   <form method=\"post\">\n-    {% csrf_token %}\n-    <table class=\"form\">\n-     <tr>\n-      <th>Change state:</th>\n-      <td>\n-       {{ patchform.state }}\n-       {{ patchform.state.errors }}\n-      </td>\n-     </tr>\n-     <tr>\n-      <th>Delegate to:</th>\n-      <td>\n-       {{ patchform.delegate }}\n-       {{ patchform.delegate.errors }}\n-      </td>\n-     </tr>\n-     <tr>\n-      <th>Archived:</th>\n-      <td>\n-       {{ patchform.archived }}\n-       {{ patchform.archived.errors }}\n-      </td>\n-     </tr>\n-     <tr>\n-      <td></td>\n-      <td>\n-       <input type=\"submit\" value=\"Update\">\n-      </td>\n-     </tr>\n-    </table>\n-  </form>\n- </div>\n+  <div class=\"patchform patchform-properties\">\n+    <h3>Patch Properties</h3>\n+\n+    <form method=\"post\">\n+      {% csrf_token %}\n+      <table class=\"form\">\n+        <tr>\n+          <th>Change state:</th>\n+          <td>\n+            {{ patchform.state }}\n+            {{ patchform.state.errors }}\n+          </td>\n+        </tr>\n+        <tr>\n+          <th>Delegate to:</th>\n+          <td>\n+            {{ patchform.delegate }}\n+            {{ patchform.delegate.errors }}\n+          </td>\n+        </tr>\n+        <tr>\n+          <th>Archived:</th>\n+          <td>\n+            {{ patchform.archived }}\n+            {{ patchform.archived.errors }}\n+          </td>\n+        </tr>\n+        <tr>\n+          <td></td>\n+          <td>\n+            <input type=\"submit\" value=\"Update\">\n+          </td>\n+        </tr>\n+      </table>\n+    </form>\n+  </div>\n {% endif %}\n \n {% if createbundleform %}\n- <div class=\"patchform patchform-bundle\">\n-  <h3>Bundling</h3>\n-   <table class=\"form\">\n-    <tr>\n-     <td>Create bundle:</td>\n-     <td>\n-       {% if createbundleform.non_field_errors %}\n-       <dd class=\"errors\">{{createbundleform.non_field_errors}}</dd>\n-       {% endif %}\n-      <form method=\"post\">\n-       {% csrf_token %}\n-       <input type=\"hidden\" name=\"action\" value=\"createbundle\"/>\n-       {% if createbundleform.name.errors %}\n-       <dd class=\"errors\">{{createbundleform.name.errors}}</dd>\n-       {% endif %}\n-        {{ createbundleform.name }}\n-       <input value=\"Create\" type=\"submit\"/>\n-      </form>\n-      </td>\n-    </tr>\n+  <div class=\"patchform patchform-bundle\">\n+    <h3>Bundling</h3>\n+\n+    <table class=\"form\">\n+      <tr>\n+        <td>Create bundle:</td>\n+        <td>\n+{% if createbundleform.non_field_errors %}\n+          <dd class=\"errors\">{{ createbundleform.non_field_errors }}</dd>\n+{% endif %}\n+          <form method=\"post\">\n+            {% csrf_token %}\n+            <input type=\"hidden\" name=\"action\" value=\"createbundle\"/>\n+{% if createbundleform.name.errors %}\n+            <dd class=\"errors\">{{ createbundleform.name.errors }}</dd>\n+{% endif %}\n+              {{ createbundleform.name }}\n+            <input value=\"Create\" type=\"submit\"/>\n+          </form>\n+          </td>\n+      </tr>\n {% if bundles %}\n-    <tr>\n-     <td>Add to bundle:</td>\n-     <td>\n-      <form method=\"post\">\n-       {% csrf_token %}\n-       <input type=\"hidden\" name=\"action\" value=\"addtobundle\"/>\n-       <select name=\"bundle_id\"/>\n-        {% for bundle in bundles %}\n-         <option value=\"{{bundle.id}}\">{{bundle.name}}</option>\n-        {% endfor %}\n-        </select>\n-       <input value=\"Add\" type=\"submit\"/>\n-      </form>\n-     </td>\n-    </tr>\n+      <tr>\n+        <td>Add to bundle:</td>\n+        <td>\n+          <form method=\"post\">\n+            {% csrf_token %}\n+            <input type=\"hidden\" name=\"action\" value=\"addtobundle\"/>\n+            <select name=\"bundle_id\"/>\n+{% for bundle in bundles %}\n+                <option value=\"{{ bundle.id }}\">{{ bundle.name }}</option>\n+{% endfor %}\n+              </select>\n+            <input value=\"Add\" type=\"submit\"/>\n+          </form>\n+        </td>\n+      </tr>\n {% endif %}\n-   </table>\n-\n- </div>\n+    </table>\n+  </div>\n {% endif %}\n \n- <div style=\"clear: both;\">\n- </div>\n+  <div style=\"clear: both;\"></div>\n </div>\n \n {% if submission.pull_url %}\n <h2>Pull-request</h2>\n-<a class=\"patch-pull-url\" href=\"{{submission.pull_url}}\"\n- >{{ submission.pull_url }}</a>\n+\n+<a class=\"patch-pull-url\" href=\"{{ submission.pull_url }}\">{{ submission.pull_url }}</a>\n {% endif %}\n \n {% if checks %}\n <h2>Checks</h2>\n+\n <table class=\"checks\">\n-<tr>\n-  <th>Context</th>\n-  <th>Check</th>\n-  <th>Description</th>\n-</tr>\n+  <tr>\n+    <th>Context</th>\n+    <th>Check</th>\n+    <th>Description</th>\n+  </tr>\n {% for check in checks %}\n-<tr>\n-  <td>{{ check.user }}/{{ check.context }}</td>\n-  <td>\n-    <span title=\"Updated {{ check.date|naturaltime }}\"\n-        class=\"state {{ check.get_state_display }}\">\n-      {{ check.get_state_display }}\n-    </span>\n-  </td>\n-  <td>\n-    {% if check.target_url %}\n-    <a href=\"{{ check.target_url }}\">\n-    {% endif %}\n-      {{ check.description }}\n-    {% if check.target_url %}\n-    </a>\n-    {% endif %}\n-  </td>\n-</tr>\n+  <tr>\n+    <td>{{ check.user }}/{{ check.context }}</td>\n+    <td>\n+        <span title=\"Updated {{ check.date|naturaltime }}\"\n+                class=\"state {{ check.get_state_display }}\">\n+            {{ check.get_state_display }}\n+        </span>\n+    </td>\n+    <td>\n+        {% if check.target_url %}\n+        <a href=\"{{ check.target_url }}\">\n+        {% endif %}\n+            {{ check.description }}\n+        {% if check.target_url %}\n+        </a>\n+        {% endif %}\n+    </td>\n+  </tr>\n {% endfor %}\n </table>\n {% endif %}\n@@ -277,14 +280,15 @@ function toggle_div(link_id, headers_id, label_show, label_hide)\n {% else %}\n <h2>Message</h2>\n {% endif %}\n+\n <div class=\"comment\">\n-<div class=\"meta\">\n- <span>{{ submission.submitter|personify:project }}</span>\n- <span class=\"pull-right\">{{ submission.date }} UTC</span>\n-</div>\n-<pre class=\"content\">\n-{{ submission|commentsyntax }}\n-</pre>\n+  <div class=\"meta\">\n+    <span>{{ submission.submitter|personify:project }}</span>\n+    <span class=\"pull-right\">{{ submission.date }} UTC</span>\n+  </div>\n+  <pre class=\"content\">\n+  {{ submission|commentsyntax }}\n+  </pre>\n </div>\n \n {% for item in comments %}\n@@ -294,14 +298,12 @@ function toggle_div(link_id, headers_id, label_show, label_hide)\n \n <a name=\"{{ item.id }}\"></a>\n <div class=\"comment\">\n-<div class=\"meta\">\n- <span>{{ item.submitter|personify:project }}</span>\n- <span class=\"pull-right\">{{ item.date }} UTC | <a href=\"{% url 'comment-redirect' comment_id=item.id %}\"\n-   >#{{ forloop.counter }}</a></span>\n-</div>\n-<pre class=\"content\">\n-{{ item|commentsyntax }}\n-</pre>\n+  <div class=\"meta\">\n+    <span>{{ item.submitter|personify:project }}</span>\n+    <span class=\"pull-right\">{{ item.date }} UTC | <a href=\"{% url 'comment-redirect' comment_id=item.id %}\"\n+        >#{{ forloop.counter }}</a></span>\n+  </div>\n+  <pre class=\"content\">{{ item|commentsyntax }}</pre>\n </div>\n {% endfor %}\n \n@@ -311,10 +313,7 @@ function toggle_div(link_id, headers_id, label_show, label_hide)\n   <h2>Patch</h2>\n </div>\n <div id=\"patch\" class=\"patch\">\n-<pre class=\"content\">\n-{{ submission|patchsyntax }}\n-</pre>\n+  <pre class=\"content\">{{ submission|patchsyntax }}</pre>\n </div>\n {% endif %}\n-\n {% endblock %}\ndiff --git patchwork/templates/patchwork/todo-list.html patchwork/templates/patchwork/todo-list.html\nindex 1ec2713d..6c656b10 100644\n--- patchwork/templates/patchwork/todo-list.html\n+++ patchwork/templates/patchwork/todo-list.html\n@@ -7,11 +7,11 @@\n {% block body %}\n <h1>TODO</h1>\n \n-<p>A Patchwork todo-list contains patches that are assigned to you, and\n-are in an \"action required\" state\n-({% for state in action_required_states %}{% if forloop.last and not forloop.first %} or {% endif %}{{ state }}{% if not forloop.last and not forloop.first %}, {%endif %}{% endfor %}), and are not archived.\n+<p>\n+  A Patchwork todo-list contains patches that are assigned to you, are in an\n+  \"action required\" state ({{ action_required_states|join:\", \" }}), and are\n+  not archived.\n </p>\n \n {% include \"patchwork/partials/patch-list.html\" %}\n-\n {% endblock %}\ndiff --git patchwork/templates/patchwork/todo-lists.html patchwork/templates/patchwork/todo-lists.html\nindex ea65ea05..2f57bdb7 100644\n--- patchwork/templates/patchwork/todo-lists.html\n+++ patchwork/templates/patchwork/todo-lists.html\n@@ -7,24 +7,27 @@\n <h1>TODO</h1>\n \n {% if todo_lists %}\n-<p>You have multiple todo lists. Each todo list contains patches for a single\n- project.</p>\n+<p>\n+  You have multiple todo lists. Each todo list contains patches for a single\n+  project.\n+</p>\n <table class=\"vertical\">\n- <tr>\n-  <th>project</th>\n-  <th>patches</th>\n- </tr>\n+  <tr>\n+    <th>project</th>\n+    <th>patches</th>\n+  </tr>\n {% for todo_list in todo_lists %}\n- <tr>\n-  <td><a\n-   href=\"{% url 'user-todo' project_id=todo_list.project.linkname %}\"\n-    >{{ todo_list.project.name }}</a></td>\n-  <td class=\"numberformat\">{{ todo_list.n_patches }}</td>\n- </tr>\n+  <tr>\n+    <td>\n+      <a href=\"{% url 'user-todo' project_id=todo_list.project.linkname %}\">\n+        {{ todo_list.project.name }}\n+      </a>\n+    </td>\n+    <td class=\"numberformat\">{{ todo_list.n_patches }}</td>\n+  </tr>\n {% endfor %}\n </table>\n-\n {% else %}\n- No todo lists\n+No todo lists\n {% endif %}\n {% endblock %}\ndiff --git patchwork/templates/patchwork/user-link-confirm.html patchwork/templates/patchwork/user-link-confirm.html\nindex 79678f64..aa91fcbd 100644\n--- patchwork/templates/patchwork/user-link-confirm.html\n+++ patchwork/templates/patchwork/user-link-confirm.html\n@@ -8,11 +8,10 @@\n {% if errors %}\n <p>{{ errors }}</p>\n {% else %}\n- <p>You have successfully linked the email address {{ person.email }} to\n-  your Patchwork account</p>\n-\n+<p>\n+  You have successfully linked the email address {{ person.email }} to your\n+  Patchwork account\n+</p>\n {% endif %}\n-<p>Back to <a href=\"{% url 'user-profile' %}\">your\n- profile</a>.</p>\n-\n+<p>Back to <a href=\"{% url 'user-profile' %}\">your profile</a>.</p>\n {% endblock %}\ndiff --git patchwork/templates/patchwork/user-link.html patchwork/templates/patchwork/user-link.html\nindex bf331520..8b3fe8f6 100644\n--- patchwork/templates/patchwork/user-link.html\n+++ patchwork/templates/patchwork/user-link.html\n@@ -5,22 +5,28 @@\n \n {% block body %}\n {% if confirmation and not error %}\n-<p>A confirmation email has been sent to {{ confirmation.email }}. Click\n-on the link provided in the email to confirm that this address belongs to\n-you.</p>\n+<p>\n+  A confirmation email has been sent to {{ confirmation.email }}.\n+  Click on the link provided in the email to confirm that this address\n+  belongs to you.\n+</p>\n {% else %}\n-   {% if form.errors %}\n-   <p>There was an error submitting your link request.</p>\n-    {{ form.non_field_errors }}\n-   {% endif %}\n-   {% if error %}\n-    <ul class=\"errorlist\"><li>{{error}}</li></ul>\n-   {% endif %}\n+{% if form.errors %}\n+<p>\n+  There was an error submitting your link request.\n+</p>\n+{{ form.non_field_errors }}\n+{% endif %}\n+{% if error %}\n+<ul class=\"errorlist\">\n+  <li>{{ error }}</li>\n+</ul>\n+{% endif %}\n \n-   <form action=\"{% url 'user-link' %}\" method=\"post\">\n-    {% csrf_token %}\n-    {{linkform.email.errors}}\n-    Link an email address: {{ linkform.email }}\n-   </form>\n+<form action=\"{% url 'user-link' %}\" method=\"post\">\n+  {% csrf_token %}\n+  {{ linkform.email.errors }}\n+  Link an email address: {{ linkform.email }}\n+</form>\n {% endif %}\n {% endblock %}\ndiff --git templates/404.html templates/404.html\nindex fe2b0e4e..dd95e2ec 100644\n--- templates/404.html\n+++ templates/404.html\n@@ -4,7 +4,5 @@\n {% block heading %}404: File not found{% endblock %}\n \n {% block body %}\n-\n <p>The page URL requested (<code>{{ request_path }}</code>) does not exist.</p>\n-\n {% endblock %}\ndiff --git templates/base.html templates/base.html\nindex 8accb4c3..92022fd8 100644\n--- templates/base.html\n+++ templates/base.html\n@@ -1,126 +1,130 @@\n {% load static %}\n <!DOCTYPE html>\n-<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\">\n- <head>\n-  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n-  <title>{% block title %}Patchwork{% endblock %} - Patchwork</title>\n-  <link rel=\"stylesheet\" type=\"text/css\" href=\"{% static \"css/bootstrap.min.css\" %}\"/>\n-  <link rel=\"stylesheet\" type=\"text/css\" href=\"{% static \"css/selectize.bootstrap3.css\" %}\"/>\n-  <link rel=\"stylesheet\" type=\"text/css\" href=\"{% static \"css/style.css\" %}\"/>\n-  <script src=\"{% static \"js/jquery-1.10.1.min.js\" %}\"></script>\n-  <script src=\"{% static \"js/jquery.stickytableheaders.min.js\" %}\"></script>\n-  <script src=\"{% static \"js/jquery.checkboxes-1.0.6.min.js\" %}\"></script>\n-  <!-- IE8 support of HTML5 elements and media queries -->\n-  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->\n-  <!--[if lt IE 9]>\n-    <script src=\"https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js\">\n+<html lang=\"en\">\n+  <head>\n+    <meta charset=\"utf-8\">\n+    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n+    <title>{% block title %}Patchwork{% endblock %} - Patchwork</title>\n+    <link rel=\"stylesheet\" href=\"{% static \"css/bootstrap.min.css\" %}\"/>\n+    <link rel=\"stylesheet\" href=\"{% static \"css/selectize.bootstrap3.css\" %}\"/>\n+    <link rel=\"stylesheet\" href=\"{% static \"css/style.css\" %}\"/>\n+    <script src=\"{% static \"js/jquery-1.10.1.min.js\" %}\"></script>\n+    <script src=\"{% static \"js/jquery.stickytableheaders.min.js\" %}\"></script>\n+    <script src=\"{% static \"js/jquery.checkboxes-1.0.6.min.js\" %}\"></script>\n+    <!-- IE8 support of HTML5 elements and media queries -->\n+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->\n+    <!--[if lt IE 9]>\n+        <script src=\"https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js\">\n+        </script>\n+        <script src=\"https://oss.maxcdn.com/respond/1.4.2/respond.min.js\"></script>\n+        <script src=\"http://cdnjs.cloudflare.com/ajax/libs/es5-shim/2.0.8/es5-shim.min.js\"></script>\n+    <![endif]-->\n+    <script src=\"{% static \"js/bootstrap.min.js\" %}\"></script>\n+    <script src=\"{% static \"js/selectize.min.js\" %}\"></script>\n+    <script src=\"{% static \"js/clipboard.min.js\" %}\"></script>\n+    <script>\n+      $(document).ready(function() {\n+        new Clipboard(document.querySelectorAll('button.btn-copy'));\n+      });\n     </script>\n-    <script src=\"https://oss.maxcdn.com/respond/1.4.2/respond.min.js\"></script>\n-    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/es5-shim/2.0.8/es5-shim.min.js\"></script>\n-  <![endif]-->\n-  <script src=\"{% static \"js/bootstrap.min.js\" %}\"></script>\n-  <script src=\"{% static \"js/selectize.min.js\" %}\"></script>\n-  <script src=\"{% static \"js/clipboard.min.js\" %}\"></script>\n-  <script>\n-   $(document).ready(function() {\n-       new Clipboard(document.querySelectorAll('button.btn-copy'));\n-   });\n-  </script>\n {% block headers %}{% endblock %}\n- </head>\n- <body>\n-  <nav class=\"navbar navbar-inverse navbar-static-top\">\n-   <div class=\"container-fluid\">\n-    <div class=\"navbar-header\">\n-      <button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n-        <span class=\"sr-only\">Toggle navigation</span>\n-        <span class=\"icon-bar\"></span>\n-        <span class=\"icon-bar\"></span>\n-        <span class=\"icon-bar\"></span>\n-      </button>\n-      <a class=\"navbar-brand\" href=\"{% url 'project-list' %}\">Patchwork</a>\n-      <span class=\"navbar-subbrand\">\n-        {% block heading %}{% if project %} {{project.name}}{% endif %}{% endblock %}\n-      </span>\n-    </div>\n-    <div class=\"collapse navbar-collapse\" id=\"navbar-collapse\">\n+  </head>\n+  <body>\n+    <nav class=\"navbar navbar-inverse navbar-static-top\">\n+      <div class=\"container-fluid\">\n+        <div class=\"navbar-header\">\n+          <button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n+            <span class=\"sr-only\">Toggle navigation</span>\n+            <span class=\"icon-bar\"></span>\n+            <span class=\"icon-bar\"></span>\n+            <span class=\"icon-bar\"></span>\n+          </button>\n+          <a class=\"navbar-brand\" href=\"{% url 'project-list' %}\">Patchwork</a>\n+          <span class=\"navbar-subbrand\">\n+{% block heading %}\n+{% if project %}\n+            {{ project.name }}\n+{% endif %}\n+{% endblock %}\n+          </span>\n+        </div>\n+        <div class=\"collapse navbar-collapse\" id=\"navbar-collapse\">\n {% block navbarmenu %}\n {% if project %}\n-      <ul class=\"nav navbar-nav\">\n-        <li class=\"{% block patch_active %}{% endblock %}\">\n-          <a href=\"{% url 'patch-list' project_id=project.linkname %}\">\n-            <span class=\"glyphicon glyphicon-file\"></span>\n-            Patches\n-          </a>\n-        </li>\n-        <li class=\"{% block bundle_active %}{% endblock %}\">\n-          <a href=\"{% url 'bundle-list' project_id=project.linkname %}\">\n-            <span class=\"glyphicon glyphicon-gift\"></span>\n-            Bundles\n-          </a>\n-        </li>\n-        <li class=\"{% block info_active %}{% endblock %}\">\n-          <a href=\"{% url 'project-detail' project_id=project.linkname %}\">\n-            <span class=\"glyphicon glyphicon-info-sign\"></span>\n-            About this project\n-          </a>\n-        </li>\n-      </ul>\n+          <ul class=\"nav navbar-nav\">\n+            <li class=\"{% block patch_active %}{% endblock %}\">\n+              <a href=\"{% url 'patch-list' project_id=project.linkname %}\">\n+                <span class=\"glyphicon glyphicon-file\"></span>\n+                Patches\n+              </a>\n+            </li>\n+            <li class=\"{% block bundle_active %}{% endblock %}\">\n+              <a href=\"{% url 'bundle-list' project_id=project.linkname %}\">\n+                <span class=\"glyphicon glyphicon-gift\"></span>\n+                Bundles\n+              </a>\n+            </li>\n+            <li class=\"{% block info_active %}{% endblock %}\">\n+              <a href=\"{% url 'project-detail' project_id=project.linkname %}\">\n+                <span class=\"glyphicon glyphicon-info-sign\"></span>\n+                About this project\n+              </a>\n+            </li>\n+          </ul>\n {% endif %}\n {% endblock %}\n-     <ul class=\"nav navbar-nav navbar-right\">\n+          <ul class=\"nav navbar-nav navbar-right\">\n {% if user.is_authenticated %}\n-     <li class=\"dropdown\">\n-       <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n-         <span class=\"badge\">{{ user.profile.n_todo_patches }}</span>\n-         <strong>{{ user.username }}</strong>&nbsp;<span class=\"caret\"></span>\n-       </a>\n-       <ul class=\"dropdown-menu\" role=\"menu\">\n-         <li>\n-           <a href=\"{% url 'user-todos' %}\">\n-             Reviews pending\n-             <span class=\"badge\">{{ user.profile.n_todo_patches }}</span>\n-           </a>\n-         </li>\n-         <li>\n-           <a href=\"{% url 'user-bundles' %}\">\n-             Bundles\n-           </a>\n-         </li>\n-         <li role=\"separator\" class=\"divider\"></li>\n+          <li class=\"dropdown\">\n+            <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n+              <span class=\"badge\">{{ user.profile.n_todo_patches }}</span>\n+              <strong>{{ user.username }}</strong>&nbsp;<span class=\"caret\"></span>\n+            </a>\n+            <ul class=\"dropdown-menu\" role=\"menu\">\n+              <li>\n+                <a href=\"{% url 'user-todos' %}\">\n+                  Reviews pending\n+                  <span class=\"badge\">{{ user.profile.n_todo_patches }}</span>\n+                </a>\n+              </li>\n+              <li>\n+                <a href=\"{% url 'user-bundles' %}\">\n+                  Bundles\n+                </a>\n+              </li>\n+              <li role=\"separator\" class=\"divider\"></li>\n {% if user.is_staff %}\n-         <li><a href=\"{% url 'admin:index' %}\">Administration</a></li>\n+              <li><a href=\"{% url 'admin:index' %}\">Administration</a></li>\n {% endif %}\n-         <li><a href=\"{% url 'user-profile' %}\">View profile</a></li>\n-         <li><a href=\"{% url 'auth_logout' %}\">Logout</a></li>\n-       </ul>\n-     </li>\n+              <li><a href=\"{% url 'user-profile' %}\">View profile</a></li>\n+              <li><a href=\"{% url 'auth_logout' %}\">Logout</a></li>\n+            </ul>\n+          </li>\n {% else %}\n-     <li><a href=\"{% url 'auth_login' %}\">Login</a></li>\n-     <li><a href=\"{% url 'user-register' %}\">Register</a></li>\n-     <li><a href=\"{% url 'mail-settings' %}\">Mail settings</a></li>\n+          <li><a href=\"{% url 'auth_login' %}\">Login</a></li>\n+          <li><a href=\"{% url 'user-register' %}\">Register</a></li>\n+          <li><a href=\"{% url 'mail-settings' %}\">Mail settings</a></li>\n {% endif %}\n-     </ul>\n-    </div>\n-   </div>\n-  </nav>\n+          </ul>\n+        </div>\n+      </div>\n+    </nav>\n {% if messages %}\n-  <div id=\"messages\">\n-  {% for message in messages %}\n-  {# TODO(stephenfin): Make use of message.tags when completely #}\n-  {# converted to django.contrib.messages #}\n-   <div class=\"message\">{{ message }}</div>\n-  {% endfor %}\n-  </div>\n+    <div id=\"messages\">\n+{% for message in messages %}\n+{# TODO(stephenfin): Make use of message.tags when completely #}\n+{# converted to django.contrib.messages #}\n+      <div class=\"message\">{{ message }}</div>\n+{% endfor %}\n+    </div>\n {% endif %}\n-  <div class=\"container-fluid\">\n-{% block body %}\n-{% endblock %}\n-  </div>\n-  <div id=\"footer\">\n-   <a href=\"http://jk.ozlabs.org/projects/patchwork/\">patchwork</a>\n-   patch tracking system | version {{version}} | <a\n-   href=\"{% url 'about' %}\">about patchwork</a>\n-  </div>\n- </body>\n+    <div class=\"container-fluid\">\n+{% block body %}{% endblock %}\n+    </div>\n+    <div id=\"footer\">\n+      <a href=\"http://jk.ozlabs.org/projects/patchwork/\">patchwork</a>\n+      patch tracking system | version {{ version }} |\n+      <a href=\"{% url 'about' %}\">about patchwork</a>\n+    </div>\n+  </body>\n </html>\ndiff --git templates/registration/password_change_done.html templates/registration/password_change_done.html\nindex 65d89ef6..88b7d26d 100644\n--- templates/registration/password_change_done.html\n+++ templates/registration/password_change_done.html\n@@ -4,7 +4,5 @@\n {% block heading %}Password Change Complete{% endblock %}\n \n {% block body %}\n-\n <p>Your password has been changed successfully.</p>\n-\n {% endblock %}\ndiff --git templates/registration/password_change_form.html templates/registration/password_change_form.html\nindex 8abe55ef..3e9a0788 100644\n--- templates/registration/password_change_form.html\n+++ templates/registration/password_change_form.html\n@@ -4,42 +4,36 @@\n {% block heading %}Password Change{% endblock %}\n \n {% block body %}\n-\n-<p>Please enter your old password, for security's sake, and then enter your new\n-password twice so we can verify you typed it in correctly.</p>\n+<p>\n+  Please enter your old password, for security's sake, and then enter your new\n+  password twice so we can verify you typed it in correctly.\n+</p>\n \n <form method=\"post\">\n-{% csrf_token %}\n-\n-<table class=\"form passwordform\">\n-\n+  {% csrf_token %}\n+  <table class=\"form passwordform\">\n {% if form.errors %}\n- <tr>\n-  <td colspan=\"2\" class=\"error\">Please correct the errors below.</p>\n- </tr>\n+    <tr>\n+      <td colspan=\"2\" class=\"error\">Please correct the errors below.</p>\n+    </tr>\n {% endif %}\n-\n-\n {% for field in form %}\n-  <tr>\n-   <td>{{ field.label_tag }}</td>\n-   <td>\n-    {{ field.errors }}\n-    {{ field }}\n+    <tr>\n+      <td>{{ field.label_tag }}</td>\n+      <td>\n+        {{ field.errors }}\n+        {{ field }}\n {% if field.help_text %}\n-    <div class=\"help_text\"/>{{ field.help_text }}</div>\n+        <div class=\"help_text\"/>{{ field.help_text }}</div>\n {% endif %}\n-   </td>\n-  </tr>\n+      </td>\n+    </tr>\n {% endfor %}\n-\n- <tr>\n-  <td colspan=\"2\" class=\"error\">\n-   <input type=\"submit\" value=\"Change my password\" class=\"default\" />\n-  </td>\n- </tr>\n-\n-</table>\n-\n+    <tr>\n+      <td colspan=\"2\" class=\"error\">\n+        <input type=\"submit\" value=\"Change my password\" class=\"default\" />\n+      </td>\n+    </tr>\n+  </table>\n </form>\n {% endblock %}\ndiff --git templates/registration/password_reset_complete.html templates/registration/password_reset_complete.html\nindex 1d88fdff..8678ee89 100644\n--- templates/registration/password_reset_complete.html\n+++ templates/registration/password_reset_complete.html\n@@ -4,6 +4,5 @@\n {% block heading %}Password reset completed{% endblock %}\n \n {% block body %}\n-\n-<p>Your password has been set.  You may go ahead and log in now.</p>\n+<p>Your password has been set. You may go ahead and log in now.</p>\n {% endblock %}\ndiff --git templates/registration/password_reset_confirm.html templates/registration/password_reset_confirm.html\nindex 7e1e2f1e..4ab2357f 100644\n--- templates/registration/password_reset_confirm.html\n+++ templates/registration/password_reset_confirm.html\n@@ -4,48 +4,46 @@\n {% block heading %}Password reset confirmation{% endblock %}\n \n {% block body %}\n-\n {% if validlink %}\n-<p>Your username, in case you've forgotten: {{ form.user.get_username }}</p>\n-<p>Please enter your new password twice so we can verify you typed it in\n-correctly</p>\n+<p>\n+  Your username, in case you've forgotten: {{ form.user.get_username }}\n+</p>\n+<p>\n+  Please enter your new password twice so we can verify you typed it in\n+  correctly.\n+</p>\n \n <form method=\"post\">\n-{% csrf_token %}\n-\n-<table class=\"form passwordform\">\n-\n+  {% csrf_token %}\n+  <table class=\"form passwordform\">\n {% if form.errors %}\n- <tr>\n-  <td colspan=\"2\" class=\"error\">Please correct the errors below.</p>\n- </tr>\n+    <tr>\n+      <td colspan=\"2\" class=\"error\">Please correct the errors below.</p>\n+    </tr>\n {% endif %}\n-\n-\n {% for field in form %}\n-  <tr>\n-   <td>{{ field.label_tag }}</td>\n-   <td>\n-    {{ field.errors }}\n-    {{ field }}\n+    <tr>\n+      <td>{{ field.label_tag }}</td>\n+      <td>\n+        {{ field.errors }}\n+        {{ field }}\n {% if field.help_text %}\n-    <div class=\"help_text\"/>{{ field.help_text }}</div>\n+        <div class=\"help_text\"/>{{ field.help_text }}</div>\n {% endif %}\n-   </td>\n-  </tr>\n+      </td>\n+    </tr>\n {% endfor %}\n-\n- <tr>\n-  <td colspan=\"2\">\n-   <input type=\"submit\" value=\"Set my password\" class=\"default\" />\n-  </td>\n- </tr>\n-\n-</table>\n-\n+    <tr>\n+      <td colspan=\"2\">\n+        <input type=\"submit\" value=\"Set my password\" class=\"default\" />\n+      </td>\n+    </tr>\n+  </table>\n </form>\n {% else %}\n-<p>The password reset link was invalid, possibly because it has already\n-been used.  Please request a new password reset.</p>\n+<p>\n+  The password reset link was invalid, possibly because it has already\n+  been used. Please request a new password reset.\n+</p>\n {% endif %}\n {% endblock %}\ndiff --git templates/registration/password_reset_done.html templates/registration/password_reset_done.html\nindex fe9e551a..6070f767 100644\n--- templates/registration/password_reset_done.html\n+++ templates/registration/password_reset_done.html\n@@ -4,10 +4,12 @@\n {% block heading %}Password reset{% endblock %}\n \n {% block body %}\n-\n-<p>We have emailed you instructions for setting your password.\n-You should be receiving them shortly.</p>\n-<p>If you don't receive an email, please make sure you've entered the\n-address you registered with, and check your spam folder</p>\n-\n+<p>\n+  We have emailed you instructions for setting your password.\n+  You should be receiving them shortly.\n+</p>\n+<p>\n+  If you don't receive an email, please make sure you've entered the\n+  address you registered with, and check your spam folder.\n+</p>\n {% endblock %}\ndiff --git templates/registration/password_reset_email.html templates/registration/password_reset_email.html\nindex bdc28518..b90c13af 100644\n--- templates/registration/password_reset_email.html\n+++ templates/registration/password_reset_email.html\n@@ -5,7 +5,7 @@ your user account on the Patchwork patch-tracking system.\n Please visit the following url and choose a new password:\n \n {% block reset_link %}\n-{{ protocol }}://{{domain}}{% url 'password_reset_confirm' uidb64=uid token=token %}\n+{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}\n {% endblock %}\n \n Happy patchworking.\ndiff --git templates/registration/password_reset_form.html templates/registration/password_reset_form.html\nindex 4718f436..fa6f3f1a 100644\n--- templates/registration/password_reset_form.html\n+++ templates/registration/password_reset_form.html\n@@ -4,42 +4,36 @@\n {% block heading %}Password reset{% endblock %}\n \n {% block body %}\n-\n-<p>Forgotten your password? Enter your email address below, and we will\n-email instructions for setting a new one.</p>\n+<p>\n+  Forgotten your password? Enter your email address below, and we will\n+  email instructions for setting a new one.\n+</p>\n \n <form method=\"post\">\n-{% csrf_token %}\n-\n-<table class=\"form passwordform\">\n-\n+  {% csrf_token %}\n+  <table class=\"form passwordform\">\n {% if form.errors %}\n- <tr>\n-  <td colspan=\"2\" class=\"error\">Please correct the errors below.</p>\n- </tr>\n+    <tr>\n+      <td colspan=\"2\" class=\"error\">Please correct the errors below.</p>\n+    </tr>\n {% endif %}\n-\n-\n {% for field in form %}\n-  <tr>\n-   <td>{{ field.label_tag }}</td>\n-   <td>\n-    {{ field.errors }}\n-    {{ field }}\n+    <tr>\n+      <td>{{ field.label_tag }}</td>\n+      <td>\n+        {{ field.errors }}\n+        {{ field }}\n {% if field.help_text %}\n-    <div class=\"help_text\"/>{{ field.help_text }}</div>\n+        <div class=\"help_text\"/>{{ field.help_text }}</div>\n {% endif %}\n-   </td>\n-  </tr>\n+      </td>\n+    </tr>\n {% endfor %}\n-\n- <tr>\n-  <td colspan=\"2\">\n-   <input type=\"submit\" value=\"Reset my password\" class=\"default\" />\n-  </td>\n- </tr>\n-\n-</table>\n-\n+    <tr>\n+      <td colspan=\"2\">\n+        <input type=\"submit\" value=\"Reset my password\" class=\"default\" />\n+      </td>\n+    </tr>\n+  </table>\n </form>\n {% endblock %}\n",
    "prefixes": [
        "RFC",
        "01/19"
    ]
}