aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* templates/patch: Add check summary panelStephen Finucane2015-11-05
| | | | | | | | | | | Add a table to display the checks associated with a patch. This includes the requisite styling along with some additional filters. Signed-off-by: Stephen Finucane <stephen.finucane@intel.com> -- v3: Slight restyling per web UI rework
* templates/patch-list: Add patch "checks" columnStephen Finucane2015-11-05
| | | | | | | | Add a column to display the important "checks" fields for each patch. Note that only the "completed" checks are shown (i.e. "in progress" and "not started" checks are ignored). Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* models: Add properties related to checksStephen Finucane2015-11-05
| | | | | | | | | Add properties for 'Patch' to get the unique checks associated with a patch, the total number of each type of check and the combined state of the check. These will be necessary to display this information to the user. Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* models: Add 'check' modelStephen Finucane2015-11-05
| | | | | | | | | | | | This will represent the status of tests executed (or executing) against a patch. This includes a suitable migration and admin view. Signed-off-by: Stephen Finucane <stephenfinucane@hotmail.com> -- v3: Remove manual SQL migrations - they're not necessary/possible for Django 1.7/1.8, respectively
* trivial: Cleanup of 'admin.py'Stephen Finucane2015-11-05
| | | | | | | | | | Resolve some issues with the aforementioned file. These are mostly stylistic changes. In addition, add a missing license. The date and author are calculated from Git logs. Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* trivial: Cleanup of 'models.py'Stephen Finucane2015-11-05
| | | | | | | Resolve some issues with the aforementioned file. These are mostly stylistic changes. Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* Remove Django < 1.7 blocksStephen Finucane2015-11-05
| | | | | | | Seeing as we no longer support these versions of Django, there is no need to keep these blocks around. Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* tox: Remove the '-django16' targetsStephen Finucane2015-11-05
| | | | | | | This version of Django 1.6 is no longer supported and there is no need to test against it. Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* docs: Note removed support for Django 1.6Stephen Finucane2015-11-05
| | | | Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* docs: Emphasise the deprecation of Django 1.6Stephen Finucane2015-11-05
| | | | | | | | Though already mentioned in the CHANGELOG, the UPGRADING document should describe plans to deprecate support for Django 1.6. This will ensure sysadmins are not suprised when they attempt to upgrade. Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* CHANGELOG: Add XML-RPC changesStephen Finucane2015-11-05
| | | | | | This was missed in the original patchset. Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* CHANGELOG: Add UI rework and Selenium featuresStephen Finucane2015-11-05
| | | | Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* tests: Add a way for the user to skip selenium testsDamien Lespiau2015-11-05
| | | | | | | | | | | | It's a bit more convoluted to setup the test environment to work with selenium (eg. needs a browser installed and Xorg running, ...). It's possible someone would want to skip those. v2: Use 'PW' prefix rather than 'PATCHWORK', per existing test parameters, and pass said variable through tox Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* tests: Add a couple of Selenium testsDamien Lespiau2015-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While developing the new series UI, several bug crept in but weren't discovered until later. All because we don't have in-browser tests to go along the lower level tests we already have. In particular, behaviours that need javascript to run cannot be tested outside of a full environment with the pages being served to an actual browser. This commit introduces selenium to the test suite and starts with 2 simple tests to give a taste of what it looks like. test_default_focus: make sure we do focus the username field on the login page test_login: shows how to chain actions to test the full login phase. This is quite similar the lower level test, except it also checks we display the username once logged in. v2: Use LiveServerTestCase for django pre-1.7 v3: Propagate the DISPLAY environment variable to have an X display specified for the browser v4: Log execution of the chrome driver, useful for debugging v5: Rebase on top of upstream v6: Pass environmental variables to tox and ensure PEP8 compliance Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* tox: Use a range of ports for live serversDamien Lespiau2015-11-05
| | | | | | | | | | | | | | | | | | | | | | From: https://docs.djangoproject.com/en/1.8/topics/testing/tools/#liveservertestcase In the case where the tests are run by multiple processes in parallel (for example, in the context of several simultaneous continuous integration builds), the processes will compete for the same address, and therefore your tests might randomly fail with an "Address already in use" error. For example: Traceback (most recent call last): File ".../python2.7/site-packages/django/test/testcases.py", line 1193, in setUpClass raise cls.server_thread.error error: [Errno 98] Address already in use Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* tests: Don't change settings.STATIC_URL in the XML-RPC testsDamien Lespiau2015-11-05
| | | | | | | | | | | | | | | | | I tracked down a weird bug where the Selenium tests supposed to serve all static files (.css, .js. ...) weren't doing so when running the full test suite, but everything was working when running the tests in isolation. Turns out one of the other tests was changing settings.STATIC_URL mid-way without restoring the original value in tearDown() and thus impacting other tests. It seems that this change wasn't necessary, the XML-RPC server doesn't server any static file anyway. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* tests: Use --noinput when running testsDamien Lespiau2015-11-05
| | | | | | | | | | | | | | | | We don't want prompts when running tests, especially when they are run through tox and most likely on a CI server. When cancelling a test mid-way, the test db is not destroyed ans subsequent runs will fail trying to create it and asking the user what to do. --noinput will use the default answer, that is to destroy the test db and start anew. v2: Rebase on top of upstream v3: Rebase, yet again. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com> (v2)
* tests: Remove a spurious new lineDamien Lespiau2015-11-05
| | | | | Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* filters: Fix submitter display when we only have an email addressDamien Lespiau2015-11-05
| | | | | | | | | I'm fairly sure I fixed that already, but here we go again. It's totally valid to only have an email address for the submitter, so handle that case properly. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* filters: Submit the form when <Enter> is pressed on a closed submitter fieldDamien Lespiau2015-11-05
| | | | | | | | | | | | | | <Enter> when an element of the form is focused should submit the form. Before this patch, when <Enter> was pressed on the submitter button, nothing would happen. So, we tweak our <Enter> handling on the submitter input a bit more: <Enter> can be used to select the submitter from the autocompletion list, but, when pressed a second time (ie. when the autocompletion option has be selected and the dropdown isn't shown), we submit the form. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
* filter: Tweak the autocompletion behaviour on <Enter>Damien Lespiau2015-11-05
| | | | | | | | | | | | | | No patch has landed yet and we've already had feedback from users (which is a good thing!) that didn't want to lose the "quick" submitter search by just typing a string and pressing <Enter> without having to wait for the autocompletion to finish. This will also make <Enter> do something useful for input strings that have fewer than 4 characters, the autocompletion query only triggers after that. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* patch-list: Use table-condensed to display the patch listDamien Lespiau2015-11-05
| | | | | | | | | | Wolfram didn't like the fact we're now seeing far fewer patches on a single page. That sounds fair enough and the table-condensed bootstrap class removes some padding, hopefully making it better. 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>
* patch: Capitalize "Incoming Patches"Damien Lespiau2015-11-05
| | | | | | | It's a title after all. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* base: Don't put the logout button in the is_staff blockDamien Lespiau2015-11-05
| | | | | | | Regular users didn't have their logout/profile drop down! Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* patch-list: Limit the number of chars to 100 for the patch subjectDamien Lespiau2015-11-05
| | | | | | | | | | | | It can happen that people send a patch with a huge subject, by mistake. Make sure it can interfere too much with the list of patches. As an email subject can include extra words compared to a patch subject (list header, tags, ...) let's have a slightly larger limit than 72 or 80. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* patch: Move the submitter and date out of the detailsBelén Barros Peña2015-11-05
| | | | | | | Trying to reduce the number of read-only fields in details. Signed-off-by: Belén Barros Peña <belen.barros.pena@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
* patch: Redesign slightly the comment headersBelén Barros Pena2015-11-05
| | | | | | Signed-off-by: Belén Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* patch: Put the download links next to the "Patch" headerBelén Barros Peña2015-11-05
| | | | | | | | v2: Fix 'dowload' typo x 2 (Bryce Harrington) Signed-off-by: Belén Barros Peña <belen.barros.pena@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* patch: Override Bootstrap's <pre> stylingDamien Lespiau2015-11-05
| | | | | | | To look more like what patchwork was using. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* patch: Pull the patch between the commit message and commentsDamien Lespiau2015-11-05
| | | | | | This follows a logical flow, commit message, patch then comments. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
* patch: Single out the commit messageDamien Lespiau2015-11-05
| | | | | | | | | | | | | All 'Comments' are stored the same way in the db, but I believe it's worth making the distinction between introducing what the patch does and eventual review comments. v3: Fix docstrings v2: Use two new Patch methods to retrieve the commit message and the other comments (called answers here) (Jeremy Kerr) Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
* patch: Remove the permalink itemDamien Lespiau2015-11-05
| | | | | | | One just has to copy the URL, no real need to duplicate that fact. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* style: Make the submission tables use #0A0A47Damien Lespiau2015-11-05
| | | | | Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* boxes: Style boxes like the patch formDamien Lespiau2015-11-05
| | | | | | | | Here again, a pass may be needed in the future, but for now, make things consistent. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* patchform: Minimal changes so patchform titles don't look out of placeDamien Lespiau2015-11-05
| | | | | | | | | | | I'd like to add editing in place in the list of patches instead of having to select, scroll down and make the changes. For the time being, just change the header background color and padding space. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* paginator: Redesign the paginatorBelén Barros Peña2015-11-05
| | | | | | | | | | | | A few things: - Use the … glyph - Remove the box around the page numbers - Slight restyling Signed-off-by: Belén Barros Peña <belen.barros.pena@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* paginator: Tweak the number of pages shownBelén Barros Peña2015-11-05
| | | | | | | | | We don't really need that many pages displayed in the pagination, tweak the numbers down a bit. Signed-off-by: Belén Barros Peña <belen.barros.pena@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* base: Use a Bootstrap badge for the number of todo itemsDamien Lespiau2015-11-05
| | | | | Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* base: Capitalize the menu items in the navbarDamien Lespiau2015-11-05
| | | | | | v2: Rebase on top of the "Project Info" renaming Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
* base: Group username/profile/logout with a dropdownDamien Lespiau2015-11-05
| | | | | | | | We regoup user related information (log out and profile) in a dropdown with the user identity as label. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* patch-list: Make the table header stickyDamien Lespiau2015-11-05
| | | | | | | | | So, when scrolling down the list of patches, we still get what are the field displayed. This is espacially important as I plan to add a few more. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* package: Add the Sticky Table Header jQuery pluginDamien Lespiau2015-11-05
| | | | | Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* patch-list: Re-design the main list of patches with BootsrapBelén Barros Peña2015-11-05
| | | | | | | | | | A bit more spacing everywhere. Also opted for the highlight on hover instead of the alternating row background color. v2: Squash the patch fixing the unit tests (Jeremy Kerr) Signed-off-by: Belén Barros Pena <belen.barros.pena@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* filters: Rewrite the submitter autocompletion codeDamien Lespiau2015-11-05
| | | | | | | | | | | | | | | | | | | | | | | | We now have a nice(r) autocompletion widget that will popup the list of options directly underneath the input fild. A few changes are done in this commit that couldn't be split any further: - Use jQuery's $.ajax() for the completion query - Use the application/json content type on the completion answer to allow jQuery to directly create an object from it instead of giving back a string (because of the text/plain content type) - Crafted more logical objects in the json answer ie all properties are at the same level instead of the default queryset serializer that put the object fields in a 'field' sub-object. - Use selectize.js for the autocompletion widget logic A slight change in behaviour is that we now don't allow "free form" submitter search, ie we need a valid completion to search with that specific person (through its primary key). I didn't remove the backend logic that allows the "free form" mechanism, but maybe we should. v2: Squash the unit tests fixes into this patch (Jeremy Kerr) Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
* base: Add selectize to the base templateDamien Lespiau2015-11-05
| | | | | | | The only tricky thing is the inclusion of the EcmaScript shim for IE8. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* selectize: Add selectize to patchworkDamien Lespiau2015-11-05
| | | | | | | | | Turns out, it's somewhat hard to do a nice auto-completion widget and I'd like to get replace the input field + combo box that is currently there. So import a library that will take care of the heavy lifting for us. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
* filters: Redesign the filters form with the help of bootstrapDamien Lespiau2015-11-05
| | | | | Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* filters: Fix a typo in commentDamien Lespiau2015-11-05
| | | | | Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* filters: Use a more visible and human-friendly phrasing for 'filters'Belén Barros Peña2015-11-05
| | | | | | v2: Change commit message Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
* patch-list: Split the filter out of the patch tableBelén Barros Peña2015-11-05
| | | | | | 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>