mirror of
https://github.com/postgres/pgweb.git
synced 2025-08-13 13:12:42 +00:00

This has not been used for many years now, so let's get rid of it to save some maintenance.
59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
from django.contrib import admin
|
|
from django import forms
|
|
from django.forms import ValidationError
|
|
|
|
import re
|
|
|
|
from pgweb.util.admin import PgwebAdmin
|
|
from models import StackBuilderApp, Category, Product, LicenceType
|
|
|
|
class ProductAdmin(PgwebAdmin):
|
|
list_display = ('name', 'org', 'approved', 'lastconfirmed',)
|
|
list_filter = ('approved',)
|
|
search_fields = ('name', 'description', )
|
|
ordering = ('name', )
|
|
|
|
def duplicate_stackbuilderapp(modeladmin, request, queryset):
|
|
# Duplicate each individual selected object, but turn off
|
|
# the active flag if it's on.
|
|
for o in queryset:
|
|
o.id = None # Triggers creation of a new object
|
|
o.active = False
|
|
o.textid = o.textid + "_new"
|
|
o.save()
|
|
|
|
duplicate_stackbuilderapp.short_description = "Duplicate application"
|
|
|
|
class StackBuilderAppAdminForm(forms.ModelForm):
|
|
class Meta:
|
|
model = StackBuilderApp
|
|
exclude = ()
|
|
|
|
def clean_textid(self):
|
|
if not re.match('^[a-z0-9_]*$', self.cleaned_data['textid']):
|
|
raise ValidationError('Only lowerchase characters, numbers and underscore allowed!')
|
|
return self.cleaned_data['textid']
|
|
|
|
def clean_txtdependencies(self):
|
|
if len(self.cleaned_data['txtdependencies']) == 0:
|
|
return ''
|
|
|
|
deplist = self.cleaned_data['txtdependencies'].split(',')
|
|
if len(deplist) != len(set(deplist)):
|
|
raise ValidationError('Duplicate dependencies not allowed!')
|
|
|
|
for d in deplist:
|
|
if not StackBuilderApp.objects.filter(textid=d).exists():
|
|
raise ValidationError("Dependency '%s' does not exist!" % d)
|
|
return self.cleaned_data['txtdependencies']
|
|
|
|
class StackBuilderAppAdmin(admin.ModelAdmin):
|
|
list_display = ('textid', 'active', 'name', 'platform', 'version', )
|
|
actions = [duplicate_stackbuilderapp, ]
|
|
form = StackBuilderAppAdminForm
|
|
|
|
admin.site.register(Category)
|
|
admin.site.register(LicenceType)
|
|
admin.site.register(Product, ProductAdmin)
|
|
admin.site.register(StackBuilderApp, StackBuilderAppAdmin)
|