@models.permalink
def get_absolute_url(self):
- return ('patchwork.views.patch.patch', (), {'patch_id': self.id})
+ return ('patch-detail', (), {'patch_id': self.id})
def __str__(self):
return self.name
return None
site = Site.objects.get_current()
return 'http://%s%s' % (site.domain,
- reverse('patchwork.views.bundle.bundle',
+ reverse('bundle-detail',
kwargs={
'username': self.owner.username,
'bundlename': self.name
@models.permalink
def get_absolute_url(self):
- return ('patchwork.views.bundle.bundle', (), {
+ return ('bundle-detail', (), {
'username': self.owner.username,
'bundlename': self.name,
})
This email is to confirm your account on the patchwork patch-tracking
system. You can activate your account by visiting the url:
- http://{{site.domain}}{% url 'patchwork.views.confirm' key=confirmation.key %}
+ http://{{site.domain}}{% url 'confirm' key=confirmation.key %}
If you didn't request a user account on patchwork, then you can ignore
this mail.
<p>This bundle contains patches for the {{ bundle.project.linkname }}
project.</p>
-<p><a href="{% url 'patchwork.views.bundle.mbox' username=bundle.owner.username bundlename=bundle.name %}">Download bundle as mbox</a></p>
+<p><a href="{% url 'bundle-mbox' username=bundle.owner.username bundlename=bundle.name %}">Download bundle as mbox</a></p>
{% if bundleform %}
<form method="post">
</td>
<td style="text-align: right">{{ bundle.n_patches }}</td>
<td style="text-align: center;"><a
- href="{% url 'patchwork.views.bundle.mbox' username=bundle.owner.username bundlename=bundle.name %}"
+ href="{% url 'bundle-mbox' username=bundle.owner.username bundlename=bundle.name %}"
><img src="{% static "images/16-em-down.png" %}" width="16" height="16" alt="download"
title="download"/></a></td>
<td style="text-align: center;">
return callback();
req = $.ajax({
- url: '{% url 'patchwork.views.api.submitters' %}?q=' +
+ url: '{% url 'api-submitters' %}?q=' +
encodeURIComponent(query) + '&l=10',
error: function() {
callback();
<p>To use pwclient, you will need:</p>
<ul>
- <li>The <a href="{% url 'patchwork.views.pwclient.pwclient' %}">pwclient</a>
+ <li>The <a href="{% url 'pwclient' %}">pwclient</a>
program (11kB, python script)</li>
<li>(optional) a <code>.pwclientrc</code> file in your home directory.</li>
</ul>
<p>You can create your own <code>.pwclientrc</code> file. Each
-<a href="{% url 'patchwork.views.project.list' %}">patchwork project</a>
+<a href="{% url 'project-list' %}">patchwork project</a>
provides a sample linked from the 'project info' page.</p>
{% endblock %}
<input type="submit" value="Login"/>
</td>
<td class="submitrow">
- <a href="{% url 'django.contrib.auth.views.password_reset' %}">
+ <a href="{% url 'password_reset' %}">
Forgot password?
</a>
</td>
<td>Patchwork <strong>may not</strong> send automated notifications to
this address.</td>
<td>
- <form method="post" action="{% url 'patchwork.views.mail.optin' %}">
+ <form method="post" action="{% url 'mail-optin' %}">
{% csrf_token %}
<input type="hidden" name="email" value="{{email}}"/>
<input type="submit" value="Opt-in"/>
</form>
</td>
-
+
{% else %}
<td>Patchwork <strong>may</strong> send automated notifications to
this address.</td>
<td>
- <form method="post" action="{% url 'patchwork.views.mail.optout' %}">
+ <form method="post" action="{% url 'mail-optout' %}">
{% csrf_token %}
<input type="hidden" name="email" value="{{email}}"/>
<input type="submit" value="Opt-out"/>
{% endif %}
{% if user.is_authenticated %}
-<p>Return to your <a href="{% url 'patchwork.views.user.profile' %}">user
+<p>Return to your <a href="{% url 'user-profile' %}">user
profile</a>.</p>
{% endif %}
To complete the opt-in process, visit:
- http://{{site.domain}}{% url 'patchwork.views.confirm' key=confirmation.key %}
+ http://{{site.domain}}{% url 'confirm' key=confirmation.key %}
If you didn't request this opt-in, you don't need to do anything.
automated email from this patchwork system, using the address
<strong>{{email}}</strong>.</p>
<p>If you later decide that you no longer want to receive automated mail from
-patchwork, just visit <a href="{% url 'patchwork.views.mail.settings' %}"
->http://{{site.domain}}{% url 'patchwork.views.mail.settings' %}</a>, or
+patchwork, just visit <a href="{% url 'mail-settings' %}"
+>http://{{site.domain}}{% url 'mail-settings' %}</a>, or
visit the main patchwork page and navigate from there.</p>
{% if user.is_authenticated %}
-<p>Return to your <a href="{% url 'patchwork.views.user.profile' %}">user
+<p>Return to your <a href="{% url 'user-profile' %}">user
profile</a>.</p>
{% endif %}
{% endblock %}
{% endif %}
{% if user.is_authenticated %}
-<p>Return to your <a href="{% url 'patchwork.views.user.profile' %}">user
+<p>Return to your <a href="{% url 'user-profile' %}">user
profile</a>.</p>
{% endif %}
To complete the opt-out process, visit:
- http://{{site.domain}}{% url 'patchwork.views.confirm' key=confirmation.key %}
+ http://{{site.domain}}{% url 'confirm' key=confirmation.key %}
If you didn't request this opt-out, you don't need to do anything.
different sites, as they are run independently. You may need to opt-out of
those separately.</p>
<p>If you later decide to receive mail from patchwork, just visit
-<a href="{% url 'patchwork.views.mail.settings' %}"
->http://{{site.domain}}{% url 'patchwork.views.mail.settings' %}</a>, or
+<a href="{% url 'mail-settings' %}"
+>http://{{site.domain}}{% url 'mail-settings' %}</a>, or
visit the main patchwork page and navigate from there.</p>
{% if user.is_authenticated %}
-<p>Return to your <a href="{% url 'patchwork.views.user.profile' %}">user
+<p>Return to your <a href="{% url 'user-profile' %}">user
profile</a>.</p>
{% endif %}
{% endblock %}
This is an automated mail sent by the patchwork system at
{{site.domain}}. To stop receiving these notifications, edit
your mail settings at:
- http://{{site.domain}}{% url 'patchwork.views.mail.settings' %}
+ http://{{site.domain}}{% url 'mail-settings' %}
<input type="checkbox" name="patch_id:{{patch.id}}"/>
</td>
{% endif %}
- <td><a href="{% url 'patchwork.views.patch.patch' patch_id=patch.id %}"
+ <td><a href="{% url 'patch-detail' patch_id=patch.id %}"
>{{ patch.name|default:"[no subject]"|truncatechars:100 }}</a></td>
<td style="white-space: nowrap;">{{ patch|patch_tags }}</td>
<td style="white-space: nowrap;">{{ patch|patch_checks }}</td>
{% block title %}{{patch.name}}{% endblock %}
{% block breadcrumb %}
-<a href="{% url 'patchwork.views.patch.list' project_id=project.linkname %}"
+<a href="{% url 'patch-list' project_id=project.linkname %}"
>{{ project.linkname }} patches</a>
→
{{ patch.name }}
<a href="javascript:toggle_headers('hide-patch', 'patch')" id="hide-patch">hide</a></span>
{% if patch.content %}
<span>|</span>
- <a href="{% url 'patchwork.views.patch.content' patch_id=patch.id %}"
+ <a href="{% url 'patch-raw' patch_id=patch.id %}"
>download patch</a>
{% endif %}
<span>|</span>
- <a href="{% url 'patchwork.views.patch.mbox' patch_id=patch.id %}"
+ <a href="{% url 'patch-mbox' patch_id=patch.id %}"
>download mbox</a>
</h2>
<div id="patch" class="patch">
{% if user.profile.maintainer_projects.count %}
Maintainer of
{% for project in user.profile.maintainer_projects.all %}
-<a href="{% url 'patchwork.views.patch.list' project_id=project.linkname %}"
+<a href="{% url 'patch-list' project_id=project.linkname %}"
>{{ project.linkname }}</a>{% if not forloop.last %},{% endif %}{% endfor %}.
{% endif %}
{% if user.profile.contributor_projects.count %}
Contributor to
{% for project in user.profile.contributor_projects.all %}
-<a href="{% url 'patchwork.views.patch.list' project_id=project.linkname %}"
+<a href="{% url 'patch-list' project_id=project.linkname %}"
>{{ project.linkname }}</a>{% if not forloop.last %},{% endif %}{% endfor %}.
{% endif %}
</p>
<div class="box">
<h2>Todo</h2>
{% if user.profile.n_todo_patches %}
- <p>Your <a href="{% url 'patchwork.views.user.todo_lists' %}">todo
+ <p>Your <a href="{% url 'user-todo' %}">todo
list</a> contains {{ user.profile.n_todo_patches }}
patch{{ user.profile.n_todo_patches|pluralize:"es" }}.</p>
{% else %}
<td>{{ email.email }}</td>
<td>
{% ifnotequal user.email email.email %}
- <form action="{% url 'patchwork.views.user.unlink' person_id=email.id %}"
+ <form action="{% url 'user-unlink' person_id=email.id %}"
method="post">
{% csrf_token %}
<input type="submit" value="Unlink"/>
</td>
<td>
{% if email.is_optout %}
- <form method="post" action="{% url 'patchwork.views.mail.optin' %}">
+ <form method="post" action="{% url 'mail-optin' %}">
No,
{% csrf_token %}
<input type="hidden" name="email" value="{{email.email}}"/>
<input type="submit" value="Opt-in"/>
</form>
{% else %}
- <form method="post" action="{% url 'patchwork.views.mail.optout' %}">
+ <form method="post" action="{% url 'mail-optout' %}">
Yes,
{% csrf_token %}
<input type="hidden" name="email" value="{{email.email}}"/>
{% endfor %}
<tr>
<td colspan="3">
- <form action="{% url 'patchwork.views.user.link' %}" method="post">
+ <form action="{% url 'user-link' %}" method="post">
{% csrf_token %}
{{ linkform.email }}
<input type="submit" value="Add"/>
<li><a href="{{ bundle.get_absolute_url }}">{{ bundle.name }}</a></li>
{% endfor %}
</ul>
-<p>Visit the <a href="{%url 'patchwork.views.bundle.bundles' %}">bundles
+<p>Visit the <a href="{%url 'bundle-list' %}">bundles
page</a> to manage your bundles.</p>
{% else %}
<p>You have no bundles.</p>
<div class="box">
<h2>Authentication</h2>
-<a href="{% url 'django.contrib.auth.views.password_change' %}">Change password</a>
+<a href="{% url 'password_change' %}">Change password</a>
</div>
</div>
</table>
{% if settings.ENABLE_XMLRPC %}
-<p>Sample <a href="{% url 'patchwork.views.help.help' "pwclient/" %}">patchwork
+<p>Sample <a href="{% url 'help' "pwclient/" %}">patchwork
client</a> configuration for this project: <a
-href="{% url 'patchwork.views.pwclient.pwclientrc' project.linkname %}"
+href="{% url 'pwclientrc' project.linkname %}"
>.pwclientrc</a>.</p>
{% endif %}
{% for p in projects %}
<div class="project">
<h2 class="project-title">
- <a href="{% url 'patchwork.views.patch.list' project_id=p.linkname %}"
+ <a href="{% url 'patch-list' project_id=p.linkname %}"
>{{p.linkname}}</a>
</h2>
<div class="project-name">{{p.name}}</div>
# default={{ project.linkname }}
[{{ project.linkname }}]
-url= {{scheme}}://{{site.domain}}{% url 'patchwork.views.xmlrpc.xmlrpc' %}
+url= {{scheme}}://{{site.domain}}{% url 'xmlrpc' %}
{% if user.is_authenticated %}
username: {{ user.username }}
password: <add your patchwork password here>
<p>Registraton confirmed!</p>
<p>Your patchwork registration is complete. Head over to your <a
- href="{% url 'patchwork.views.user.profile' %}">profile</a> to start using
+ href="{% url 'user-profile' %}">profile</a> to start using
patchwork's extra features.</p>
{% endblock %}
{% for todo_list in todo_lists %}
<tr>
<td><a
- href="{% url 'patchwork.views.user.todo_list' project_id=todo_list.project.linkname %}"
+ href="{% url 'user-todo-project' project_id=todo_list.project.linkname %}"
>{{ todo_list.project.name }}</a></td>
<td class="numberformat">{{ todo_list.n_patches }}</td>
</tr>
your patchwork account</p>
{% endif %}
-<p>Back to <a href="{% url 'patchwork.views.user.profile' %}">your
+<p>Back to <a href="{% url 'user-profile' %}">your
profile</a>.</p>
{% endblock %}
<ul class="errorlist"><li>{{error}}</li></ul>
{% endif %}
- <form action="{% url 'patchwork.views.user.link' %}" method="post">
+ <form action="{% url 'user-link' %}" method="post">
{% csrf_token %}
{{linkform.email.errors}}
Link an email address: {{ linkform.email }}
So that you can add it to your patchwork profile. You can confirm this
email address by visiting the url:
- http://{{site.domain}}{% url 'patchwork.views.confirm' key=confirmation.key %}
+ http://{{site.domain}}{% url 'confirm' key=confirmation.key %}
Happy patchworking.
else:
linktext = escape(person.email)
- url = reverse('patchwork.views.patch.list',
+ url = reverse('patch-list',
kwargs={'project_id': project.linkname})
str = '<a href="%s?%s=%s">%s</a>' % (
url, SubmitterFilter.param, escape(person.id), linktext)
def _confirmation_url(conf):
- return reverse('patchwork.views.confirm',
- kwargs={'key': conf.key})
+ return reverse('confirm', kwargs={'key': conf.key})
class TestUser(object):
patches present"""
project = defaults.project
defaults.project.save()
- url = reverse('patchwork.views.patch.list',
- kwargs={'project_id': project.linkname})
+ url = reverse('patch-list', kwargs={'project_id': project.linkname})
response = self.client.get(url)
self.assertContains(response, 'No patches to display')
self.assertNotContains(response, 'tbody')
[test_fn(p1, p2) for (p1, p2) in pairs]
def testDateOrder(self):
- url = reverse('patchwork.views.patch.list',
+ url = reverse('patch-list',
kwargs={'project_id': defaults.project.linkname})
response = self.client.get(url + '?order=date')
self._test_sequence(response, test_fn)
def testDateReverseOrder(self):
- url = reverse('patchwork.views.patch.list',
+ url = reverse('patch-list',
kwargs={'project_id': defaults.project.linkname})
response = self.client.get(url + '?order=-date')
self._test_sequence(response, test_fn)
def testSubmitterOrder(self):
- url = reverse('patchwork.views.patch.list',
+ url = reverse('patch-list',
kwargs={'project_id': defaults.project.linkname})
response = self.client.get(url + '?order=submitter')
self._test_sequence(response, test_fn)
def testSubmitterReverseOrder(self):
- url = reverse('patchwork.views.patch.list',
+ url = reverse('patch-list',
kwargs={'project_id': defaults.project.linkname})
response = self.client.get(url + '?order=-submitter')
class MailSettingsTest(TestCase):
def setUp(self):
- self.url = reverse('patchwork.views.mail.settings')
+ self.url = reverse('mail-settings')
def testMailSettingsGET(self):
response = self.client.get(self.url)
self.assertTemplateUsed(response, 'patchwork/mail-settings.html')
self.assertEqual(response.context['is_optout'], False)
self.assertContains(response, '<strong>may</strong>')
- optout_url = reverse('patchwork.views.mail.optout')
+ optout_url = reverse('mail-optout')
self.assertContains(response, ('action="%s"' % optout_url))
def testMailSettingsPOSTOptedOut(self):
self.assertTemplateUsed(response, 'patchwork/mail-settings.html')
self.assertEqual(response.context['is_optout'], True)
self.assertContains(response, '<strong>may not</strong>')
- optin_url = reverse('patchwork.views.mail.optin')
+ optin_url = reverse('mail-optin')
self.assertContains(response, ('action="%s"' % optin_url))
class OptoutRequestTest(TestCase):
def setUp(self):
- self.url = reverse('patchwork.views.mail.optout')
+ self.url = reverse('mail-optout')
def testOptOutRequestGET(self):
response = self.client.get(self.url)
self.assertRedirects(
- response, reverse('patchwork.views.mail.settings'))
+ response, reverse('mail-settings'))
def testOptoutRequestValidPOST(self):
email = u'foo@example.com'
self.assertContains(response, email)
# check email
- url = reverse('patchwork.views.confirm', kwargs={'key': conf.key})
+ url = reverse('confirm', kwargs={'key': conf.key})
self.assertEqual(len(mail.outbox), 1)
msg = mail.outbox[0]
self.assertEqual(msg.to, [email])
class OptoutTest(TestCase):
def setUp(self):
- self.url = reverse('patchwork.views.mail.optout')
+ self.url = reverse('mail-optout')
self.email = u'foo@example.com'
self.conf = EmailConfirmation(type='optout', email=self.email)
self.conf.save()
def testOptoutValidHash(self):
- url = reverse('patchwork.views.confirm',
- kwargs={'key': self.conf.key})
+ url = reverse('confirm', kwargs={'key': self.conf.key})
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
class OptinRequestTest(TestCase):
def setUp(self):
- self.url = reverse('patchwork.views.mail.optin')
+ self.url = reverse('mail-optin')
self.email = u'foo@example.com'
EmailOptout(email=self.email).save()
def testOptInRequestGET(self):
response = self.client.get(self.url)
- self.assertRedirects(
- response, reverse('patchwork.views.mail.settings'))
+ self.assertRedirects(response, reverse('mail-settings'))
def testOptInRequestValidPOST(self):
response = self.client.post(self.url, {'email': self.email})
self.assertContains(response, self.email)
# check email
- url = reverse('patchwork.views.confirm',
- kwargs={'key': conf.key})
+ url = reverse('confirm', kwargs={'key': conf.key})
self.assertEqual(len(mail.outbox), 1)
msg = mail.outbox[0]
self.assertEqual(msg.to, [self.email])
self.conf.save()
def testOptinValidHash(self):
- url = reverse('patchwork.views.confirm',
- kwargs={'key': self.conf.key})
+ url = reverse('confirm', kwargs={'key': self.conf.key})
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
"""Test an opt-in with no existing opt-out"""
def setUp(self):
- self.url = reverse('patchwork.views.mail.optin')
+ self.url = reverse('mail-optin')
def testOptInWithoutOptout(self):
email = u'foo@example.com'
page, for logged-in users"""
def setUp(self):
- self.url = reverse('patchwork.views.user.profile')
- self.optout_url = reverse('patchwork.views.mail.optout')
- self.optin_url = reverse('patchwork.views.mail.optin')
+ self.url = reverse('user-profile')
+ self.optout_url = reverse('mail-optout')
+ self.optin_url = reverse('mail-optin')
self.form_re_template = ('<form\s+[^>]*action="%(url)s"[^>]*>'
'.*?<input\s+[^>]*value="%(email)s"[^>]*>.*?'
'</form>')
def _confirmation_url(conf):
- return reverse('patchwork.views.confirm',
- kwargs={'key': conf.key})
+ return reverse('confirm', kwargs={'key': conf.key})
class TestUser(object):
self.client.login(username=self.user.username,
password=self.user.username)
self.properties_form_id = 'patchform-properties'
- self.url = reverse(
- 'patchwork.views.patch.list', args=[defaults.project.linkname])
+ self.url = reverse('patch-list', args=[defaults.project.linkname])
self.base_data = {
'action': 'Update', 'project': str(defaults.project.id),
'form': 'patchlistform', 'archived': '*', 'delegate': '*',
def _confirmation_url(conf):
- return reverse('patchwork.views.confirm',
- kwargs={'key': conf.key})
+ return reverse('confirm', kwargs={'key': conf.key})
class TestUser(object):
user = None
def setUp(self):
- self.form_url = reverse('django.contrib.auth.views.password_change')
- self.done_url = reverse(
- 'django.contrib.auth.views.password_change_done')
+ self.form_url = reverse('password_change')
+ self.done_url = reverse('password_change_done')
def testPasswordChangeForm(self):
self.user = TestUser()
fixtures = ['default_states']
def setUp(self):
- self.url = (self.live_server_url +
- reverse('patchwork.views.xmlrpc.xmlrpc'))
+ self.url = (self.live_server_url + reverse('xmlrpc'))
self.rpc = xmlrpc_client.Server(self.url)
def testGetRedirect(self):
response = self.client.patch(self.url)
self.assertRedirects(response,
- reverse('patchwork.views.help.help',
- kwargs={'path': 'pwclient/'}))
+ reverse('help', kwargs={'path': 'pwclient/'}))
def testList(self):
defaults.project.save()
if bundle:
return HttpResponseRedirect(
django.core.urlresolvers.reverse(
- 'patchwork.views.bundle.bundle',
+ 'bundle-detail',
kwargs={'bundle_id': bundle.id}
)
)
else:
return HttpResponseRedirect(
- django.core.urlresolvers.reverse(
- 'patchwork.views.bundle.list')
+ django.core.urlresolvers.reverse('bundle-list')
)
if action == 'delete':
bundle.delete()
return HttpResponseRedirect(
- django.core.urlresolvers.reverse(
- 'patchwork.views.user.profile')
+ django.core.urlresolvers.reverse('user-profile')
)
elif action == 'update':
form = BundleForm(request.POST, instance=bundle)
form = None
context = generic_list(request, bundle.project,
- 'patchwork.views.bundle.bundle',
+ 'bundle-detail',
view_args={'username': bundle.owner.username,
'bundlename': bundle.name},
filter_settings=filter_settings,
def mbox_redir(request, bundle_id):
bundle = get_object_or_404(Bundle, id=bundle_id, owner=request.user)
return HttpResponseRedirect(django.core.urlresolvers.reverse(
- 'patchwork.views.bundle.mbox', kwargs={
+ 'bundle-mbox', kwargs={
'username': request.user.username,
'bundlename': bundle.name,
}))
def list(request, project_id):
project = get_object_or_404(Project, linkname=project_id)
- context = generic_list(request, project, 'patchwork.views.patch.list',
+ context = generic_list(request, project, 'patch-list',
view_args={'project_id': project.linkname})
return render_to_response('patchwork/list.html', context)
if projects.count() == 1:
return HttpResponseRedirect(
- urlresolvers.reverse('patchwork.views.patch.list',
+ urlresolvers.reverse('patch-list',
kwargs={'project_id': projects[0].linkname}))
context['projects'] = projects
person.user = None
person.save()
- url = django.core.urlresolvers.reverse('patchwork.views.user.profile')
+ url = django.core.urlresolvers.reverse('user-profile')
return HttpResponseRedirect(url)
@csrf_exempt
def xmlrpc(request):
if request.method not in ['POST', 'GET']:
- return HttpResponseRedirect(reverse('patchwork.views.help.help',
+ return HttpResponseRedirect(reverse('help',
kwargs={'path': 'pwclient/'}))
response = HttpResponse()
<span class="icon-bar"></span>
</button>
<span class="navbar-brand"><a
- href="{% url 'patchwork.views.project.list' %}">Patchwork</a>
+ href="{% url 'project-list' %}">Patchwork</a>
{% block heading %}{% endblock %}</span>
</div>
<div class="collapse navbar-collapse" id="navbar-collapse">
<ul class="nav navbar-nav navbar-right">
{% if project %}
- <li><a href="{% url 'patchwork.views.project.project' project_id=project.linkname %}"
+ <li><a href="{% url 'project-detail' project_id=project.linkname %}"
>Project Info</a></li>
<li><p class="navbar-text">|</p></li>
{% endif %}
{% if user.is_authenticated %}
- <li><a href="{% url 'patchwork.views.user.todo_lists' %}">Todo
+ <li><a href="{% url 'user-todos' %}">Todo
<span class="badge">{{ user.profile.n_todo_patches }}</span></a>
</li>
- <li><a href="{% url 'patchwork.views.bundle.bundles' %}">Bundles</a></li>
+ <li><a href="{% url 'bundle-list' %}">Bundles</a></li>
{% if user.is_staff %}
<li><a href="{% url 'admin:index' %}">Admin</a></li>
{% endif %}
><strong>{{ user.username }}</strong> <span
class="caret" /></a>
<ul class="dropdown-menu" role="menu">
- <li><a href="{% url 'patchwork.views.user.profile' %}">View profile</a></li>
+ <li><a href="{% url 'user-profile' %}">View profile</a></li>
<li><a href="{% url 'auth_logout' %}">Logout</a></li>
</ul>
</li>
{% else %}
<li><a href="{% url 'auth_login' %}">Login</a></li>
- <li><a href="{% url 'patchwork.views.user.register' %}">Register</a></li>
- <li><a href="{% url 'patchwork.views.mail.settings' %}">Mail settings</a></li>
+ <li><a href="{% url 'user-register' %}">Register</a></li>
+ <li><a href="{% url 'mail-settings' %}">Mail settings</a></li>
{% endif %}
</div>
</div>
{% if project %}
<div id="breadcrumb">
<div id="breadcrumb-left">
- <a href="{% url 'patchwork.views.project.list' %}">All projects</a>
+ <a href="{% url 'project-list' %}">All projects</a>
→
{% block breadcrumb %}
- <a href="{% url 'patchwork.views.patch.list' project_id=project.linkname %}"
+ <a href="{% url 'patch-list' project_id=project.linkname %}"
>{{ project.linkname }} patches</a>
{% endblock %}
</div>
<div id="footer">
<a href="http://jk.ozlabs.org/projects/patchwork/">patchwork</a>
patch tracking system | <a
- href="{% url 'patchwork.views.help.help' path="about/" %}">about patchwork</a>
+ href="{% url 'help' path="about/" %}">about patchwork</a>
</div>
</body>
</html>