mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
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>
This commit is contained in:
parent
df6a33967e
commit
05ceb17487
5
admin/base_site.html
Normal file
5
admin/base_site.html
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{% extends "admin/base.html" %}
|
||||||
|
{% block branding %}
|
||||||
|
<h1 id="site-name">OpenEmbedded Metadata Index Admin</h1>
|
||||||
|
{% endblock %}
|
||||||
|
|
|
@ -7,21 +7,38 @@
|
||||||
from layerindex.models import *
|
from layerindex.models import *
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from reversion_compare.admin import CompareVersionAdmin
|
from reversion_compare.admin import CompareVersionAdmin
|
||||||
|
from django.forms import TextInput
|
||||||
|
|
||||||
class LayerItemAdmin(CompareVersionAdmin):
|
class LayerItemAdmin(CompareVersionAdmin):
|
||||||
""" Admin settings here """
|
list_filter = ['status', 'layer_type']
|
||||||
|
save_as = True
|
||||||
|
search_fields = ['name', 'summary']
|
||||||
|
readonly_fields = ['vcs_last_fetch', 'vcs_last_rev', 'vcs_last_commit']
|
||||||
|
formfield_overrides = {
|
||||||
|
models.URLField: {'widget': TextInput(attrs={'size':'100'})},
|
||||||
|
models.CharField: {'widget': TextInput(attrs={'size':'100'})},
|
||||||
|
}
|
||||||
|
|
||||||
class LayerMaintainerAdmin(CompareVersionAdmin):
|
class LayerMaintainerAdmin(CompareVersionAdmin):
|
||||||
""" Admin settings here """
|
list_filter = ['status', 'layer__name']
|
||||||
|
|
||||||
class LayerDependencyAdmin(CompareVersionAdmin):
|
class LayerDependencyAdmin(CompareVersionAdmin):
|
||||||
""" Admin settings here """
|
list_filter = ['layer__name']
|
||||||
|
|
||||||
class LayerNoteAdmin(CompareVersionAdmin):
|
class LayerNoteAdmin(CompareVersionAdmin):
|
||||||
""" Admin settings here """
|
list_filter = ['layer__name']
|
||||||
|
|
||||||
|
class RecipeAdmin(admin.ModelAdmin):
|
||||||
|
search_fields = ['filename', 'pn']
|
||||||
|
list_filter = ['layer__name']
|
||||||
|
readonly_fields = Recipe._meta.get_all_field_names()
|
||||||
|
def has_add_permission(self, request, obj=None):
|
||||||
|
return False
|
||||||
|
def has_delete_permission(self, request, obj=None):
|
||||||
|
return False
|
||||||
|
|
||||||
admin.site.register(LayerItem, LayerItemAdmin)
|
admin.site.register(LayerItem, LayerItemAdmin)
|
||||||
admin.site.register(LayerMaintainer, LayerMaintainerAdmin)
|
admin.site.register(LayerMaintainer, LayerMaintainerAdmin)
|
||||||
admin.site.register(LayerDependency, LayerDependencyAdmin)
|
admin.site.register(LayerDependency, LayerDependencyAdmin)
|
||||||
admin.site.register(LayerNote, LayerNoteAdmin)
|
admin.site.register(LayerNote, LayerNoteAdmin)
|
||||||
admin.site.register(Recipe)
|
admin.site.register(Recipe, RecipeAdmin)
|
||||||
|
|
|
@ -21,14 +21,14 @@ class LayerItem(models.Model):
|
||||||
('D', 'Distribution'),
|
('D', 'Distribution'),
|
||||||
('M', 'Miscellaneous'),
|
('M', 'Miscellaneous'),
|
||||||
)
|
)
|
||||||
name = models.CharField(max_length=40, unique=True)
|
name = models.CharField('Layer name', max_length=40, unique=True)
|
||||||
created_date = models.DateTimeField('Created')
|
created_date = models.DateTimeField('Created')
|
||||||
status = models.CharField(max_length=1, choices=LAYER_STATUS_CHOICES, default='N')
|
status = models.CharField(max_length=1, choices=LAYER_STATUS_CHOICES, default='N')
|
||||||
layer_type = models.CharField(max_length=1, choices=LAYER_TYPE_CHOICES, default='M')
|
layer_type = models.CharField(max_length=1, choices=LAYER_TYPE_CHOICES, default='M')
|
||||||
summary = models.CharField(max_length=200)
|
summary = models.CharField(max_length=200)
|
||||||
description = models.TextField()
|
description = models.TextField()
|
||||||
vcs_last_fetch = models.DateTimeField('Last successful fetch', blank=True, null=True)
|
vcs_last_fetch = models.DateTimeField('Last successful fetch', blank=True, null=True)
|
||||||
vcs_last_rev = models.CharField(max_length=80, blank=True)
|
vcs_last_rev = models.CharField('Last revision fetched', max_length=80, blank=True)
|
||||||
vcs_last_commit = models.DateTimeField('Last commit date', blank=True, null=True)
|
vcs_last_commit = models.DateTimeField('Last commit date', blank=True, null=True)
|
||||||
vcs_subdir = models.CharField('Repository subdirectory', max_length=40, blank=True)
|
vcs_subdir = models.CharField('Repository subdirectory', max_length=40, blank=True)
|
||||||
vcs_url = models.CharField('Repository URL', max_length=200)
|
vcs_url = models.CharField('Repository URL', max_length=200)
|
||||||
|
@ -37,6 +37,7 @@ class LayerItem(models.Model):
|
||||||
usage_url = models.URLField('Usage web page URL', blank=True)
|
usage_url = models.URLField('Usage web page URL', blank=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
verbose_name = "Layer"
|
||||||
permissions = (
|
permissions = (
|
||||||
("publish_layer", "Can publish layers"),
|
("publish_layer", "Can publish layers"),
|
||||||
)
|
)
|
||||||
|
@ -74,14 +75,17 @@ class LayerMaintainer(models.Model):
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
respstr = ""
|
respstr = ""
|
||||||
if self.responsibility:
|
if self.responsibility:
|
||||||
respstr = " - %s" % self.responsibility
|
respstr = " (%s)" % self.responsibility
|
||||||
return "%s <%s>%s" % (self.name, self.email, respstr)
|
return "%s: %s <%s>%s" % (self.layer.name, self.name, self.email, respstr)
|
||||||
|
|
||||||
|
|
||||||
class LayerDependency(models.Model):
|
class LayerDependency(models.Model):
|
||||||
layer = models.ForeignKey(LayerItem, related_name='dependencies_set')
|
layer = models.ForeignKey(LayerItem, related_name='dependencies_set')
|
||||||
dependency = models.ForeignKey(LayerItem, related_name='dependents_set')
|
dependency = models.ForeignKey(LayerItem, related_name='dependents_set')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name_plural = "Layer dependencies"
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return "%s depends on %s" % (self.layer.name, self.dependency.name)
|
return "%s depends on %s" % (self.layer.name, self.dependency.name)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user