diff --git a/admin/base_site.html b/admin/base_site.html new file mode 100644 index 0000000..0fcc54e --- /dev/null +++ b/admin/base_site.html @@ -0,0 +1,5 @@ +{% extends "admin/base.html" %} +{% block branding %} +

OpenEmbedded Metadata Index Admin

+{% endblock %} + diff --git a/layerindex/admin.py b/layerindex/admin.py index 0890ff2..18e51ab 100644 --- a/layerindex/admin.py +++ b/layerindex/admin.py @@ -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) diff --git a/layerindex/models.py b/layerindex/models.py index 69389f4..b5c7861 100644 --- a/layerindex/models.py +++ b/layerindex/models.py @@ -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)