| Commit message (Expand) | Author | Age |
... | |
* | filters: Use the glyphicons for add/remove signs•••They give a much better contrast the the one already there.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-11-05 |
* | style.css: Rename the breadcrumb selectors•••Bootstrap called what was the header bar "navigation". Let's rename the
nav* selector with 'breadcrumb' so there's no confusion with bootstrap's
nagivation elements and selectors.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-11-05 |
* | style.css: Provide a default <h2> style•••Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Belén Barros Peña <belen.barros.pena@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Belén Barros Peña | 2015-11-05 |
* | html: Turn the navbar into a breadcrumb bar•••So we can have a somewhat of a hierarchical progression:
All projects -> $project patches -> patch name
That should also help when we add series, we'll be able to just add the
series in there.
By default, we have:
All projects -> $project patches
both being links, so we can return to the list of patches from any page
where the project is defined. The '$project patches' link becomes
insensitive in the list page. Finally the patch page adds the patch at
the end.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Belén Barros Peña <belen.barros.pena@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Belén Barros Peña | 2015-11-05 |
* | base: Don't display the breadcrumb bar on the project list page•••We already have the information on the main bar, no need to have a
breadcum bar here.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
| Damien Lespiau | 2015-11-05 |
* | base: Move the project info into the navigation bar•••The goal is still to have a proper breadcrumb bar. One more little step
towards it.
v2: Rename "About ${project}" to "Project Info" (Stephen Finucane)
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
| Damien Lespiau | 2015-11-05 |
* | templates: Remove extraneous blank line at the end of base.html•••Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-11-05 |
* | templates: Move "About" at the bottom of the page•••This is part of the steps needed to make the "nav" bar into a pure
breadcrumb trail. It's quite usual these days to have "about" style
links at the bottom of pages.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Belén Barros Peña <belen.barros.pena@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Belén Barros Peña | 2015-11-05 |
* | templates: Redesign the breadcrumbs bar•••Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-11-05 |
* | templates: Redesign the title bar•••Let's use HTML5 <nav> and bootstrap navigation facilities for this.
Among the nice things that bootstrap brings to the table, the navigation
bar is now mobile friendly: it will collapse when either, being
displayed on a mobile device or when the screen isn't wide enough, to
show the various items in a togglable menu. This can be tested by
resizing the browser to have a width < 768px.
This commit is just about layout changes, keeping the exact same
information displayed on the page.
This is based on work from Belén Barros Peña, but transposed to
bootstrap.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-11-05 |
* | style.css: Tune <a> styling•••The links aren't underlined anymore. If, once visited, they are to
become black, we won't be able to distinguish them from regular text.
Instead let's decide about a color for links so they can be spotted,
even after a visit.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Belén Barros Peña | 2015-11-05 |
* | style.css: Move the global <a> styling at the top•••Otherwise we can't properly have a generic <a> styling that gets
specialized as needed.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-11-05 |
* | sytle.css: Remove the body selector, letting bootstrap's shine through•••Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-11-05 |
* | list: Replace the 16-arrow* icons by glyphicons•••They look more modern.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-11-05 |
* | template: Add bootstrap to the base template•••Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-11-05 |
* | htdocs: Add bootstrap•••Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
| Damien Lespiau | 2015-11-05 |
* | settings: Also define SERVER_EMAIL for email logs•••Django can send emails to admins on 500 HTTP errors when DEBUG is false.
That looks handy. That mechanism uses SERVER_EMAIL for the From:
address, which defaults to root@localhost and can cause problems in the
email delivery.
Use the same address than DEFAULT_FROM_EMAIL by default.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-11-05 |
* | settings: Move DEFAULT_FROM_EMAIL to the core settings section•••DEFAULT_FROM_EMAIL is actually a django setting, not a patchwork one.
v2: Capitalize the 'E' of 'Email' (Stephen Finucane)
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-11-05 |
* | views: patch-list: show the 'Properties' update box for all users•••Any authenticated user should be able to change the properties of their
own patches from the list view. They can already do so from the patch
view and from pwclient.
Now, authenticated users can perform 'Change state', 'Delegate to', and
'Archive' operations on multiple patches at a time (e.g., after
'select-all' on a bundle, or after selecting a few patches
individually). We'll print an error message to the page for any patches
which can't be updated (e.g., due to ownership).
This fixes a usability issue that has been reported a few times.
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Brian Norris | 2015-11-04 |
* | parsemail: Don't catch exceptions when saving patches and comments•••We'd like to know when those operations fail in production so we can at
least inspect what happened through the email send to settings.ADMINS in
main().
Catching those exceptions early prevents that.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-10-27 |
* | tests: Fix a typo in the MboxPassThroughHeaderTest description•••Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-10-27 |
* | gitignore: Explicitly ignore dirs in lib/packages•••This file ignores everything at the moment. This doesn't look like a
good idea, there are also jquery files there.
We ignore django/ because installing django there is what currently is
documented to do.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-10-27 |
* | gitignore: Only ignore quilt files at the root of the repository•••So, say, a 'series' directory in the project (added in a later patch)
doesn't get ignored.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-10-27 |
* | wsgi.conf: Fix the path in the Directory directive•••The path in <Directory> didn't match the one defined in Alias.
While at it, remove the unnecessary quotes.
Reported-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-10-26 |
* | docs: Add basic API guide•••Because it is now possible to access the auto-generated XML-RPC
documentation, only provide a brief "HOWTO" on using the 'xmlrpclib'
library and a note on how to find this autogenerated documentation.
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
| Stephen Finucane | 2015-10-26 |
* | views/xmlrpc: Remove unneeded '""' parameters•••These don't make semantic sense: if a user didn't provide a parameter
then we should check for None.
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
| Stephen Finucane | 2015-10-26 |
* | views/xmlrpc: Add serialization documentation•••Add some documentation for the XML-RPC serializers, including examples.
This will help developers understand exactly what the API *should* be
returning for each given method.
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
| Stephen Finucane | 2015-10-26 |
* | views/xmlrpc: Add documentation for API methods•••This will be useful for populating the XML-RPC API documentation.
Note that this uses the Google-style docstring format. This format is
easier to read than the information-dense, "classic" Sphinx docstring
format making it more suitable for use with pydoc (which does not do
any post-processing and it used by the 'DocXMLRPCServer' module). If
generating documentation using Sphinx, this will require the usage of
the 'sphinx.ext.napoleon' extension.
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
| Stephen Finucane | 2015-10-26 |
* | views/xmlrpc: Add xmlrpc automatic documentation•••The DocXMLRPCServer module (standard library) provides documentation
for XML-RPC dispatchers via pydoc. Use this module rather than
reinventing the wheel.
Also update a test that no longer makes sense (the GET method now
retrieves documentation - it shouldn't redirect. Use PATCH instead).
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
| Stephen Finucane | 2015-10-26 |
* | trivial: Clean up 'views/xmlrpc.py'•••Resolve some issues with the aforementioned file. These are mostly
stylistic changes.
Signed-off-by: Stephen Finucane <stephenfinucane@hotmail.com>
| Stephen Finucane | 2015-10-26 |
* | parsemail: Mail error information to ADMINS when parsing fails•••We can use the built-in mechanism from django to send error emails when
failing to parse a mail. The error mails will have contain the full
guitly mail and the corresponding backtrace for debugging purposes.
v2: Add 2 PEP8 blank lines (Stephen Finucane)
v3: Remove one blank line (Stephen Finucane)
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-10-26 |
* | flake: Restrict flake to the patchwork directory•••Right now flake will inspect everything in the root directory. We can
avoid a bit of work, telling it to only look at the patchwork/
directory.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-10-26 |
* | tox: Omit tests and manage.py when running coverage tests•••Having the tests in the coverage reports artifically improve the
coverage percentage, because every line in tests is being run.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Reviewed-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-10-26 |
* | docs: Update Git URLs to GitHub•••Per move to GitHub:
https://lists.ozlabs.org/pipermail/patchwork/2015-October/001873.html
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
| Stephen Finucane | 2015-10-26 |
* | doc: Add CHANGELOG and UPGRADING docs•••The CHANGELOG document should describe the high level changes of the
project. This will provide a human-readable way for people to evaluate
the changes in each release. This file is based on the templates and
general changelog "ethos" provided by 'Keep a CHANGELOG':
http://keepachangelog.com/
The UPGRADING document provide instruction for system admininstrators
managing patchwork deployments. At the moment, this document is a
rename and minor reformatting of the existing 'docs/NEWS' document, but
going forward documentation will be added for each new release.
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
| Stephen Finucane | 2015-10-26 |
* | pwclient: use argparse's error() function for bad input•••This reduces the boilerplate we need and provides a more consistent help
output. e.g.:
$ pwclient update -s FOO -c 1337 314159 1234567
usage: pwclient update [--help] [-h HASH] [-p PROJECT] [-c COMMIT-REF]
[-s STATE] [-a {yes,no}]
[ID [ID ...]]
pwclient update: error: Declining update with COMMIT-REF on multiple IDs
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Stephen Finucane <stephen.finucane@intel.com>
| Brian Norris | 2015-10-20 |
* | pwclient: rework multi-command help text•••Our --help handling is convoluted and confusing, since we're hacking
around using some of argparse's built-in features (like generating
--help arguments for us). It seems like we were hacking around the
conflict between -h used for hashes and -h used for automatic help
flags. Fortunately, Python's argparse provides us with a
'conflict_handler' which will resolve these conflicts for us.
Altogether, this patch means that 'pwclient --help' will not generate a
full recursive print of all subcommand helps (arguably a good thing),
but it provides better automatic formatting of all the supported
subcommands and eliminates some awkward code.
Sample runs:
$ pwclient
usage: pwclient [-h]
{apply,git-am,get,info,projects,states,view,update,list,search}
...
optional arguments:
-h, --help show this help message and exit
Commands:
{apply,git-am,get,info,projects,states,view,update,list,search}
apply Apply a patch (in the current dir, using -p1)
git-am Apply a patch to current git branch using "git am".
get Download a patch and save it locally
info Display patchwork info about a given patch ID
projects List all projects
states Show list of potential patch states
view View a patch
update Update patch
list List patches, using the optional filters specified
below and an optional substring to search for patches
by name
search Alias for "list"
Use 'pwclient <command> --help' for more info
$ pwclient info --help
usage: pwclient info [--help] [-h HASH] [-p PROJECT] [ID [ID ...]]
positional arguments:
ID Patch ID
optional arguments:
--help show this help message and exit
-h HASH Lookup by patch hash
-p PROJECT Lookup patch in project
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Stephen Finucane <stephen.finucane@intel.com>
| Brian Norris | 2015-10-20 |
* | pwclient: require one or more of pwclient -{a,s}•••Previously, we required the -s flag for 'pwclient update'. But since we
allow updating up to 2 different fields ('archived' and 'state'), drop
the required flag, and just enforce that the user must provide -a, -s,
or both.
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Stephen Finucane <stephen.finucane@intel.com>
| Brian Norris | 2015-10-20 |
* | pwclient: dict.iteritems() is deprecated in Python 3•••Just use dict.items(), since there are few fields and we don't really
care about the extra copying.
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Stephen Finucane <stephen.finucane@intel.com>
| Brian Norris | 2015-10-20 |
* | pwclient: basic python3 support•••This fixes a few random issues to make the script work at least somewhat
under python 3:
- set the default encoding to utf-8
- handle xmlrpclib/xmlrpc.client module renames
- handle ConfigParser/configparser module renames
- add a unicode() stub for python 3
- fix old style class definition w/Filter
- use list comprehension instead of map()
- drop the unused version= keyword w/argparse
The code still runs under python 2 the same as before, and now works for
the most part under python 3 -- the handling of encoded content still needs
some work, but that'll require more surgery, and is best left to another
commit after this.
Signed-off-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Stephen Finucane <stephen.finucane@hotmail.com>
| Mike Frysinger | 2015-10-16 |
* | pwclient: use print_function for better py3 compatibility•••The script already tries to use print like a function in many places but
is really passing a parenthesized string. Import the print_function from
the future module so that it actually works as intended.
We also need to fix up a few latent print statements to make it work.
Signed-off-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Stephen Finucane <stephen.finucane@hotmail.com>
| Mike Frysinger | 2015-10-16 |
* | pwclient: handle missing ~/.pwclientrc better•••The upgrade path will crash if ~/.pwclientrc doesn't exist, so add an
explicit check for the file before we try to "upgrade" it.
The default error messages don't mention the config file, so it can be
a bit confusing what pwclient is complaining about when running.
Signed-off-by: Mike Frysinger <vapier@chromium.org>
Acked-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Stephen Finucane <stephen.finucane@hotmail.com>
| Mike Frysinger | 2015-10-16 |
* | Highlight patches with Acked/Reviewed/Tested tags•••A little while ago, accounting of the number of Acked-by, Reviewed-by
and Tested-by tags was added to patchwork. The count of such tags per
patch is shown in the "A / R / T" column.
However, since the values are shown for all patches regardless of
whether they are zero or not, it makes it not very easy to spot the
patches that have at least one Acked-by, Tested-by or Reviewed-by tag.
Therefore, this patch proposes to replace a count of "0" by a "-". So
patches with no tags will have "- - -" in their A/R/T column, and
patches with some tags may get "1 - 1" for example.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Stephen Finucane <stephen.finucane@intel.com>
| Thomas Petazzoni | 2015-10-16 |
* | models: Resolve issues with Patch.state•••The initial migration introduced in '30bb271' was incomplete: running
'makemigrations' on the current codebase will produce a migration which
could not be applied cleanly. The reason for this was the non-loading
of initial data for the 'State' model.
Fix this issue by only referencing the contents of the 'State' model
when we have to (on save of a 'Patch' object), thus allowing the user
suitable time to apply this initial data.
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
Acked-by: Damien Lespiau <damien.lespiau@intel.com>
| Stephen Finucane | 2015-10-16 |
* | login: Focus the username field on load•••Wolfram wanted a small usability improvement that's easy to add: placing
the cursor automatically in the user name field when loading the login
page.
Suggested-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
| Damien Lespiau | 2015-09-18 |
* | templates: Pull jquery into base.html•••Bootstrap needs jquery for its own JS facilities, so include it on every
page.
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
| Damien Lespiau | 2015-09-18 |
* | tests: Move 'reverse' calls inside 'setUp'•••Django creates test databases after it loads tests. However, any
operations that exist at class level will be executed before this
database is created. Fix the instances of this issue (mostly 'reverse'
calls or similar) by moving the calls into the relevant 'setUp'
functions for each test.
Acked-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
| Stephen Finucane | 2015-09-18 |
* | settings: Move 'TEST_RUNNER' to correct location•••Try to keep the order/structure of this file intact for as
long as possible.
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
| Stephen Finucane | 2015-09-17 |
* | settings: Fix deprecated 'TEST_CHARSET' warning•••Resolve a 'RemovedInDjango19Warning' with the 'TEST_CHARSET' option.
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
| Stephen Finucane | 2015-09-17 |
* | trivial: Add missing licenses to 'management'•••Acked-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
| Stephen Finucane | 2015-09-17 |