Commit Graph

379 Commits

Author SHA1 Message Date
Paul Eggleton
48c0839482 Allow blanking out field values in bulk change
If you're moving a short description value from DESCRIPTION to SUMMARY
then part of that is setting DESCRIPTION to blank, however that wasn't
possible - the code was assuming that a null value meant "keep the
original value". Change the logic so that the value in the bulk change
object is always set and is compared to the original value to see if it
is different. This provides less safety against bulk change data going
stale in the face of the metadata being updated, but without using an
additional "magic" field value that's the price we have to pay, and it's
unlikely to bother too many people I would imagine.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2016-05-30 16:01:42 +12:00
Alex Franco
50eef9b55a Display recipe blacklist information
Display blacklist information for recipes in the recipe details,
as well as the recipe search page, and layer page tables. This
information is pulled from the PNBLACKLIST variable. Includes a
hover text containing the reason for blacklist labels.

Changes to Django and Layerindex files:
- models.py, update.py
- migration file
- templates and static content (stylesheet)

[YOCTO #7855]

Signed-off-by: Alex Franco <alejandro.franco@linux.intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
2016-05-24 14:22:58 +01:00
Elliot Smith
3155206e54 search: show matches against pn at top of recipe search results
Using the search box creates a query against the pns,
summaries, descriptions and filenames of recipes.
This results in a lot of spurious results for common terms
like "git" when performing a recipe search.

Make the results more useful by:

* Only searching against pn, description and summary (not file).
* Putting matches against pn at the top of the list, followed by
matches against description and summary.

[YOCTO #9159]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
2016-05-23 17:14:03 +01:00
Paul Eggleton
0300063abb update.py: fix splitting on _ when getting class inheritance
The code to populate the inherits information was using a function
designed to get the recipe name from a file path, but unlike recipe
filenames, the underscore isn't treated as special in class filenames
and in fact it's quite common to use underscores there; we were ending
up with items in the inherit list such as "populate" and "rootfs". Use
the standard python os.path functions to do the splitting instead and
avoid this.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2015-11-02 16:16:02 +00:00
Alex Franco
fd63761d2a Support for recipe inherits field
To identify image recipes and provide inheritance data for recipes, an
inherits field was added to the recipe model, and then populated using
refactored data from __inherit_cache. Finally the field was also added
to page templates, along with style changes proposed in attachment, and
an additional style change to display the inherits field as a list in
detailed view. The field skips globally inherited data as proposed.

[YOCTO #7575]

Signed-off-by: Alex Franco <alejandro.franco@linux.intel.com>
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2015-10-07 11:34:28 +01:00
Paul Eggleton
8966d2ea4e recipeparse.py: handle old BBFILES append method in layer.conf
Some layers use an older-style method to append a value to BBFILES,
namely BBFILES := "${BBFILES} ..." - this normally works fine, but in
our environment we don't order parsing of layers. That's probably wrong,
but for now just ensure BBFILES has a value to begin with as a
workaround.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2015-06-17 18:36:37 +01:00
Paul Eggleton
40f1d51de6 update.py: minor fixup for last commit
Fix up memory leak fix for bitbake in daisy and earlier which did not
have bb.codeparser.codecache.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2015-06-15 10:24:18 +01:00
Paul Eggleton
f4b4525858 update.py: fix memory leaks
We're kind of abusing some bitbake internals here and the result is that
there are a bunch of global lists and caches that simply grow as we
parse more layers, until available memory is exhausted. We don't care
about the contents of any of these within the layer index update script
so just clear them out between layers.

Should fix [YOCTO #7663].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2015-06-15 00:03:43 +01:00
Paul Eggleton
2be084de64 Hide "updated" field changes in change history page
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2015-01-23 17:41:01 +00:00
Aníbal Limón
6ac4e8fbb5 layerindex/models.py: Branch model fix inital_data fixture
Add default = datetime.now attr to updated field of Branch
model because it fails when try to insert inital data with NULL.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2014-12-22 00:29:23 +00:00
Alexandru DAMIAN
40d05f928c adding updated field for certain models
We add an automatically-updateing "updated" datetime
field to Branch, LayerItem, LayerBranch, Recipe and
Machine models to allow date-based incremental updates
through the API.

The added field does not interfere with the existing
form-based pages (auto_now sets editable to false).

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-09-24 11:32:34 +01:00
Alexandru DAMIAN
1c9d6be527 expose REST API for layerindex
This patch enables a read-only REST API for the layerindex
application using Django REST Framework.

The objects of types Branch, LayerBranch and LayerItem are
exposed to queries so that the layerindex application can
function as a Layer Source in Toaster.

The library dependencies are documented in the requirements.txt
file.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-09-24 11:32:34 +01:00
Paul Eggleton
749793f55b Support newly added API for enabling variable history tracking
See:
http://cgit.openembedded.org/bitbake/commit/?id=a9439b136f55f3f0e80ff053cd3b159da69ba362

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-09-24 11:29:08 +01:00
Paul Eggleton
7a432108c0 tools/import_layer: fix errors in maintainer scraping code
* Fix "sre_constants.error: nothing to repeat" error due to .* inside
  group made optional with ? in regex
* Avoid error if maintainer responsibility is not specified

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-06-12 11:24:25 +01:00
Paul Eggleton
0ec1909051 update.py: fix not clearing recipe files list on reload
When we did a full reload this list wasn't getting cleared for the next
layer, and we look at the contents of the list unconditionally later to
determine which files need to be added. Given that the list items are
full paths, this is unlikely to have caused any problems; however it
could possibly have been an issue for nested layers with the right
update order, or lead to issues if the usage of the list changes in
future.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-06-12 11:21:09 +01:00
Paul Eggleton
ab393b18c6 update.py: ignore layers within layers
Some layers, such as meta-intel, also contain other layers. We don't
want recipes/classes/appends in those child layers to appear in the
parent layer so ignore any that appear within subdirectories that
contain a conf/layer.conf file.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-06-12 11:15:14 +01:00
Paul Eggleton
7c4a1c1dab update.py: fix layer exists-on-branch check
There was a logic error here - we were checking to see if the layer
directory existed before actually checking out the branch, which means
we were looking at the state of whatever branch was previously checked
out. Replace this with some validation of the last revision check and an
additional check for the directory after checking out the branch.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-05-24 17:29:23 +01:00
Paul Eggleton
f0b517796f update.py: use actual branch when getting last revision
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-05-24 17:23:56 +01:00
Paul Eggleton
bbbf5e9939 Handle % characters in URLs
If there is a % character in the path to a file / directory, we need to
properly encode it when creating the repo web URL or the link won't
work. Thanks to Khem Raj for reporting this.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-05-12 14:15:31 +01:00
Paul Eggleton
f7fa15dd36 Allow layers to have no master branch
With BSPs being "retired" e.g. in meta-intel, it is possible for layers
to not exist on the master branch; since this is legitimate we need the
layer index to handle it.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-04-06 15:01:24 +01:00
Paul Eggleton
4c08b28387 recipes: preserve search keyword when switching between branches
If you want to check what the same search returns on a different branch
it makes things easier if you don't have to re-type the search after
selecting the branch.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-09 21:16:08 +00:00
Paul Eggleton
cd26148eed Fix append list name matching
* Recipes without versions in the file name (such as alsa-state.bb)
  weren't having their bbappends listed. Use a regex match to fix this.
* Use the prefix from the filename instead of PN, since that's how
  BitBake does it
* List version matching bbappends first, then non-matching in muted
  colour

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-09 20:58:24 +00:00
Paul Eggleton
81588881cb duplicates: sort recipes by version (descending) after other sorts
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-09 19:18:01 +00:00
Paul Eggleton
6d0b9d40aa duplicates: add ability to select layers
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-09 19:17:49 +00:00
Paul Eggleton
5aa533b678 Fix OE-Classic stats page for update to latest django-nvd3 (0.6.0)
Update d3/nvd3 js files in the process, but hold off on nv.d3.css for
now because the latest version breaks the formatting/fading on tooltips.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-03 23:12:35 +00:00
Paul Eggleton
47d6ab50c8 Add layer import script
Adds a simple way to add a new layer to the database in an automated
manner, given only a URL and optionally a name and subdirectory. If no
subdirectory is given, the root and all first-level subdirectories that
contain conf/layer.conf will be created as layers. Guesses will be made
as to the right values for certain fields, by looking at
README/MAINTAINERS files and github repository information.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-02-23 02:13:10 +00:00
Paul Eggleton
3588053069 Use CORE_LAYER_NAME when setting default layer dependency
If the site is configured to use a different core layer then we ought to
use it for the default layer dependency instead of hardcoding
openembedded-core.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-12-28 11:03:29 +00:00
Paul Eggleton
fabc06b2d0 Check that the core layer contains conf/bitbake.conf
This ensures we get a sensible error message prompting the user to set
the subdirectory, instead of a BitBake parse error.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-12-28 11:03:29 +00:00
Paul Eggleton
75c44fd770 Use Django sites framework to specify website title
This allows specifying the site title in the database, instead of hardcoding
it in the template. Just change it to something other than "example.com" to
apply your own title.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-12-28 11:03:29 +00:00
Paul Eggleton
5ce6448a12 update.py: fix subdirectory does not exist error message
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-12-27 00:13:53 +00:00
Paul Eggleton
1b0294a766 admin: enable adding layer branches
Allow editing the layer/branch fields when adding a layer branch record.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-11-04 10:57:51 +00:00
Paul Eggleton
84eecd7a54 update.py: add --fullreload option
Recently the -r/--reload option was changed to preserve existing recipe
data, so that it could be used to load values into newly added fields;
however we still need an option to load recipe data from scratch for
testing purposes (e.g. in combination with --nocheckout) so add a
 --fullreload option to do this.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-20 07:08:22 +01:00
Paul Eggleton
fe717e0ad1 update.py: fix ability to test updating with --nocheckout
In order to test updating we need to be able to check out a previous
revision of the repository and have the update script load from that
without checking out the latest revision, so fix the --nocheckout
option to work properly.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-20 07:08:22 +01:00
Paul Eggleton
ce25644664 update.py: fix Ctrl+C handling during layer update
We do not want to continue on to the next layer on Ctrl+C.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-20 07:08:09 +01:00
Paul Eggleton
980778a4ad layerindex/tools: fix permissions
These should all have the execute bit set.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-20 06:49:12 +01:00
Paul Eggleton
dcd312b9fb Fix tree link on layer list for layers with no subdirectory
We always need to replace %path% in the URL, not just when there is a
non-blank path to replace it with.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-13 11:39:13 +01:00
Paul Eggleton
97cf2f8afb Fix error when editing layer from review page
The layer_review URL does not take a branch argument, so we can't send
one or it'll fail.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-13 11:12:51 +01:00
Paul Eggleton
157656cec9 update.py: hide DeprecationWarnings
These are just annoying if the script is called from a cron job.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:23 +01:00
Paul Eggleton
157e377d00 Use actual_branch in URLs if available
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:23 +01:00
Paul Eggleton
b5074ed2aa Top bar functions improvements
* Change Submit layer link into a button
* Ensure tools dropdown menu doesn't show on layer submit/edit page

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:23 +01:00
Paul Eggleton
c2e36cda11 update.py: handle if deleted recipe can't be found
Show a warning instead of a traceback if a deleted recipe can't be found
in the database.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:23 +01:00
Paul Eggleton
42561c3a65 Allow SHA1 hash for bitbake branch
Allow the bitbake branch to be a SHA1 hash as well as a branch/tag.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:23 +01:00
Paul Eggleton
91a0bbea06 Disable rawrecipes URL
It's not really completely functional and puts quite a bit of load on
the server when used, so just disable it for now.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:23 +01:00
Paul Eggleton
bea2db8464 Show a coherent error on bulk change lock timeout
Since it's possible that the user will try to get patches while the
update script is running, ensure we show a sensible error if the script
times out waiting for a lock.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:23 +01:00
Paul Eggleton
93ce26f21c Ensure logger is passed into runcmd function or use sys.stderr.write
Otherwise it might not be defined when an error.needs to be printed.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:23 +01:00
Paul Eggleton
1eebd6e525 Implement locking for update/bulkchange process
Avoid the possibility of these two clashing especially when multiple
branches are being used.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:23 +01:00
Paul Eggleton
1643aef67d Navigation improvements
* Drop the front page - this just gets in the way. Redirect to the
  layers list instead. This has meant adding a touch more text to the
  about page and adding the FAQ link to the footer.
* Use a separate navbar to hold the branch selector and the main
  top-level  pages (Layers, Recipes, Machines) instead of tabs
* All pages depending on a branch selection are now under
  branch/<branchname>/ so we don't need to have the branch selection on
  every page.
* Use breadcrumbs on recipe detail and layer detail pages instead of
  tabs
* Add title to recipe detail page

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:23 +01:00
Paul Eggleton
97361ae37e Make machine search consistent with recipe search
Don't start with all records being shown - only do this if the search
button is pressed with no keyword.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:22 +01:00
Paul Eggleton
c3a8eb4d82 Add support for importing OE-Classic recipes
Add a script for doing a one-time import of OE-Classic recipe
information, so comparisons against OE-Core can be performed; this
is stored using a new ClassicRecipe model supporting additional fields
for tracking migration status. The migration status fields can be
updated as well as viewed and summarised in graph format.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-05 00:31:22 +01:00
Paul Eggleton
1c70da817b Force scrollbar to always show to prevent page width changing
Having the page content dance about when switching between pages just
because one has a scrollbar and the other doesn't is annoying, so just
force the scrollbar to show all of the time to avoid this.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-08-11 11:28:15 +01:00
Paul Eggleton
4185d5c2d3 Update bootstrap to latest version (2.3.0)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-08-11 11:28:15 +01:00
Paul Eggleton
608851b2d3 Login drop-down style improvements
Thanks to Belen for the design.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-08-11 11:28:15 +01:00
Paul Eggleton
571e85416a Show appends in recipe detail
Show the appends in other layers that apply to the recipe.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-08-11 11:28:15 +01:00
Paul Eggleton
4ec2431fe3 Move layers import script to tools subdirectory
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-08-11 11:28:14 +01:00
Paul Eggleton
e36280922a update.py: preserve recipe id when updating
The recipe detail pages use the recipe record id, so in case users
bookmark links to these pages, try to preserve the id when a recipe
upgrade occurs (which usually shows up as a delete and an add). This
also works when doing a full update with -r so that we can capture the
newly recorded items (bbclasses, bbappends) without having all the
recipe id values change.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-08-11 11:28:14 +01:00
Paul Eggleton
5166582791 Add cancel button to edit layer form
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-08-11 11:28:14 +01:00
Paul Eggleton
33f433c1d2 Return to appropriate page when saving a layer
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-08-11 11:28:14 +01:00
Paul Eggleton
9156b1c0de Enable messages framework and use it to display "layer saved" message
The Django messages framework is the proper way to handle these kinds of
messages.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-08-11 11:28:14 +01:00
Paul Eggleton
84709dbca6 Add recipe bulk change feature
This provides a way to set "meta" fields (SUMMARY, DESCRIPTION,
HOMEPAGE, BUGTRACKER, SECTION, and LICENSE) for a number of recipes at
once, and then download those changes in the form of one or more patch
files which can be submitted for merging into the layer.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-08-11 11:28:14 +01:00
Paul Eggleton
1a9f73d4a7 Split out recipe parsing and utility functions to a separate module
To allow re-use outside of the update script, split out parsing setup
code to a new recipeparse module. Also split out runcmd, get_layer,
get_branch and logger_create functions to a separate utils module.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-07-28 18:43:11 +01:00
Paul Eggleton
8be1adddb6 Add actual_branch field to layerbranch
Some layers don't use the conventional branch name (i.e. the same name
as the core branch). Add a field so we can record the actual branch name
and use this within the update script.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-06-17 21:11:58 +01:00
Paul Eggleton
89f9e6afe8 Add duplicate recipes/classes page
Add page that lists recipes and classes "duplicated" across different
layers.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-06-17 21:11:58 +01:00
Paul Eggleton
9af1144928 Collect bbappends and bbclasses for each layer
Collect bbappend/bbclass info during the update process and display it
on the layer detail page.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-06-17 21:11:53 +01:00
Paul Eggleton
38e8791c21 Collect BUGTRACKER, PROVIDES and BBCLASSEXTEND for each recipe
* Show BUGTRACKER in the recipe detail page if set
* Track the other two variables for possible future use

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-06-03 10:59:10 +01:00
Paul Eggleton
e72a33e16a Add preference order field
Add an index_preference field to enable control over which layer's
duplicate recipes get de-emphasised in the recipe search results.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-06-03 10:59:10 +01:00
Paul Eggleton
339ee8e043 Enable south and add initial migrations
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-06-03 10:59:10 +01:00
Paul Eggleton
d1b875a76b Improve history collection and add link to history page
Save individual field changes into revision comment and display this
comment on the history page. Now we're ready to add a link at the
bottom of every page so the history is easily visible.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-06-03 10:59:10 +01:00
Paul Eggleton
5a07f0422d update.py: add --nocheckout option
This allows disabling the checkout of the appropriate branch so that we
can test the update script with fixes to bitbake or the metadata if
needed.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-05-22 17:45:36 +01:00
Paul Eggleton
eaa7e4a8d7 Use user's first name or login name in review email
It's not really appropriate to say "Hi Joe Bloggs" at the start of the
email - we only need the user's first name or the login name if the
first name hasn't been filled in.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-05-22 17:45:36 +01:00
Paul Eggleton
4502a38946 Add user profile editing form
This form allows the user to change their email address, first and last
name.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-05-22 17:45:36 +01:00
Paul Eggleton
611ed1dece update.py: handle change to cooker structure in newer BitBake
The cooker module has been refactored in BitBake master and this moved
and renamed the _parse() function; change the update script to handle
that (whilst still handling older versions).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-05-22 17:42:25 +01:00
Paul Eggleton
a490f057d6 update.py: improve fetch failure handling
* Report layer which failed to fetch in error message
* Don't retry fetching a repo if it already failed for another layer
  (where more than one layer is in the same repository)
* Exit immediately if all fetches failed

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-05-08 22:52:09 +01:00
Paul Eggleton
714bc8e39f update.py: error out with unexpected arguments
It's easy to forget you need to use -l to specify the list of layers to
update and previously we just ignored unused arguments, so check for
them and error out if present.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-05-08 22:01:25 +01:00
Paul Eggleton
df9a1040c2 Fix error when requesting raw recipes list
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-05-07 12:13:14 +01:00
Paul Eggleton
9df79fe0ef Sort recipes by PN and descending PV in layer list
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-05-07 12:13:14 +01:00
Paul Eggleton
c257348c5a detail: ensure machine list is sorted by name
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-04-05 18:35:35 +01:00
Paul Eggleton
b3a8b19eb4 models: add layer name to string representation of layer note
This includes the layer name in layer note additions/changes in the
history page, among other places.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-04-02 12:25:26 +01:00
Paul Eggleton
ce1775db31 Add basic change history page
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-31 20:38:30 +01:00
Paul Eggleton
6ec84fb7f5 editlayer: fix checkboxes not showing up in Chromium
Somehow due to some CSS shenanigans these checkboxes had 0 width in
Chromium and thus were invisible. A style on the td had to be used
because a style on the input doesn't seem to fix it.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-30 08:42:05 +00:00
Paul Eggleton
979fb7980d Fix "AnonymousUser has no attribute 'email'" errors when not logged in
We shouldn't be looking for this attribute unless the user has logged in
- this was a regression in the recent email case fix.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-28 21:39:00 +00:00
Paul Eggleton
665e40e2c5 Ensure user_can_edit email address check ignores case and spaces
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-28 12:10:28 +00:00
Paul Eggleton
f7b2bd71b1 Redirect to login page for review list/detail views if not logged in
This avoids showing a 403 error when a user clicks on a review link in
the layer submission notification email but hasn't logged in yet.

Also protect the review list view with a permission check; it's not that
it's sensitive, but we should be consistent with the detail here.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-28 10:03:46 +00:00
Paul Eggleton
333ee2a94e Improved fix for ../ in usage URL
This actually works for complex URLs since we normalise just the path
portion that we are adding instead of trying it on the URL after
composing it.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-27 16:17:49 +00:00
Paul Eggleton
2804211f8f Fix web subdirectory links with gitweb
gitweb, ever vigilant for the slightest transgression in URL syntax,
fails to find the specified path if it is a directory and has a trailing
slash, so we need to avoid adding this.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-27 16:02:28 +00:00
Paul Eggleton
cd7e00bf57 Allow ../ in usage URL field
Allow using e.g. ../README to point to README file in the parent of the
repository subdirectory.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-27 16:01:24 +00:00
Paul Eggleton
a7323361ff Bump up some of the field lengths
Avoid truncation for slightly longer fields (as happened with PN and
SUMMARY when importing some existing layers).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-27 09:34:56 +00:00
Paul Eggleton
1c73d63333 update.py: fix scanning for machine files
* Avoid picking up machine files in sub-layers
* Skip scanning of .git directory when doing full refresh

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 18:01:02 +00:00
Paul Eggleton
e1bbc39237 update.py: improve handling of machine descriptions
Fall back to NAME if DESCRIPTION is not specified and remove more
preamble from the string.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 17:21:29 +00:00
Paul Eggleton
342ff28648 De-emphasise recipes where there is a more preferred version available
If another recipe exists with the same name in a different layer and
that other layer is "older" (by layer ID) and is a software or base
layer then lighten the recipe entry in the search results as it may
not be the preferred version (e.g. recipes in BSP or distro layers may
have been customised specifically for the machine or distro).

This has had a performance impact on the recipes list; as a result
showing all recipes by default has been disabled. If the user really
wants to see all recipes they can just leave the search box blank and
hit the search button.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 17:04:56 +00:00
Paul Eggleton
42d710b640 update.py: set log level earlier
Ensure that we're not printing info messages when the -q option is
specified.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 17:04:56 +00:00
Paul Eggleton
9cec14c8a9 update.py: make failure to parse a recipe an error
Ensure that these are still printed when the -q option is used.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 17:04:56 +00:00
Paul Eggleton
473c47a222 Ensure entire layer gets refreshed on next update if repo fields change
If the user edits the layer and changes the repository URL,
subdirectory, or dependencies, ensure that the entire layer gets
refreshed the next time the update script runs by clearing out the last
fetched revision field.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 16:21:41 +00:00
Paul Eggleton
af920d10c9 update.py: set PN for recipe even if we fail to parse it
This ensures recipes that failed to parse sort properly instead of all
appearing at the start of the search results.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 16:21:41 +00:00
Paul Eggleton
98eed250bc update.py: ensure TMPDIR gets created before starting parse
We don't go through the normal code path where this directory would be
created, and if it doesn't exist an error will be thrown in
insane.bbclass when any QA issue is logged; so create it manually.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 15:41:58 +00:00
Paul Eggleton
65d3f55925 update.py: explicitly check for existence of conf/layer.conf
Rather than letting BitBake error out, just check for existence of this
file and print a single error line if it doesn't exist.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 15:41:58 +00:00
Paul Eggleton
cb5ce087c2 Add layer index wiki page import script
This should help the initial population of the database and act as a
simple example of how to populate the database programmatically.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 15:41:58 +00:00
Paul Eggleton
d3b061f247 Sort layer list by layer type first
The old layer index was sorted first by layer type so let's do the same
here.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 15:41:58 +00:00
Paul Eggleton
f17c5cf04f Move fetch dir calculation to model
This makes it easier to get this directory name outside of the update
script.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 15:41:58 +00:00
Paul Eggleton
3cc0b78935 update.py: create dependency/maintainer records when creating LayerBranch
If we're creating a LayerBranch record, it's helpful to copy the
maintainer and dependency records in from master as they're usually
going to be the same; if they're not the user can always change them
afterwards.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 15:41:58 +00:00
Paul Eggleton
0a1215e59e Move repo subdirectory to layerbranch
So it turns out that one or two layers have changed in structure between
branches, so we need to be able to specify this on a per-branch basis.
Good times...

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 15:41:58 +00:00
Paul Eggleton
ee9176a8c5 Ensure bad URL within layerindex app returns 404
The recently added global redirect was also redirecting incorrect URLs
within the application to the front page rather than showing 404, which
is not desirable.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-18 16:29:50 +00:00
Paul Eggleton
af499c0d99 Add sort priority field to branch model
This enables sorting the branch drop-down in a configurable manner (e.g.
so that you can have them in order from newest to oldest).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 22:56:31 +00:00
Paul Eggleton
4faeab6595 Add introductory front page
Give the user a friendly introduction instead of plunging them straight
into the layers list. (Of course if people want to link directly to the
layers list they still can.)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 20:13:49 +00:00
Paul Eggleton
a643aeba33 Add separate templates for review list and detail
This cuts out a lot of the elements that aren't needed for the review
list, shows fields in a more suitable way for review purposes than the
standard detail (and includes some fields that don't currently get shown
on the standard detail e.g. layer type and short description).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 20:13:44 +00:00
Paul Eggleton
fecc907687 Ensure we switch to the master branch for reviewing
Newly submitted layers don't have anything other than a master branch,
so they won't display properly unless we have master selected; so just
add a parameter to submission email and review URLs to ensure that is
the case.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 19:15:39 +00:00
Paul Eggleton
4be747582f Add a short description for branches to show in drop-down
Allows you to add e.g. "old stable" next to the denzil branch for
clarification.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 18:31:02 +00:00
Paul Eggleton
94ff843006 update.py: ensure script can be run from any directory
Don't assume the current directory contains our conf/local.conf,
explicitly use the directory above where the script is located.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 18:08:05 +00:00
Paul Eggleton
df76a64d95 update.py: avoid writing bitbake.lock/cache to current directory
Create a temporary directory for these files.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 18:07:56 +00:00
Paul Eggleton
0c7dcedca6 Use TemplateView for simple views instead of custom functions
The simple views for about and the submit thanks pages don't need
special views, so the standard TemplateView can be used.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 16:55:28 +00:00
Paul Eggleton
93be8b1172 Move all templates to a templates directory
This should allow the templates to be found and swapped out more easily.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 16:55:23 +00:00
Paul Eggleton
5308e03c9e Add django-simple-captcha to list of modules on about page
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 15:43:38 +00:00
Paul Eggleton
46e579b6e6 Show count of layers to be reviewed next to Review link
Add a badge next to the Review link (when shown for users with the
publish permission) on all pages showing how many layers need to be
reviewed, if any.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 09:16:19 +00:00
Paul Eggleton
3f967cf751 Allow usage URL to point to a file within the repository
This means the usage URL can point to a file whose contents may be
different per branch (e.g. a README file).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-05 20:37:49 +00:00
Paul Eggleton
354e368aa2 Add support for handling multiple branches
Change the data structure to support multiple branches. At the top level
there is a set list of Branch objects, and then a LayerBranch object
between each layer and the maintainers, dependencies, recipes and
machines, so that the set of each can be different per branch. The
branch is a session option, and can be selected via a drop-down that is
shown for all pages.

Additionally, with this change we avoid the need to run the update
script within a build environment set up with oe-init-build-env - since
we need a specific version of BitBake per branch we now use our own copy
of BitBake which is fetched by the script itself. The update script will
need to be called multiple times however - once per branch.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-05 20:37:48 +00:00
Paul Eggleton
0d52678697 Remove remnant of previous status filtering from layer list view
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-05 11:07:17 +00:00
Paul Eggleton
8a81235dba Filter out current layer from dependencies list in edit form
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-05 11:07:17 +00:00
Paul Eggleton
2ad289e312 Fix static pathing to use staticfiles
This is the recommended best practice.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-28 16:58:07 +00:00
Paul Eggleton
b3f0569640 Rename SubmitLayerForm class to EditLayerForm
Remain consistent with other naming.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-28 15:55:23 +00:00
Paul Eggleton
aa1dd0b822 Remove unneeded useredit variable from edit_layer_view
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-28 15:54:59 +00:00
Paul Eggleton
4b3aad2cea Add CAPTCHA to submission form
This should prevent spamming even though this is less likely with this
kind of site.

The CAPTCHA does not show when editing, only submitting, and is also not
shown for authenticated users.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-28 15:48:38 +00:00
Paul Eggleton
482abdcc8a Submit/edit form tweaks
* Don't specify action on form - this is best practice and avoids the
  need to have separate form tags for submit and edit
* Add a short introduction to the submit form
* Focus first field on load only if first field is empty (avoids doing
  this focusing on the edit form which is not really useful).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-28 14:36:41 +00:00
Paul Eggleton
a8ae70a600 Remove Submit layer link when on submit/edit pages
This avoids changes being accidentally lost when either editing or
submitting a layer.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-28 14:36:41 +00:00
Belen Barros
f178ea3151 Styles for the submit layers form
Improve styling and layout

Signed-off-by: Belen Barros <belen.barros.pena@intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-28 14:36:41 +00:00
Paul Eggleton
0e14cf17d8 Hide extra maintainer forms and show each one on request
Hide all empty maintainer forms and have a button to "add" another
maintainer which just uses jQuery to show the next hidden form. Up to
10 maintainers can be added which should be more than enough.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-28 14:36:41 +00:00
Paul Eggleton
9a3bfac320 Add ability to delete unpublished layers
If we get bogus or duplicate entries we'll want the ability to delete
them easily before publishing (without needing to have access to the
admin interface), so add this ability. Being able to delete a published
layer might be a bit dangerous and is less likely to be needed so that
is disallowed for now.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-28 14:36:41 +00:00
Paul Eggleton
26ab9dbb28 Add ability to add, edit and delete layer notes
This allows adding an important notice to a layer e.g. "this layer is
deprecated, please use layer xyz instead". Only one layer note can be
added through the interface although the data structures allow multiple,
so notes may be added programmatically without disturbing user-added
ones.

With this change we also add a get_absolute_url() function to the
LayerItem model and change the calls to reverse() for layers to use it.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-28 14:36:41 +00:00
Paul Eggleton
e6d7b215a6 Allow setting active/inactive maintainer status when editing layer
If editing rather than submitting we want users to be able to make an
existing maintainer inactive.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-27 23:10:34 +00:00
Paul Eggleton
ad5e8f0524 Clarify language around publishing layers
Show "unpublished" rather than "new" in dependencies list in submit
form, and mention publishing as the operation in the "thanks for
submitting" page.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-27 23:10:28 +00:00
Paul Eggleton
3f60b3fba3 Improve detail page for unpublished layers
* Add a label making it clear the layer is unpublished
* Hide recipes list header since there should never be any recipes (as
  the update script doesn't process unpublished layers)
* Add test links for base URLs

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-27 12:10:49 +00:00
Paul Eggleton
47981c57ad Add edit form template missing from last commit
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-27 10:57:19 +00:00
Paul Eggleton
c40bfedd4a Implement editing of layers
Allow users with publish permission to edit any layer, and users with
the same email address as one of the maintainers of a layer to edit that
layer.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-27 10:34:02 +00:00
Paul Eggleton
1e3f451139 Fix Publish Layer button on layer detail
Show button only if user has appropriate permission, and remove the
duplicate button at the end of the page as it's unlikely to be useful.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 23:40:12 +00:00
Paul Eggleton
89d4f9ea6b Don't show last commit date on layer detail if field is null
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 22:38:44 +00:00
Paul Eggleton
88ada21861 Prevent users without publish permission from viewing unpublished layers
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 22:36:39 +00:00
Paul Eggleton
2ea10c869e Add last commit date to layer detail
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 19:13:34 +00:00
Paul Eggleton
5b9f65880d Enable autoescaping in more places
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 18:28:26 +00:00
Paul Eggleton
30d64cafda Style new (unpublished) layers differently in dependency list on submit form
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 18:02:21 +00:00
Paul Eggleton
440a972f60 Add searchable machine index
The number of machines is likely to be quite high and it may not be
immediately clear to users which layer machines can be found in, so add
a searchable index to help with this.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 17:51:16 +00:00
Paul Eggleton
8e49392398 Render dependency checklist within submit form template
Previously I had added a custom widget to handle this, but it turns out
it's not flexible enough - we want to style items individually (not done
yet) and reorder checked items to the top on refresh (done).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 17:50:43 +00:00
Paul Eggleton
1ca1674042 Disable Submit Layer link when already on submission form
If we don't do this then clicking on the link when you're already on the
submission form will reload it, blanking out all the values.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 15:43:13 +00:00
Paul Eggleton
431f2fba17 Add javascript code to split name/email pairs in maintainer fields
In the submit layer form, if a user pastes/types in a name/email pair
(e.g. My Name <my.email@example.com>) then this will automatically be
split into the name and email input fields, saving the user from doing
this by hand (since this is a common notation within repositories and
documentation.)

Additionally, if there is any text after the email address then move it
into the responsibility field unless the responsibility has been entered
by the user.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 15:35:41 +00:00
Paul Eggleton
4756fed86f Drop created_date field from LayerItem
We have django-reversion to handle auditing/history now so we don't need
an explicit field to hold the creation date.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 14:59:26 +00:00
Paul Eggleton
b9b77b8be1 Make it easier to select repo URL/subdir on detail page
Add an icon with some javascript to select the URL / subdir text so it
can be easily copied (since dragging can easily select unwanted text
from the rest of the page).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 14:24:42 +00:00
Paul Eggleton
d56d280be7 Use top commit for subdirectory instead of repository in update script
If there is more than one layer in a repository, we want the latest
commit in the subdirectory not the entire repository (since we use it
to determine the last commit date which should show how "fresh" the
layer is).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 11:26:00 +00:00
Paul Eggleton
e0f8a05423 Handle updating of inc files/classes within same layer
If we aren't doing a full refresh, when changes to an included/required
file or an inherited class occur we need to update all of the files that
depend on them. BitBake records these dependencies, so read them and
record them against each recipe.

At the moment this only handles dependencies within the same layer; that
is probably sufficient to handle most changes for the purposes of
extracting the data this application cares about. A future improved
solution will probably involve making use of BitBake's cache rather than
and parsing all layers and their dependencies rather than individual
recipes.

This change also adds -x/--nofetch and -n/--dry-run options for
debugging as well as some further debug messages.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 11:05:43 +00:00
Paul Eggleton
b47400c38d Don't stop parsing layer on fatal error in update script
"Fatal" errors during parsing a single recipe (such as finding legacy
staging) shouldn't stop us from parsing the rest of the layer. To do
this we need to catch BaseException instead of Exception as fatal errors
end up calling sys.exit.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 11:04:43 +00:00
Paul Eggleton
b3003840e6 Fix update script to handle layers which include/inherit files from other layers
Parse layer.conf files so that BBPATH is set correctly as well as any
other custom variables. This required the repository fetching to be
split out of the update process and done first so that we're sure we
have the data for the other layers.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-25 16:14:50 +00:00
Paul Eggleton
6bc9beea4b Improve about page
Add titles, credits and list of components used.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-25 13:41:14 +00:00
Paul Eggleton
f6c10424e4 Add OE favicon
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-25 12:07:33 +00:00
Paul Eggleton
516e3d198f Increase number of recipes per page to 50 in recipes list
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-25 11:28:06 +00:00
Paul Eggleton
cbeba65dac Use scrolling list of checkboxes for dependencies on submit form
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-25 11:03:54 +00:00
Paul Eggleton
3964071e9d Use a formset in submit layer form to handle maintainers
Formsets allow us to have separate fields for name/email for each
maintainer, as well as being able to collect the responsibility field
value. Also split the form to be output field-by-field to allow styling.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-25 11:03:32 +00:00
Paul Eggleton
d8c6824f30 Add help text to model fields
Add some explanatory help text which can be used in the submission form.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-25 10:13:05 +00:00
Paul Eggleton
e4eb8213cf Collect machine information from layers
Look for conf/machine/*.conf and add a record for each file found. These
are displayed in the layer detail page if any are present.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-24 23:14:53 +00:00
Paul Eggleton
3b5c7ad825 Add ability to update specific layers by name
Add a -l / --layers option to the update script.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-24 21:22:49 +00:00
Paul Eggleton
f3174e16f6 Fix update script to handle includes from other directories
Set BBPATH so that files from the layer can be found when recipes use
include/require pointing to files with a specific path, or use
inherit to inherit a class in the layer.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-24 21:10:37 +00:00
Paul Eggleton
6c12135117 Don't fail with an error due to unset LICENSE
meta-ti has a recipe in it that causes parsing to fail with a fatal
error due to LICENSE not being set; for the purposes of the layer index
just set a default value for LICENSE so that this doesn't break parsing.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-24 20:50:52 +00:00
Paul Eggleton
355c92cfe7 Add mailing list field to layer
Enable recording the mailing list associated with each layer, if any.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-23 23:48:06 +00:00
Paul Eggleton
8b742732d8 Clarify BSP layer type description
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-23 22:48:49 +00:00
Paul Eggleton
95ec84a8c3 Add javascript to submit form to auto-set web URL fields
If the repo URL matches known public hosting sites (i.e.
git.openembedded.org, git.yoctoproject.org, github.com, gitorious.org,
bitbucket.org) then we can set the web URLs automatically and save the
submitter from having to figure them out themselves.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-23 22:32:13 +00:00
Paul Eggleton
6cd47bdd82 Handle web interfaces with different URL schemes
Some git web interfaces use different paths for files (blobs) and
directories when it comes to browsing; this means we need to have a
separate field for the base URL for files.

Additionally, Gitweb typically puts the path within the URL instead of
at the end (although the parameters can be reordered) and cannot handle
the file parameter (f=) being specified with no value. So, to add some
flexibility, add the ability to use a positional macro %path% to
optionally specify where to put the path. If needed, square brackets
can be used in conjunction with %path% to exclude parts of the string
when there is no path, i.e. we want to browse the root. For example, the
following base URL:

  http://git.example.com/?p=somerepo.git;a=tree;[;f=%path%];hb=HEAD

would be translated to this with a path of "path/to/dir":

  http://git.example.com/?p=somerepo.git;a=tree;f=path/to/dir;hb=HEAD

and this if no path were specified:

  http://git.example.com/?p=somerepo.git;a=tree;hb=HEAD

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-23 20:33:24 +00:00
Paul Eggleton
4fef5c0c8e Don't default layer type in submit layer form
We want to force selection of a specific layer type, otherwise many
submitters will just leave it at the default value.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-23 16:44:59 +00:00
Paul Eggleton
710bc8fbb5 Add stacked dependency/maintainer records to layer in admin
Allows adding/editing dependencies and maintainers against each layer
more easily.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-23 14:16:56 +00:00
Paul Eggleton
08051e1ccf Show layer notes records as alerts on layer detail
These can be used to show important notes (e.g. "This layer is
deprecated, use layer xyz instead.") as eye-catching alerts at the top
of the detail page.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-22 17:49:50 +00:00
Belen Barros
18bbce1de9 Layer details style changes
Changed to full screen layout to improve the table display
and get rid of the accordion for the layer information.

Signed-off-by: Belen Barros <belen.barros.pena@intel.com>
2013-02-22 17:11:20 +00:00
Paul Eggleton
ea213c8007 Add a basic about page
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-20 11:20:11 +00:00
Paul Eggleton
d5b15d2bdd Disable pagination for layer list
The layer list has a javascript-based search which won't interact well
with server-based pagination, so disable it for the moment.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-19 18:28:48 +00:00
Paul Eggleton
02f7ca3b2d Improve pagination for recipe list
Use a Django snippet to make pagination display a bit nicer (compressed
form instead of showing all page numbers). In order to interact properly
with GET requests, an additional snippet was required to add parameters
to the URL (why doesn't Django provide this out of the box?).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-19 18:28:48 +00:00
Paul Eggleton
430ae4f90e Improve recipe search
* Use more traditional GET instead of POST method
* Search in pn, summary, description and filename instead of just pn

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-19 17:22:45 +00:00
Paul Eggleton
fd600fb716 Initial version of recipe detail page
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-19 17:22:40 +00:00
Paul Eggleton
05ceb17487 Admin interface improvements
* Set custom title for admin pages
* Use reasonable field widths on editing pages
* Allow filtering and searching by useful fields
* Disable editing of recipe records
* Disable editing of layer fields set by the update script
* Show "Layers" instead of "Layer items" for layers
* Show "Layer dependencies" instead of "Layer dependencys"
* Show layer name in maintainers listing

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-19 12:02:04 +00:00
Paul Eggleton
df6a33967e Clear default value of DESCRIPTION before parsing recipes
By default, if DESCRIPTION is not set it takes the value of SUMMARY.
However, within this tool it is useful for us to be able to tell when
DESCRIPTION has not been set so we want it to be blank if that is the
case.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-18 16:29:01 +00:00
Paul Eggleton
873093d2e4 Clear default value of HOMEPAGE before parsing recipes
The default value of HOMEPAGE ('unknown', set from bitbake.conf) is not
particularly helpful - we want it to be blank if it's not set, so just
set it to blank before parsing each recipe.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-18 16:23:37 +00:00
Paul Eggleton
dc4494aa8a Return blank URL for recipe file if layer's web tree base URL is not set
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-18 16:00:43 +00:00
Paul Eggleton
22b7918bf2 Allow a name to be shown even if parsing recipe failed
If recipe parsing failed the pn field will be blank, but for display
purposes we can take a guess from the filename.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-18 15:40:09 +00:00
Paul Eggleton
f5e37e18c0 Ensure publishing a layer already published does nothing
Just in case two users go to publish the same layer at around the same
time, avoid saving the record for a user who tries to publishes it after
the first time.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-14 07:35:07 +00:00
Paul Eggleton
eebbcf66c1 Fix validation to allow blank web tree start URL
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-14 07:26:52 +00:00
Paul Eggleton
45514d387b Enable auditing using django-reversion and django-reversion-compare
Collect history for changes, and allow browsing / reverting / comparison
within the admin interface.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-14 07:25:21 +00:00
Paul Eggleton
2eb5f38b21 Initial commit of layerindex-web
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-13 12:09:57 +00:00