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 django.contrib import admin
|
||||
from reversion_compare.admin import CompareVersionAdmin
|
||||
from django.forms import TextInput
|
||||
|
||||
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):
|
||||
""" Admin settings here """
|
||||
list_filter = ['status', 'layer__name']
|
||||
|
||||
class LayerDependencyAdmin(CompareVersionAdmin):
|
||||
""" Admin settings here """
|
||||
list_filter = ['layer__name']
|
||||
|
||||
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(LayerMaintainer, LayerMaintainerAdmin)
|
||||
admin.site.register(LayerDependency, LayerDependencyAdmin)
|
||||
admin.site.register(LayerNote, LayerNoteAdmin)
|
||||
admin.site.register(Recipe)
|
||||
admin.site.register(Recipe, RecipeAdmin)
|
||||
|
|
|
@ -21,14 +21,14 @@ class LayerItem(models.Model):
|
|||
('D', 'Distribution'),
|
||||
('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')
|
||||
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')
|
||||
summary = models.CharField(max_length=200)
|
||||
description = models.TextField()
|
||||
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_subdir = models.CharField('Repository subdirectory', max_length=40, blank=True)
|
||||
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)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Layer"
|
||||
permissions = (
|
||||
("publish_layer", "Can publish layers"),
|
||||
)
|
||||
|
@ -74,14 +75,17 @@ class LayerMaintainer(models.Model):
|
|||
def __unicode__(self):
|
||||
respstr = ""
|
||||
if self.responsibility:
|
||||
respstr = " - %s" % self.responsibility
|
||||
return "%s <%s>%s" % (self.name, self.email, respstr)
|
||||
respstr = " (%s)" % self.responsibility
|
||||
return "%s: %s <%s>%s" % (self.layer.name, self.name, self.email, respstr)
|
||||
|
||||
|
||||
class LayerDependency(models.Model):
|
||||
layer = models.ForeignKey(LayerItem, related_name='dependencies_set')
|
||||
dependency = models.ForeignKey(LayerItem, related_name='dependents_set')
|
||||
|
||||
class Meta:
|
||||
verbose_name_plural = "Layer dependencies"
|
||||
|
||||
def __unicode__(self):
|
||||
return "%s depends on %s" % (self.layer.name, self.dependency.name)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user