зеркало из https://github.com/nextcloud/appstore.git
names for models
This commit is contained in:
Родитель
118d63a80f
Коммит
39734e720e
|
@ -5,9 +5,9 @@ admin.site.register(App)
|
|||
admin.site.register(AppRelease)
|
||||
admin.site.register(Screenshot)
|
||||
admin.site.register(Author)
|
||||
admin.site.register(Command)
|
||||
admin.site.register(ShellCommand)
|
||||
admin.site.register(Category)
|
||||
admin.site.register(Database)
|
||||
admin.site.register(DatabaseDependency)
|
||||
admin.site.register(PhpLibrary)
|
||||
admin.site.register(LibraryDependency)
|
||||
admin.site.register(PhpExtension)
|
||||
admin.site.register(PhpExtensionDependency)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.7 on 2016-06-05 19:33
|
||||
# Generated by Django 1.9.7 on 2016-06-05 19:44
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
@ -28,6 +28,10 @@ class Migration(migrations.Migration):
|
|||
('created', models.DateTimeField(auto_now_add=True)),
|
||||
('last_modified', models.DateTimeField(auto_now=True)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'App',
|
||||
'verbose_name_plural': 'Apps',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='AppRelease',
|
||||
|
@ -43,6 +47,10 @@ class Migration(migrations.Migration):
|
|||
('last_modified', models.DateTimeField(auto_now=True)),
|
||||
('app', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.App')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'App Release',
|
||||
'verbose_name_plural': 'App Releases',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Author',
|
||||
|
@ -52,6 +60,10 @@ class Migration(migrations.Migration):
|
|||
('mail', models.EmailField(blank=True, max_length=256)),
|
||||
('homepage', models.URLField(blank=True, max_length=256)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Author',
|
||||
'verbose_name_plural': 'Authors',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Category',
|
||||
|
@ -60,17 +72,10 @@ class Migration(migrations.Migration):
|
|||
('name', models.CharField(help_text='Category name which will be presented to the user', max_length=128)),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'Categories',
|
||||
'verbose_name': 'Category',
|
||||
'verbose_name_plural': 'Categories',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Command',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(help_text='Name of a required shell command, e.g. grep', max_length=128, unique=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Database',
|
||||
fields=[
|
||||
|
@ -78,8 +83,8 @@ class Migration(migrations.Migration):
|
|||
('name', models.CharField(help_text='Database name which will be presented to the user', max_length=128)),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'Databases',
|
||||
'verbose_name': 'Database',
|
||||
'verbose_name_plural': 'Databases',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
|
@ -93,32 +98,51 @@ class Migration(migrations.Migration):
|
|||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LibraryDependency',
|
||||
name='PhpExtension',
|
||||
fields=[
|
||||
('id', models.CharField(max_length=128, primary_key=True, serialize=False, unique=True)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'PHP Extension',
|
||||
'verbose_name_plural': 'PHP Extensions',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PhpExtensionDependency',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('version_min', models.CharField(max_length=32)),
|
||||
('version_max', models.CharField(blank=True, max_length=32)),
|
||||
('app_release', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.AppRelease')),
|
||||
('php_extension', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.PhpExtension')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PhpLibrary',
|
||||
fields=[
|
||||
('id', models.CharField(max_length=128, primary_key=True, serialize=False, unique=True)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'PHP Extension Dependency',
|
||||
'verbose_name_plural': 'PHP Extension Dependencies',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Screenshot',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('image', models.URLField(max_length=256)),
|
||||
('url', models.URLField(max_length=256)),
|
||||
('app', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.App')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Screenshot',
|
||||
'verbose_name_plural': 'Screenshots',
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='librarydependency',
|
||||
name='library',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.PhpLibrary'),
|
||||
migrations.CreateModel(
|
||||
name='ShellCommand',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(help_text='Name of a required shell command, e.g. grep', max_length=128, unique=True)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Shell Command',
|
||||
'verbose_name_plural': 'Shell Commands',
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='apprelease',
|
||||
|
@ -128,7 +152,12 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='apprelease',
|
||||
name='libs',
|
||||
field=models.ManyToManyField(through='core.LibraryDependency', to='core.PhpLibrary'),
|
||||
field=models.ManyToManyField(through='core.PhpExtensionDependency', to='core.PhpExtension'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='apprelease',
|
||||
name='shell_commands',
|
||||
field=models.ManyToManyField(to='core.ShellCommand'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='app',
|
||||
|
|
|
@ -19,14 +19,23 @@ class App(models.Model):
|
|||
created = models.DateTimeField(auto_now_add=True)
|
||||
last_modified = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('App')
|
||||
verbose_name_plural = _('Apps')
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class AppRelease(models.Model):
|
||||
version = models.CharField(max_length=128)
|
||||
app = models.ForeignKey('App', on_delete=models.CASCADE)
|
||||
# dependencies
|
||||
libs = models.ManyToManyField('PhpLibrary', through='LibraryDependency')
|
||||
libs = models.ManyToManyField('PhpExtension',
|
||||
through='PhpExtensionDependency')
|
||||
databases = models.ManyToManyField('Database',
|
||||
through='DatabaseDependency')
|
||||
shell_commands = models.ManyToManyField('ShellCommand')
|
||||
php_min = models.CharField(max_length=32)
|
||||
php_max = models.CharField(max_length=32, blank=True)
|
||||
platform_min = models.CharField(max_length=32)
|
||||
|
@ -35,22 +44,50 @@ class AppRelease(models.Model):
|
|||
created = models.DateTimeField(auto_now_add=True)
|
||||
last_modified = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('App Release')
|
||||
verbose_name_plural = _('App Releases')
|
||||
|
||||
def __str__(self):
|
||||
return '%s %s' % (self.app, self.version)
|
||||
|
||||
|
||||
class Screenshot(models.Model):
|
||||
image = models.URLField(max_length=256)
|
||||
url = models.URLField(max_length=256)
|
||||
app = models.ForeignKey('App', on_delete=models.CASCADE)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Screenshot')
|
||||
verbose_name_plural = _('Screenshots')
|
||||
|
||||
def __str__(self):
|
||||
return self.url
|
||||
|
||||
|
||||
class Author(models.Model):
|
||||
name = models.CharField(max_length=256)
|
||||
mail = models.EmailField(max_length=256, blank=True)
|
||||
homepage = models.URLField(max_length=256, blank=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Author')
|
||||
verbose_name_plural = _('Authors')
|
||||
|
||||
class Command(models.Model):
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class ShellCommand(models.Model):
|
||||
name = models.CharField(max_length=128, unique=True, help_text=_(
|
||||
'Name of a required shell command, e.g. grep'))
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Shell Command')
|
||||
verbose_name_plural = _('Shell Commands')
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Category(models.Model):
|
||||
id = models.CharField(max_length=128, unique=True, primary_key=True,
|
||||
|
@ -93,12 +130,27 @@ class DatabaseDependency(models.Model):
|
|||
version_max = models.CharField(max_length=32, blank=True)
|
||||
|
||||
|
||||
class PhpLibrary(models.Model):
|
||||
class PhpExtension(models.Model):
|
||||
id = models.CharField(max_length=128, unique=True, primary_key=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('PHP Extension')
|
||||
verbose_name_plural = _('PHP Extensions')
|
||||
|
||||
class LibraryDependency(models.Model):
|
||||
def __str__(self):
|
||||
return self.id
|
||||
|
||||
|
||||
class PhpExtensionDependency(models.Model):
|
||||
app_release = models.ForeignKey('AppRelease', on_delete=models.CASCADE)
|
||||
library = models.ForeignKey('PhpLibrary', on_delete=models.CASCADE)
|
||||
php_extension = models.ForeignKey('PhpExtension', on_delete=models.CASCADE)
|
||||
version_min = models.CharField(max_length=32)
|
||||
version_max = models.CharField(max_length=32, blank=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('PHP Extension Dependency')
|
||||
verbose_name_plural = _('PHP Extension Dependencies')
|
||||
|
||||
def __str__(self):
|
||||
return '%s: %s >=%s, <=%s' % (self.app_release.app, self.php_extension,
|
||||
self.version_min, self.version_max)
|
||||
|
|
Загрузка…
Ссылка в новой задаче