mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
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>
This commit is contained in:
parent
e72a33e16a
commit
38e8791c21
2
TODO
2
TODO
|
@ -23,8 +23,6 @@ Later:
|
|||
* Tool for finding/comparing duplicate recipes?
|
||||
* Tool for editing SUMMARY/DESCRIPTION? [Paul working on this]
|
||||
* Dynamic loading/filtering for recipes list
|
||||
* Track BUGTRACKER
|
||||
* Track PROVIDES and BBCLASSEXTENDS?
|
||||
* Some way to notify the user when they search for something that has been renamed / replaced / deprecated?
|
||||
* Create simple script to check for unlisted layer subdirectories in all repos
|
||||
* Move import script to utils/ subdir
|
||||
|
|
|
@ -0,0 +1,127 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding field 'Recipe.bugtracker'
|
||||
db.add_column('layerindex_recipe', 'bugtracker',
|
||||
self.gf('django.db.models.fields.URLField')(default='', max_length=200, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Recipe.provides'
|
||||
db.add_column('layerindex_recipe', 'provides',
|
||||
self.gf('django.db.models.fields.CharField')(default='', max_length=255, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Recipe.bbclassextend'
|
||||
db.add_column('layerindex_recipe', 'bbclassextend',
|
||||
self.gf('django.db.models.fields.CharField')(default='', max_length=100, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'Recipe.bugtracker'
|
||||
db.delete_column('layerindex_recipe', 'bugtracker')
|
||||
|
||||
# Deleting field 'Recipe.provides'
|
||||
db.delete_column('layerindex_recipe', 'provides')
|
||||
|
||||
# Deleting field 'Recipe.bbclassextend'
|
||||
db.delete_column('layerindex_recipe', 'bbclassextend')
|
||||
|
||||
|
||||
models = {
|
||||
'layerindex.branch': {
|
||||
'Meta': {'object_name': 'Branch'},
|
||||
'bitbake_branch': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
|
||||
'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
|
||||
'sort_priority': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
|
||||
},
|
||||
'layerindex.layerbranch': {
|
||||
'Meta': {'object_name': 'LayerBranch'},
|
||||
'branch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Branch']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'layer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.LayerItem']"}),
|
||||
'vcs_last_commit': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'vcs_last_fetch': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'vcs_last_rev': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
|
||||
'vcs_subdir': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True'})
|
||||
},
|
||||
'layerindex.layerdependency': {
|
||||
'Meta': {'object_name': 'LayerDependency'},
|
||||
'dependency': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependents_set'", 'to': "orm['layerindex.LayerItem']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'layerbranch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependencies_set'", 'to': "orm['layerindex.LayerBranch']"})
|
||||
},
|
||||
'layerindex.layeritem': {
|
||||
'Meta': {'object_name': 'LayerItem'},
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'index_preference': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'layer_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
|
||||
'mailing_list_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'N'", 'max_length': '1'}),
|
||||
'summary': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'usage_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'vcs_url': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'vcs_web_file_base_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'vcs_web_tree_base_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'vcs_web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
'layerindex.layermaintainer': {
|
||||
'Meta': {'object_name': 'LayerMaintainer'},
|
||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'layerbranch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.LayerBranch']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'responsibility': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'A'", 'max_length': '1'})
|
||||
},
|
||||
'layerindex.layernote': {
|
||||
'Meta': {'object_name': 'LayerNote'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'layer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.LayerItem']"}),
|
||||
'text': ('django.db.models.fields.TextField', [], {})
|
||||
},
|
||||
'layerindex.machine': {
|
||||
'Meta': {'object_name': 'Machine'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'layerbranch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.LayerBranch']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
|
||||
},
|
||||
'layerindex.recipe': {
|
||||
'Meta': {'object_name': 'Recipe'},
|
||||
'bbclassextend': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'bugtracker': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'filepath': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'layerbranch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.LayerBranch']"}),
|
||||
'license': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'pn': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'provides': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'pv': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'section': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'summary': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
'layerindex.recipefiledependency': {
|
||||
'Meta': {'object_name': 'RecipeFileDependency'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'layerbranch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['layerindex.LayerBranch']"}),
|
||||
'path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}),
|
||||
'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Recipe']"})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['layerindex']
|
|
@ -8,6 +8,7 @@ from django.db import models
|
|||
from datetime import datetime
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.validators import URLValidator
|
||||
import os.path
|
||||
import re
|
||||
import posixpath
|
||||
|
@ -219,6 +220,9 @@ class Recipe(models.Model):
|
|||
section = models.CharField(max_length=100, blank=True)
|
||||
license = models.CharField(max_length=100, blank=True)
|
||||
homepage = models.URLField(blank=True)
|
||||
bugtracker = models.URLField(blank=True)
|
||||
provides = models.CharField(max_length=255, blank=True)
|
||||
bbclassextend = models.CharField(max_length=100, blank=True)
|
||||
|
||||
def vcs_web_url(self):
|
||||
url = self.layerbranch.file_url(os.path.join(self.filepath, self.filename))
|
||||
|
|
|
@ -89,6 +89,9 @@ def update_recipe_file(data, path, recipe, layerdir_start, repodir):
|
|||
recipe.section = envdata.getVar("SECTION", True)
|
||||
recipe.license = envdata.getVar("LICENSE", True)
|
||||
recipe.homepage = envdata.getVar("HOMEPAGE", True)
|
||||
recipe.bugtracker = envdata.getVar("BUGTRACKER", True) or ""
|
||||
recipe.provides = envdata.getVar("PROVIDES", True) or ""
|
||||
recipe.bbclassextend = envdata.getVar("BBCLASSEXTEND", True) or ""
|
||||
recipe.save()
|
||||
|
||||
# Get file dependencies within this layer
|
||||
|
|
|
@ -68,6 +68,12 @@
|
|||
<th>Homepage</th>
|
||||
<td>{% if recipe.homepage %}<a href="{{ recipe.homepage }}">{{ recipe.homepage }}</a>{% endif %}</td>
|
||||
</tr>
|
||||
{% if recipe.bugtracker %}
|
||||
<tr>
|
||||
<th>Bug tracker</th>
|
||||
<td><a href="{{ recipe.bugtracker }}">{{ recipe.bugtracker }}</a></td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<th>Recipe file</th>
|
||||
<td>
|
||||
|
|
Loading…
Reference in New Issue
Block a user