]> git.ozlabs.org Git - patchwork/log
patchwork
11 years agotemplates: Don't rely on bool(Page)
Jeremy Kerr [Sun, 17 Jun 2012 08:06:37 +0000 (16:06 +0800)]
templates: Don't rely on bool(Page)

The behaviour of bool(Page) changed in django 1.4 - it no longer
evaluates to False when page has no objects.

When checking for an empty patch list, use page.paginator.count.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
11 years agomodels: Add connection parameter for HashField.db_type.
Jeremy Kerr [Fri, 4 May 2012 01:52:23 +0000 (09:52 +0800)]
models: Add connection parameter for HashField.db_type.

This is required by django-1.4.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
11 years agotests: Find test data relative to file location
Dirk Wallenstein [Thu, 3 May 2012 02:45:39 +0000 (02:45 +0000)]
tests: Find test data relative to file location

Make test execution independent of the current directory.

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
11 years agotests/notifications: Add test for escaped patch names
Jeremy Kerr [Tue, 1 May 2012 07:51:38 +0000 (15:51 +0800)]
tests/notifications: Add test for escaped patch names

.. to test for the fix introduced in 18986b7e.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
11 years agonotifications: do not HTML-escape patch change notifications
Stefan Hajnoczi [Sun, 15 Jan 2012 09:49:24 +0000 (09:49 +0000)]
notifications: do not HTML-escape patch change notifications

Patch change notifications are text/plain emails and should not
HTML-escape patch names.  This means quotes and ampersands in patch
names should not be turned into &quot; and &amp; HTML entities.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
11 years agotests: Check the right optin email
Dirk Wallenstein [Mon, 30 Apr 2012 09:17:55 +0000 (09:17 +0000)]
tests: Check the right optin email

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
11 years agotests/patchparser: abstract delegate and state testing
Jeremy Kerr [Mon, 30 Apr 2012 06:40:15 +0000 (14:40 +0800)]
tests/patchparser: abstract delegate and state testing

No need to repeat the same query logic.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
11 years agotests/patchparser: don't assume PK values
Jeremy Kerr [Mon, 30 Apr 2012 06:34:48 +0000 (14:34 +0800)]
tests/patchparser: don't assume PK values

PK values may not start at 1 for each test, so remove filters that
assume this.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
11 years agotests: Add tests for explicit delegate and state requests
Dirk Wallenstein [Sun, 29 Apr 2012 03:11:49 +0000 (03:11 +0000)]
tests: Add tests for explicit delegate and state requests

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
11 years agoUse an explicit initial default patch state
Dirk Wallenstein [Sun, 29 Apr 2012 03:11:48 +0000 (03:11 +0000)]
Use an explicit initial default patch state

This will make editing states through the admin UI less error-prone, and
will facilitate parsing patches when relying on a default state, as well as
testing.

Use the explicit default state when parsing mails.

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
12 years agoparser: allow words starting with "diff" at beginning of line
Stefan Hajnoczi [Sat, 14 Jan 2012 01:17:40 +0000 (01:17 +0000)]
parser: allow words starting with "diff" at beginning of line

The patch parser splits emails incorrectly when the comment contains a
line whose first word starts with "diff" (like "difficult" or
"different").

For a real-life example of an email that triggers this bug, see
http://patchwork.ozlabs.org/patch/135291/.

Fix the issue by checking for a space after "diff".  Add
DiffWordInCommentTest to the test suite.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
12 years agosql: remove development migration script
Jeremy Kerr [Thu, 8 Dec 2011 14:28:22 +0000 (22:28 +0800)]
sql: remove development migration script

The projectmaintainer heirachy hasn't been implemented, so we don't need
the migration script yet.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
12 years agotests/patchparser: Add CVS format patch test
Jeremy Kerr [Thu, 8 Dec 2011 14:07:28 +0000 (22:07 +0800)]
tests/patchparser: Add CVS format patch test

Test that CVS-formatted patches are parsed correctly, and that we
capture the correct 'Index: ' metadata.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
12 years agotests: add abstract mbox parsing test
Jeremy Kerr [Thu, 8 Dec 2011 14:00:43 +0000 (22:00 +0800)]
tests: add abstract mbox parsing test

Add a new class to handle mbox-parsing code, abstracting what is done by
the current git-pull tests.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
12 years agofilters: handle utf-8 characters when building filter querystring
Jeremy Kerr [Thu, 8 Dec 2011 13:42:26 +0000 (21:42 +0800)]
filters: handle utf-8 characters when building filter querystring

Currently, we build the filter querystring by passing the raw string to
urllib.quote, which expects an encoded string. When the raw string (in
this case, a unicode object) contains a unicode character, quote()
raises a KeyError.

This fixes the problem by encoding the parameter name and values to
UTF-8 first.

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
12 years agopatchwork: new pwclient git-am action
david decotigny [Tue, 22 Nov 2011 09:12:48 +0000 (09:12 +0000)]
patchwork: new pwclient git-am action

This commit adds a new "pwclient git-am" action which applies given
patch ID on the current git branch using "git am". It's convenient to
keep track and authorship of patches applied locally from a patchwork
server.

Signed-off-by: David Decotigny <david.decotigny@google.com>
12 years agoparser: allow other protocol types in pull-request handling
Jeremy Kerr [Fri, 25 Nov 2011 09:55:19 +0000 (17:55 +0800)]
parser: allow other protocol types in pull-request handling

Change the parser's regex to allow other protocol types, not just git://

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
12 years agomodels: Update Person & UserProfile object whenever User is saved
Jeremy Kerr [Mon, 19 Sep 2011 02:33:51 +0000 (10:33 +0800)]
models: Update Person & UserProfile object whenever User is saved

Currently, UserProfiles are only saved on creation of the User object,
before the first_name and last_name attributes are set. This means that
we fallback to using the User.username value as the new Person.name.

This change modifies User's post-save signal to always update the Person
object, both on creation and updates. This means we get the proper name
appearing on Person instances.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
12 years agoMerge branch 'notifications'
Jeremy Kerr [Mon, 19 Sep 2011 01:42:44 +0000 (09:42 +0800)]
Merge branch 'notifications'

12 years agoxmlrpc: do slice before patch_to_dict
Jeremy Kerr [Mon, 18 Jul 2011 13:46:08 +0000 (21:46 +0800)]
xmlrpc: do slice before patch_to_dict

Currently, we map patch_to_dict before we slice the results (to only
return max_count patches). This means that we hacve to retrieve all
patches, then throw away most of the results of the map.

This change does the slice on the patches before the map, letting django
do a LIMIT-ed query instead.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agosettings: Use multiple-DB-style format for default settings
Jeremy Kerr [Tue, 19 Apr 2011 05:18:45 +0000 (13:18 +0800)]
settings: Use multiple-DB-style format for default settings

The DATABASE_* settings have been deprecated in django 1.3, replaced by
the multiple-database style format (introduced in 1.2, which patchwork
requires anyway).

This change modifies the default settings.py to use the new format.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoPatchwork now requires Django 1.2, so state that in docs/INSTALL
Guilherme Salgado [Thu, 14 Apr 2011 04:16:36 +0000 (04:16 +0000)]
Patchwork now requires Django 1.2, so state that in docs/INSTALL

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoOrder: always set Order.order
Jeremy Kerr [Tue, 19 Apr 2011 05:09:36 +0000 (13:09 +0800)]
Order: always set Order.order

If we create an Order objecty with editable = True, we don't initialise
self.order, leading to testsuite failures with django-1.3.

This change always initialises Order.order (and Order.reversed), so we
don't exit the constructor without these initalised.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agonotifications: implement opt-out notifications
Jeremy Kerr [Thu, 14 Apr 2011 11:37:55 +0000 (19:37 +0800)]
notifications: implement opt-out

Check for opt-out status before sending notification mail.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agonotifications: Add NOTIFICATION_FROM_EMAIL setting
Jeremy Kerr [Thu, 14 Apr 2011 03:25:47 +0000 (11:25 +0800)]
notifications: Add NOTIFICATION_FROM_EMAIL setting

Allow a separate From: address for notificaton emails.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agonotifications: Add code to send notifications
Jeremy Kerr [Tue, 29 Mar 2011 14:18:54 +0000 (22:18 +0800)]
notifications: Add code to send notifications

Add a function (patchwork.utils.send_notifications) to process the
PatchChangeNotification queue. We try to group mail to the same sender,
by waiting settings.NOTIFICATION_DELAY_MINUTES to allow other
notifications to arrive.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agomodels: Add PatchChangeNotification and record patch state changes
Jeremy Kerr [Tue, 29 Mar 2011 03:58:39 +0000 (11:58 +0800)]
models: Add PatchChangeNotification and record patch state changes

Add a PatchChangeNotification model to keep track of changes to a
patch's state. Hook this up to Patch's pre_save signal.

Requires a DB schema upgrade.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoAdd email opt-out system
Jeremy Kerr [Wed, 11 Aug 2010 06:16:28 +0000 (14:16 +0800)]
Add email opt-out system

We're going to start generating emails on patchwork updates, so firstly
allow people to opt-out of all patchwork communications.

We do this with a 'mail settings' interface, allowing non-registered
users to set preferences on their email address. Logged-in users can do
this through the user profile view.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoregistration: use EmailConfimation rather than separate registration app
Jeremy Kerr [Sun, 31 Oct 2010 23:29:29 +0000 (19:29 -0400)]
registration: use EmailConfimation rather than separate registration app

Since we have infrastructure for email confirmations, we no longer need
the separate registration app.

Requires a migration script, which will delete all inactive users,
including those newly added and pending confirmation. Use carefully.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoUse generic email confirmation object
Jeremy Kerr [Thu, 12 Aug 2010 04:15:48 +0000 (12:15 +0800)]
Use generic email confirmation object

Rather than having a UserPerson-specific confirmation, add an
EmailConfirmation object to allow multiple types of confirmations (eg,
opt-out requests in future).

To do this, we use a view (patchwork.views.confirm) that will call the
type-specific view with the confirmation object.

Also, add tests to check that the User/Person linkage system works.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoforms: Fix MultipleBooleanField.to_python when the field value is missing
Guilherme Salgado [Wed, 13 Apr 2011 06:11:07 +0000 (06:11 +0000)]
forms: Fix MultipleBooleanField.to_python when the field value is missing

If you write a test for, say, the bundle form of a patch list, you'd
still have to specify the 'no change' value to other form (e.g. the
multiple update one) fields using MultipleBooleanField or else it'd
raise a ValueError when field.clean() is called as part of
form._get_errors().

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agomodels: use implied line continuations
Jeremy Kerr [Thu, 14 Apr 2011 06:58:10 +0000 (14:58 +0800)]
models: use implied line continuations

Use the implied line continuations, and make the indentation more clear.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agomodels: Project.is_editable to check whether a user has edit rights
Guilherme Salgado [Tue, 12 Apr 2011 11:35:10 +0000 (11:35 +0000)]
models: Project.is_editable to check whether a user has edit rights

This is to replace the couple of places where we duplicate this same
check.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoviews: Refactor generic_list() to make it less complicated
Guilherme Salgado [Tue, 12 Apr 2011 11:34:57 +0000 (11:34 +0000)]
views: Refactor generic_list() to make it less complicated

When a form is submitted it now delegates to separate processing
functions according to the action.  Apart from being more readable it's
now a lot easier to add extra forms for processing lists of patches.

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoadmin: Streamline admin model registration
Dirk Wallenstein [Fri, 1 Apr 2011 07:12:15 +0000 (07:12 +0000)]
admin: Streamline admin model registration

Use autodiscover and the new way to hook AdminSite into the URLconf.
AdminSite.root() will be removed in Django-1.3 as noted here:
http://docs.djangoproject.com/en/dev/internals/deprecation/

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agosettings: Remove hard-coded absolute paths
Guilherme Salgado [Mon, 28 Feb 2011 02:38:29 +0000 (02:38 +0000)]
settings: Remove hard-coded absolute paths

This is so that you don't have to change a dozen variables when you
deploy an instance somewhere other than on /srv/patchwork.

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agopatchwork-update-commits: add missing `update` to command line
Paul Menzel [Wed, 23 Mar 2011 17:10:31 +0000 (18:10 +0100)]
patchwork-update-commits: add missing `update` to command line

Otherwise the following error is shown:

    Too many arguments specified

Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoRemove a bunch of unused variables
Guilherme Salgado [Mon, 28 Feb 2011 02:40:44 +0000 (02:40 +0000)]
Remove a bunch of unused variables

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoUse the 'in' operator instead of dict.has_key(), which has been deprecated
Guilherme Salgado [Mon, 28 Feb 2011 02:39:36 +0000 (02:39 +0000)]
Use the 'in' operator instead of dict.has_key(), which has been deprecated

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoparser: Get rid of some code duplication in parsemail-batch.sh
Guilherme Salgado [Mon, 28 Feb 2011 01:54:18 +0000 (01:54 +0000)]
parser: Get rid of some code duplication in parsemail-batch.sh

Change parsemail-bash.sh to uses parsemail.sh (instead of parsemail.py),
as the former sets the required environment variables that were being
set in parsemail-batch.sh.

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotemplates: remove redundant 'about' link from main nav
Jeremy Kerr [Mon, 28 Mar 2011 09:32:31 +0000 (17:32 +0800)]
templates: remove redundant 'about' link from main nav

We have a link to the about page right below.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agomodels: use User.post_save signal to create UserProfile objects
Jeremy Kerr [Thu, 10 Mar 2011 10:06:50 +0000 (18:06 +0800)]
models: use User.post_save signal to create UserProfile objects

Rather than relying on the registration app's callback mechanism to
create the UserProfile object, use the post_save signal on auth.User.

This means that the UserProfile will be created regardless of how the
User was created.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoReplace tab characters with spaces on .py files
Guilherme Salgado [Wed, 9 Mar 2011 10:00:56 +0000 (10:00 +0000)]
Replace tab characters with spaces on .py files

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoRemove unused imports
Guilherme Salgado [Wed, 9 Mar 2011 01:15:06 +0000 (01:15 +0000)]
Remove unused imports

This is so that we can use static analysis tools like pyflakes to find
undefined names (and other common mistakes we often make) without being
swamped with unused imports warnings.

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoviews: use id__in = get_patch_ids() to get the modified patch set
Jeremy Kerr [Wed, 9 Mar 2011 05:20:10 +0000 (13:20 +0800)]
views: use id__in = get_patch_ids() to get the modified patch set

Currently, we generic_list processes patches in order of the patch_id:X
parameter, which is arbitrarily decided by the browser.

By using id__in, we get patches sorted by the default Patch model
ordering. This means that the (arbitrary) order of get_patch_ids()
doesn't affect the ordering of patches that we process, and bundles
are created with a reasonable default patch order.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoforms: Fix archiving/unarchiving of patches on patch lists
Guilherme Salgado [Mon, 28 Feb 2011 02:37:03 +0000 (02:37 +0000)]
forms: Fix archiving/unarchiving of patches on patch lists

It was broken because MultipleBooleanField() was leaking string values instead
of boolens as expected by MultiplePatchForm.

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoparser: Allow pull requests to include a diff
Guilherme Salgado [Mon, 28 Feb 2011 01:50:24 +0000 (01:50 +0000)]
parser: Allow pull requests to include a diff

If a patch comes along with a pull request and a diff, add both to the
Patch model.

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoRemove unused templates and some code for processing them
Guilherme Salgado [Wed, 23 Feb 2011 06:34:40 +0000 (06:34 +0000)]
Remove unused templates and some code for processing them

These seem to be what was used in the past to archive/unarchive and delete
patches.

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agofilters: quote param names and values when constructing querystrings
Jeremy Kerr [Mon, 28 Feb 2011 06:43:31 +0000 (14:43 +0800)]
filters: quote param names and values when constructing querystrings

Use urllib.quote to sanitise parameter names and values; prevents
escaped ampersands in the input qs from appearing unescaped in the
link output.

Add a testcase for the unescaped qs fragments

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotests: Support execution of single tests
Dirk Wallenstein [Wed, 16 Feb 2011 08:41:30 +0000 (08:41 +0000)]
tests: Support execution of single tests

Django does not use suite() when executing single tests.  Importing all
tests directly into __init__.py has the same effect as the replaced
version of suite().

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agopatchwork-update-commits: autodetect patchwork install directory
Sascha Silbe [Fri, 11 Feb 2011 04:49:21 +0000 (04:49 +0000)]
patchwork-update-commits: autodetect patchwork install directory

Make patchwork-update-commits work from outside the Patchwork git
repository so it can be used for other projects.

Signed-off-by: Sascha Silbe <sascha-pgp@silbe.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agohelpers: Change patchwork.wsgi to include the apps/ dir in sys.path
Guilherme Salgado [Tue, 15 Feb 2011 02:30:54 +0000 (02:30 +0000)]
helpers: Change patchwork.wsgi to include the apps/ dir in sys.path

Without this, templates will crash as they reference patchwork.<module>
directly.

Also removes the patchwork.wsgi symlink from the root and use the real
file in patchwork.wsgi.conf instead, as suggested by Dirk Wallenstein.

Signed-off-by: Guilherme Salgado <guilherme.salgado@linaro.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoparser: Recognize mail headers for delegate and state
Dirk Wallenstein [Wed, 26 Jan 2011 05:12:29 +0000 (05:12 +0000)]
parser: Recognize mail headers for delegate and state

Introduce two new Patchwork mail headers that determine the initial
state and delegate of a patch.  They take a state name as displayed in
Patchwork and the email address of the wanted delegate.  An example:

X-Patchwork-State: Changes Requested
X-Patchwork-Delegate: maintainer@project.tld

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoadmin: Embellish model change lists
Dirk Wallenstein [Tue, 18 Jan 2011 00:16:00 +0000 (00:16 +0000)]
admin: Embellish model change lists

Add fields to the admin change list pages of patchwork models, and add
filters and search boxes where appropriate.

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotests/parser: Add test for wrapped git pull requests
Jeremy Kerr [Fri, 11 Feb 2011 01:45:54 +0000 (09:45 +0800)]
tests/parser: Add test for wrapped git pull requests

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoparser: Account for mail client line wrapping in pull requests
Dirk Wallenstein [Mon, 17 Jan 2011 00:40:43 +0000 (00:40 +0000)]
parser: Account for mail client line wrapping in pull requests

If a mail client wraps the line with the sha, there won't necessarily be
a space after 'commit'.

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agomodels: Don't require optional model fields in forms
Dirk Wallenstein [Sun, 16 Jan 2011 23:46:48 +0000 (23:46 +0000)]
models: Don't require optional model fields in forms

Add blank = True for nullable fields, to allow forms to be subitted
without a value for these fields.

The keyword 'blank' concerns only validation and does not change what
will be stored in the database.

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agomodels: Implement __unicode__ in models instead of __str__
Dirk Wallenstein [Sat, 15 Jan 2011 01:16:21 +0000 (01:16 +0000)]
models: Implement __unicode__ in models instead of __str__

According to the Django documentation at [1] it is recommended to
implement __unicode__ and not __str__.  Django's model base class
provides a __str__ method that will use the __unicode__ method and
convert to utf-8.  Also, every text value returned from the DB through
the model is unicode.

It is now possible to edit Patches and Persons that have values with
non-ASCII characters through the admin interface.

[1] http://docs.djangoproject.com/en/1.2/ref/unicode/

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotemplates: Spelling fix
Dirk Wallenstein [Wed, 12 Jan 2011 23:05:07 +0000 (23:05 +0000)]
templates: Spelling fix

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoReplace tab in indentation with space
Dirk Wallenstein [Wed, 12 Jan 2011 23:05:08 +0000 (23:05 +0000)]
Replace tab in indentation with space

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotemplates: Fix pwclient no-match messages
Dirk Wallenstein [Wed, 12 Jan 2011 23:05:09 +0000 (23:05 +0000)]
templates: Fix pwclient no-match messages

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agodocs: Fix link creation example
Dirk Wallenstein [Wed, 12 Jan 2011 23:05:06 +0000 (23:05 +0000)]
docs: Fix link creation example

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotests/parser: Add subject encoding tests
Jeremy Kerr [Fri, 11 Feb 2011 00:45:51 +0000 (08:45 +0800)]
tests/parser: Add subject encoding tests

We should now be able to decode internationalised Subject headers, so
add tests for this.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoparser: Decode the subject header
Dirk Wallenstein [Wed, 12 Jan 2011 22:37:56 +0000 (22:37 +0000)]
parser: Decode the subject header

The clean_header function decodes internationalized headers.  Use it for
the subject, too.

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoRevert "Decode patch from UTF-8 while parsing from stdin"
Jeremy Kerr [Thu, 10 Feb 2011 03:19:23 +0000 (11:19 +0800)]
Revert "Decode patch from UTF-8 while parsing from stdin"

This reverts commit 7fd7d0bbe4e3fce405e02e9e630ef70023fdd43e.

parse_patch() will never be handed anything but unicode, so no need to
do the decode.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoDecode patch from UTF-8 while parsing from stdin
martin f. krafft [Fri, 5 Feb 2010 03:33:25 +0000 (04:33 +0100)]
Decode patch from UTF-8 while parsing from stdin

Patchwork (rightfully) hashes patches using UTF-8:

  parser.py:
    def hash_patch(str):
      […]
      hash.update(line.encode('utf-8') + '\n')

This patch makes sure that it treats the incoming data as UTF-8 as well.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agopwclient: fix handling of UTF-8 char in submitter name
Andreas Bießmann [Tue, 7 Dec 2010 15:48:20 +0000 (16:48 +0100)]
pwclient: fix handling of UTF-8 char in submitter name

This patch fixes following bug in 'list':

---8<---
# pwclient list -p uboot -w andreas.devel | grep New
Traceback (most recent call last):
  File "/Users/andreas/bin/pwclient", line 463, in <module>
    main()
  File "/Users/andreas/bin/pwclient", line 411, in main
    action_list(rpc, filt, submitter_str, delegate_str)
  File "/Users/andreas/bin/pwclient", line 182, in action_list
    (person['name'], person['email'])
UnicodeEncodeError: 'ascii' codec can't encode character u'\xdf' in
position 32: ordinal not in range(128)
--->8---

Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotemplates: use custom templates for password change
Jeremy Kerr [Fri, 10 Dec 2010 04:24:14 +0000 (12:24 +0800)]
templates: use custom templates for password change

Add a couple of templates to keep the password change flow in the same
look & feel as the rest of the site.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoAdd link to password change form on user profile page
Sascha Silbe [Mon, 29 Nov 2010 17:44:29 +0000 (12:44 -0500)]
Add link to password change form on user profile page

Signed-off-by: Sascha Silbe <sascha-pgp@silbe.org>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agomodels: Fix HeaderParser import on python 2.4
Jeremy Kerr [Tue, 2 Nov 2010 17:23:53 +0000 (13:23 -0400)]
models: Fix HeaderParser import on python 2.4

We need to add an import for HeaderParser on python 2.4; email.Parser
appears to contain the right stuff.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoAdd support for git-pull requests
Jeremy Kerr [Fri, 22 Oct 2010 06:14:10 +0000 (14:14 +0800)]
Add support for git-pull requests

Add a a pull_url to the Patch object, and update the parser to look for
git-pull style emails.

Requires SQL migration script.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoparsemail: change tab to space
Jeremy Kerr [Fri, 22 Oct 2010 04:41:37 +0000 (12:41 +0800)]
parsemail: change tab to space

minor whitespace fix.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoparser: Recognize X-list list header
Ralf Baechle [Wed, 22 Sep 2010 15:17:30 +0000 (16:17 +0100)]
parser: Recognize X-list list header

Ecartis inserts X-list list headers.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotests/updates: Add delegate clear test
Jeremy Kerr [Fri, 3 Sep 2010 04:40:43 +0000 (12:40 +0800)]
tests/updates: Add delegate clear test

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoforms: change MultiplePatchForm from a ModelForm to a Form
Jeremy Kerr [Fri, 3 Sep 2010 03:29:28 +0000 (11:29 +0800)]
forms: change MultiplePatchForm from a ModelForm to a Form

ModelForm was causing validation issues, especially with no-change
fields on required model fields.

Add a test for updating a required field (state) through
MultiplePatchForm.

Change it to a normal form, and call instance.setattr manually. This
makes the new test pass.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotests/updates: Add multiple invalid state change test
Jeremy Kerr [Thu, 2 Sep 2010 11:11:53 +0000 (19:11 +0800)]
tests/updates: Add multiple invalid state change test

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoviews/patch: remove unused code
Jeremy Kerr [Thu, 2 Sep 2010 10:51:20 +0000 (18:51 +0800)]
views/patch: remove unused code

The number of times I've edited this code and wondered why nothing
changes...

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoforms.MultiplePatchForm: remove no-change fields on clean()
Jeremy Kerr [Thu, 2 Sep 2010 10:47:38 +0000 (18:47 +0800)]
forms.MultiplePatchForm: remove no-change fields on clean()

We need to remove no-change fields, as newer versions of django are
checking for proper types on validation.

Fixes MultipleUpdateTest.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotests: Add multiple patch update test
Jeremy Kerr [Thu, 2 Sep 2010 10:46:37 +0000 (18:46 +0800)]
tests: Add multiple patch update test

Add a test for updating mulitple patches. Currently fails with django
1.1.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoviews/user: don't refer to request.POST for non-POST requests
Jeremy Kerr [Wed, 11 Aug 2010 08:28:25 +0000 (16:28 +0800)]
views/user: don't refer to request.POST for non-POST requests

We're ending up wth form errors due to using request.POST, which is
empty.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agocss: specify a sans-serif font
Jeremy Kerr [Tue, 10 Aug 2010 04:22:20 +0000 (12:22 +0800)]
css: specify a sans-serif font

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotemplates: remove "beta"
Jeremy Kerr [Tue, 10 Aug 2010 04:17:03 +0000 (12:17 +0800)]
templates: remove "beta"

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoviews: implement CSRF protection
Jeremy Kerr [Tue, 10 Aug 2010 04:11:40 +0000 (12:11 +0800)]
views: implement CSRF protection

Since we've got the csrf token present, we may as well check it for
requests.

We're using RequestContext already (via PatchworkRequestContext), so we
just need to switch it on in the settings, and add an exemption on the
xmlrpc interface.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotemplates: Add CSRF (cross-site request forgery) values to form posts
John 'Warthog9' Hawley [Thu, 24 Jun 2010 16:38:06 +0000 (09:38 -0700)]
templates: Add CSRF (cross-site request forgery) values to form posts

This is a fairly simple patch, basically it does what the error message
told me to do:
"add In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL."

Signed-off-by: John 'Warthog9' Hawley <warthog9@kernel.org>
13 years agoparser: decode stdin from utf-8
Jeremy Kerr [Tue, 10 Aug 2010 03:55:57 +0000 (11:55 +0800)]
parser: decode stdin from utf-8

We need to decode stdin from the patch parser as UTF-8, rather than
python assuming ascii.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotests/utils: Specify content encoding on MIMEText() construction
Jeremy Kerr [Tue, 10 Aug 2010 03:41:58 +0000 (11:41 +0800)]
tests/utils: Specify content encoding on MIMEText() construction

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotools: add simple patchwork-update-commits script
Jeremy Kerr [Tue, 10 Aug 2010 03:33:35 +0000 (11:33 +0800)]
tools: add simple patchwork-update-commits script

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agosql: Add uncommitted migration scripts
Jeremy Kerr [Tue, 10 Aug 2010 03:22:01 +0000 (11:22 +0800)]
sql: Add uncommitted migration scripts

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agodocs: fix apache2 references
Jeremy Kerr [Tue, 10 Aug 2010 03:18:50 +0000 (11:18 +0800)]
docs: fix apache2 references

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoRemove broken registration symlink
Jeremy Kerr [Tue, 10 Aug 2010 02:40:24 +0000 (10:40 +0800)]
Remove broken registration symlink

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agolib/apache2: Add WSGI Handler
Martin Krafft [Sun, 31 Jan 2010 01:32:45 +0000 (02:32 +0100)]
lib/apache2: Add WSGI Handler

Patchwork/Django can be run directly with WSGI, which is bound to be
faster and less complex than FastCGI. This patch provides the necessary
Apache configuration and the WSGI handler, as well as an update to the
docs.

Since python-flup is deprecated and WSGI supersedes FastCGI, it should
be(come) the preferred method. Hence I documented it first.

For the xmlrpc interface to work with WSGI, the HTTP authorization
information needs to be passed to the WSGI handler. This is done by
setting WSGIPassAuthorization On in the apache2 config file snippet.

Ref: http://www.arnebrodowski.de/blog/508-Django,-mod_wsgi-and-HTTP-Authentication.html

Signed-off-by: martin f. krafft <madduck@madduck.net>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agodocs: Document password-based pgsql login
Martin Krafft [Sun, 31 Jan 2010 02:03:10 +0000 (03:03 +0100)]
docs: Document password-based pgsql login

As an alternative to ident-based authentication for PostgreSQL, one can
use password-based authentication. This patch adds the alternative to
the docs.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agodocs: reformat INSTALL
Jeremy Kerr [Tue, 10 Aug 2010 02:20:06 +0000 (10:20 +0800)]
docs: reformat INSTALL

Fix up some tabs.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agodocs: elaborate on lib/ dirs in INSTALL
Jeremy Kerr [Tue, 10 Aug 2010 02:17:58 +0000 (10:17 +0800)]
docs: elaborate on lib/ dirs in INSTALL

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agodocs: update INSTALL for commonly-available packages
Jeremy Kerr [Tue, 10 Aug 2010 02:16:31 +0000 (10:16 +0800)]
docs: update INSTALL for commonly-available packages

We probably don't need to download django or django-registration
anymore.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agoRegistration framework maintained on bitbucket
Martin Krafft [Fri, 29 Jan 2010 21:03:52 +0000 (22:03 +0100)]
Registration framework maintained on bitbucket

The django-registration framework is now maintained on bitbucket, which
requires some changes to the in-tree symlink and the documentation.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotools: Update license for post-receive hook.
Jeremy Kerr [Tue, 10 Aug 2010 01:19:05 +0000 (09:19 +0800)]
tools: Update license for post-receive hook.

Martin has allowed distribution under the GPL.
 http://lists.ozlabs.org/pipermail/patchwork/2010-June/000263.html

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotools: Add a simple sample Git post-receive hook
Martin Krafft [Thu, 4 Feb 2010 17:33:14 +0000 (17:33 +0000)]
tools: Add a simple sample Git post-receive hook

This patch adds a post-receive hook to lib/git, which can be used to
update Patchwork following a push to the Git repository.

Surely, it can be improved. One thing to do would be to export the state
map to git-config somehow.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotools: De-hyphenate Git commands in update-patchwork-status.py
Martin Krafft [Thu, 4 Feb 2010 16:18:54 +0000 (16:18 +0000)]
tools: De-hyphenate Git commands in update-patchwork-status.py

Even though update-patchwork-status.py doesn't really do anything yet,
it uses the ancient way to call Git commands, so this patch fixes that.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
13 years agotemplates/patch-list: add default text for patches with no name
Jeremy Kerr [Tue, 10 Aug 2010 00:58:12 +0000 (08:58 +0800)]
templates/patch-list: add default text for patches with no name

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>