mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
Updating models and imports for Django 2.2 upgrade.
Removed all obsolete references to django.core.urlresolvers. Added the newly required on_delete fields to foreign key relationships in models.py and in all migrations. Signed-off-by: Amber Elliot <amber.n.elliot@intel.com> Signed-off-by: Paul Eggleton <bluelightning@bluelightning.org>
This commit is contained in:
parent
9b9961a683
commit
2d526f9b0d
|
@ -12,7 +12,7 @@ from django.contrib.auth.views import (PasswordResetConfirmView,
|
||||||
from django.contrib.sites.shortcuts import get_current_site
|
from django.contrib.sites.shortcuts import get_current_site
|
||||||
|
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
from django.core.urlresolvers import reverse
|
from django.urls import reverse
|
||||||
from django.http import HttpResponseRedirect, HttpResponse
|
from django.http import HttpResponseRedirect, HttpResponse
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
from django.utils.deprecation import MiddlewareMixin
|
from django.utils.deprecation import MiddlewareMixin
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.core.urlresolvers import reverse
|
from django.urls import reverse
|
||||||
from reversion.middleware import RevisionMiddleware
|
from reversion.middleware import RevisionMiddleware
|
||||||
import settings
|
import settings
|
||||||
import re
|
import re
|
||||||
|
|
|
@ -69,7 +69,7 @@ class Migration(migrations.Migration):
|
||||||
('vcs_last_commit', models.DateTimeField(verbose_name='Last commit date', blank=True, null=True)),
|
('vcs_last_commit', models.DateTimeField(verbose_name='Last commit date', blank=True, null=True)),
|
||||||
('actual_branch', models.CharField(verbose_name='Actual Branch', blank=True, help_text='Name of the actual branch in the repository matching the core branch', max_length=80)),
|
('actual_branch', models.CharField(verbose_name='Actual Branch', blank=True, help_text='Name of the actual branch in the repository matching the core branch', max_length=80)),
|
||||||
('updated', models.DateTimeField(auto_now=True)),
|
('updated', models.DateTimeField(auto_now=True)),
|
||||||
('branch', models.ForeignKey(to='layerindex.Branch')),
|
('branch', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Branch')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'verbose_name_plural': 'Layer branches',
|
'verbose_name_plural': 'Layer branches',
|
||||||
|
@ -116,7 +116,7 @@ class Migration(migrations.Migration):
|
||||||
('email', models.CharField(max_length=255)),
|
('email', models.CharField(max_length=255)),
|
||||||
('responsibility', models.CharField(blank=True, help_text='Specific area(s) this maintainer is responsible for, if not the entire layer', max_length=200)),
|
('responsibility', models.CharField(blank=True, help_text='Specific area(s) this maintainer is responsible for, if not the entire layer', max_length=200)),
|
||||||
('status', models.CharField(default='A', max_length=1, choices=[('A', 'Active'), ('I', 'Inactive')])),
|
('status', models.CharField(default='A', max_length=1, choices=[('A', 'Active'), ('I', 'Inactive')])),
|
||||||
('layerbranch', models.ForeignKey(to='layerindex.LayerBranch')),
|
('layerbranch', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch')),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -124,7 +124,7 @@ class Migration(migrations.Migration):
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)),
|
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)),
|
||||||
('text', models.TextField()),
|
('text', models.TextField()),
|
||||||
('layer', models.ForeignKey(to='layerindex.LayerItem')),
|
('layer', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerItem')),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -134,7 +134,7 @@ class Migration(migrations.Migration):
|
||||||
('name', models.CharField(max_length=255)),
|
('name', models.CharField(max_length=255)),
|
||||||
('description', models.CharField(max_length=255)),
|
('description', models.CharField(max_length=255)),
|
||||||
('updated', models.DateTimeField(auto_now=True)),
|
('updated', models.DateTimeField(auto_now=True)),
|
||||||
('layerbranch', models.ForeignKey(to='layerindex.LayerBranch')),
|
('layerbranch', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch')),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -184,7 +184,7 @@ class Migration(migrations.Migration):
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)),
|
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)),
|
||||||
('name', models.CharField(max_length=255)),
|
('name', models.CharField(max_length=255)),
|
||||||
('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)),
|
('user', models.ForeignKey(on_delete=models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -192,7 +192,7 @@ class Migration(migrations.Migration):
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)),
|
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)),
|
||||||
('path', models.CharField(db_index=True, max_length=255)),
|
('path', models.CharField(db_index=True, max_length=255)),
|
||||||
('layerbranch', models.ForeignKey(related_name='+', to='layerindex.LayerBranch')),
|
('layerbranch', models.ForeignKey(on_delete=models.deletion.CASCADE, related_name='+', to='layerindex.LayerBranch')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'verbose_name_plural': 'Recipe file dependencies',
|
'verbose_name_plural': 'Recipe file dependencies',
|
||||||
|
@ -201,7 +201,7 @@ class Migration(migrations.Migration):
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='ClassicRecipe',
|
name='ClassicRecipe',
|
||||||
fields=[
|
fields=[
|
||||||
('recipe_ptr', models.OneToOneField(primary_key=True, to='layerindex.Recipe', auto_created=True, parent_link=True, serialize=False)),
|
('recipe_ptr', models.OneToOneField(on_delete=models.deletion.CASCADE, primary_key=True, to='layerindex.Recipe', auto_created=True, parent_link=True, serialize=False)),
|
||||||
('cover_pn', models.CharField(verbose_name='Covering recipe', blank=True, max_length=100)),
|
('cover_pn', models.CharField(verbose_name='Covering recipe', blank=True, max_length=100)),
|
||||||
('cover_status', models.CharField(default='U', max_length=1, choices=[('U', 'Unknown'), ('N', 'Not available'), ('R', 'Replaced'), ('P', 'Provided (BBCLASSEXTEND)'), ('C', 'Provided (PACKAGECONFIG)'), ('O', 'Obsolete'), ('E', 'Equivalent functionality'), ('D', 'Direct match')])),
|
('cover_status', models.CharField(default='U', max_length=1, choices=[('U', 'Unknown'), ('N', 'Not available'), ('R', 'Replaced'), ('P', 'Provided (BBCLASSEXTEND)'), ('C', 'Provided (PACKAGECONFIG)'), ('O', 'Obsolete'), ('E', 'Equivalent functionality'), ('D', 'Direct match')])),
|
||||||
('cover_verified', models.BooleanField(default=False)),
|
('cover_verified', models.BooleanField(default=False)),
|
||||||
|
@ -216,57 +216,57 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='recipefiledependency',
|
model_name='recipefiledependency',
|
||||||
name='recipe',
|
name='recipe',
|
||||||
field=models.ForeignKey(to='layerindex.Recipe'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Recipe'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='recipechange',
|
model_name='recipechange',
|
||||||
name='changeset',
|
name='changeset',
|
||||||
field=models.ForeignKey(to='layerindex.RecipeChangeset'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.RecipeChangeset'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='recipechange',
|
model_name='recipechange',
|
||||||
name='recipe',
|
name='recipe',
|
||||||
field=models.ForeignKey(related_name='+', to='layerindex.Recipe'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, related_name='+', to='layerindex.Recipe'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='recipe',
|
model_name='recipe',
|
||||||
name='layerbranch',
|
name='layerbranch',
|
||||||
field=models.ForeignKey(to='layerindex.LayerBranch'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='layerdependency',
|
model_name='layerdependency',
|
||||||
name='dependency',
|
name='dependency',
|
||||||
field=models.ForeignKey(related_name='dependents_set', to='layerindex.LayerItem'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, related_name='dependents_set', to='layerindex.LayerItem'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='layerdependency',
|
model_name='layerdependency',
|
||||||
name='layerbranch',
|
name='layerbranch',
|
||||||
field=models.ForeignKey(related_name='dependencies_set', to='layerindex.LayerBranch'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, related_name='dependencies_set', to='layerindex.LayerBranch'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='layerbranch',
|
model_name='layerbranch',
|
||||||
name='layer',
|
name='layer',
|
||||||
field=models.ForeignKey(to='layerindex.LayerItem'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerItem'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='branch',
|
model_name='branch',
|
||||||
name='update_environment',
|
name='update_environment',
|
||||||
field=models.ForeignKey(to='layerindex.PythonEnvironment', blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL),
|
field=models.ForeignKey(to='layerindex.PythonEnvironment', blank=True, null=True, on_delete=models.deletion.SET_NULL),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='bbclass',
|
model_name='bbclass',
|
||||||
name='layerbranch',
|
name='layerbranch',
|
||||||
field=models.ForeignKey(to='layerindex.LayerBranch'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='bbappend',
|
model_name='bbappend',
|
||||||
name='layerbranch',
|
name='layerbranch',
|
||||||
field=models.ForeignKey(to='layerindex.LayerBranch'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='classicrecipe',
|
model_name='classicrecipe',
|
||||||
name='cover_layerbranch',
|
name='cover_layerbranch',
|
||||||
field=models.ForeignKey(to='layerindex.LayerBranch', verbose_name='Covering layer', blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL),
|
field=models.ForeignKey(to='layerindex.LayerBranch', verbose_name='Covering layer', blank=True, null=True, on_delete=models.deletion.SET_NULL),
|
||||||
),
|
),
|
||||||
migrations.RunPython(create_master_branch, reverse_code=migrations.RunPython.noop),
|
migrations.RunPython(create_master_branch, reverse_code=migrations.RunPython.noop),
|
||||||
]
|
]
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Migration(migrations.Migration):
|
||||||
('name', models.CharField(max_length=255)),
|
('name', models.CharField(max_length=255)),
|
||||||
('description', models.CharField(max_length=255)),
|
('description', models.CharField(max_length=255)),
|
||||||
('updated', models.DateTimeField(auto_now=True)),
|
('updated', models.DateTimeField(auto_now=True)),
|
||||||
('layerbranch', models.ForeignKey(to='layerindex.LayerBranch')),
|
('layerbranch', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch')),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -20,7 +20,7 @@ class Migration(migrations.Migration):
|
||||||
('errors', models.IntegerField(default=0)),
|
('errors', models.IntegerField(default=0)),
|
||||||
('warnings', models.IntegerField(default=0)),
|
('warnings', models.IntegerField(default=0)),
|
||||||
('log', models.TextField(blank=True)),
|
('log', models.TextField(blank=True)),
|
||||||
('layerbranch', models.ForeignKey(to='layerindex.LayerBranch')),
|
('layerbranch', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch')),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -41,6 +41,6 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='layerupdate',
|
model_name='layerupdate',
|
||||||
name='update',
|
name='update',
|
||||||
field=models.ForeignKey(to='layerindex.Update'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Update'),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -26,7 +26,7 @@ class Migration(migrations.Migration):
|
||||||
('with_option', models.CharField(max_length=255, blank=True)),
|
('with_option', models.CharField(max_length=255, blank=True)),
|
||||||
('without_option', models.CharField(max_length=255, blank=True)),
|
('without_option', models.CharField(max_length=255, blank=True)),
|
||||||
('build_deps', models.CharField(max_length=255, blank=True)),
|
('build_deps', models.CharField(max_length=255, blank=True)),
|
||||||
('recipe', models.ForeignKey(to='layerindex.Recipe')),
|
('recipe', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Recipe')),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
|
|
@ -16,7 +16,7 @@ class Migration(migrations.Migration):
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)),
|
('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)),
|
||||||
('url', models.CharField(max_length=255)),
|
('url', models.CharField(max_length=255)),
|
||||||
('recipe', models.ForeignKey(to='layerindex.Recipe')),
|
('recipe', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Recipe')),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -19,7 +19,7 @@ class Migration(migrations.Migration):
|
||||||
('src_path', models.CharField(max_length=255)),
|
('src_path', models.CharField(max_length=255)),
|
||||||
('status', models.CharField(default='U', choices=[('U', 'Unknown'), ('A', 'Accepted'), ('P', 'Pending'), ('I', 'Inappropriate'), ('B', 'Backport'), ('S', 'Submitted'), ('D', 'Denied')], max_length=1)),
|
('status', models.CharField(default='U', choices=[('U', 'Unknown'), ('A', 'Accepted'), ('P', 'Pending'), ('I', 'Inappropriate'), ('B', 'Backport'), ('S', 'Submitted'), ('D', 'Denied')], max_length=1)),
|
||||||
('status_extra', models.CharField(blank=True, max_length=255)),
|
('status_extra', models.CharField(blank=True, max_length=255)),
|
||||||
('recipe', models.ForeignKey(to='layerindex.Recipe')),
|
('recipe', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Recipe')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'verbose_name_plural': 'Patches',
|
'verbose_name_plural': 'Patches',
|
||||||
|
|
|
@ -15,12 +15,12 @@ class Migration(migrations.Migration):
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='layerupdate',
|
model_name='layerupdate',
|
||||||
name='branch',
|
name='branch',
|
||||||
field=models.ForeignKey(to='layerindex.Branch'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Branch'),
|
||||||
),
|
),
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='layerupdate',
|
model_name='layerupdate',
|
||||||
name='layer',
|
name='layer',
|
||||||
field=models.ForeignKey(to='layerindex.LayerItem'),
|
field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerItem'),
|
||||||
),
|
),
|
||||||
migrations.RemoveField(
|
migrations.RemoveField(
|
||||||
model_name='layerupdate',
|
model_name='layerupdate',
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.core.urlresolvers import reverse
|
from django.urls import reverse
|
||||||
from django.core.validators import URLValidator
|
from django.core.validators import URLValidator
|
||||||
from django.db.models.signals import pre_save
|
from django.db.models.signals import pre_save
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
|
@ -140,7 +140,6 @@ class LayerItem(models.Model):
|
||||||
mailing_list_url = models.URLField('Mailing list URL', blank=True, help_text='URL of the info page for a mailing list for discussing the layer, if any')
|
mailing_list_url = models.URLField('Mailing list URL', blank=True, help_text='URL of the info page for a mailing list for discussing the layer, if any')
|
||||||
index_preference = models.IntegerField('Preference', default=0, help_text='Number used to find preferred recipes in recipe search results (higher number is greater preference)')
|
index_preference = models.IntegerField('Preference', default=0, help_text='Number used to find preferred recipes in recipe search results (higher number is greater preference)')
|
||||||
comparison = models.BooleanField('Comparison', default=False, help_text='Is this a comparison layer?')
|
comparison = models.BooleanField('Comparison', default=False, help_text='Is this a comparison layer?')
|
||||||
|
|
||||||
updated = models.DateTimeField(auto_now=True)
|
updated = models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -196,7 +195,7 @@ class LayerItem(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class LayerRecipeExtraURL(models.Model):
|
class LayerRecipeExtraURL(models.Model):
|
||||||
layer = models.ForeignKey(LayerItem)
|
layer = models.ForeignKey(LayerItem, on_delete=models.CASCADE)
|
||||||
name = models.CharField(max_length=50, help_text='Name to display for link')
|
name = models.CharField(max_length=50, help_text='Name to display for link')
|
||||||
url = models.CharField('URL', max_length=255, help_text='Template for URL to link to (macros: %pn% %pv% %branch% %actual_branch%)')
|
url = models.CharField('URL', max_length=255, help_text='Template for URL to link to (macros: %pn% %pv% %branch% %actual_branch%)')
|
||||||
|
|
||||||
|
@ -229,8 +228,8 @@ class YPCompatibleVersion(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
class LayerBranch(models.Model):
|
class LayerBranch(models.Model):
|
||||||
layer = models.ForeignKey(LayerItem)
|
layer = models.ForeignKey(LayerItem, on_delete=models.CASCADE)
|
||||||
branch = models.ForeignKey(Branch)
|
branch = models.ForeignKey(Branch, on_delete=models.CASCADE)
|
||||||
collection = models.CharField('Layer Collection', max_length=40, null=True, blank=True, help_text='Name of the collection that the layer provides for the purpose of expressing dependencies (as specified in BBFILE_COLLECTIONS). Can only contain letters, numbers and dashes.')
|
collection = models.CharField('Layer Collection', max_length=40, null=True, blank=True, help_text='Name of the collection that the layer provides for the purpose of expressing dependencies (as specified in BBFILE_COLLECTIONS). Can only contain letters, numbers and dashes.')
|
||||||
version = models.CharField('Layer Version', max_length=10, null=True, blank=True, help_text='The layer version for this particular branch.')
|
version = models.CharField('Layer Version', max_length=10, null=True, blank=True, help_text='The layer version for this particular branch.')
|
||||||
vcs_subdir = models.CharField('Repository subdirectory', max_length=40, blank=True, help_text='Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)')
|
vcs_subdir = models.CharField('Repository subdirectory', max_length=40, blank=True, help_text='Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)')
|
||||||
|
@ -375,7 +374,7 @@ class LayerMaintainer(models.Model):
|
||||||
('A', 'Active'),
|
('A', 'Active'),
|
||||||
('I', 'Inactive'),
|
('I', 'Inactive'),
|
||||||
)
|
)
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
email = models.CharField(max_length=255)
|
email = models.CharField(max_length=255)
|
||||||
responsibility = models.CharField(max_length=200, blank=True, help_text='Specific area(s) this maintainer is responsible for, if not the entire layer')
|
responsibility = models.CharField(max_length=200, blank=True, help_text='Specific area(s) this maintainer is responsible for, if not the entire layer')
|
||||||
|
@ -389,8 +388,8 @@ class LayerMaintainer(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class LayerDependency(models.Model):
|
class LayerDependency(models.Model):
|
||||||
layerbranch = models.ForeignKey(LayerBranch, related_name='dependencies_set')
|
layerbranch = models.ForeignKey(LayerBranch, related_name='dependencies_set', on_delete=models.CASCADE)
|
||||||
dependency = models.ForeignKey(LayerItem, related_name='dependents_set')
|
dependency = models.ForeignKey(LayerItem, related_name='dependents_set', on_delete=models.CASCADE)
|
||||||
required = models.BooleanField(default=True)
|
required = models.BooleanField(default=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -401,7 +400,7 @@ class LayerDependency(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class LayerNote(models.Model):
|
class LayerNote(models.Model):
|
||||||
layer = models.ForeignKey(LayerItem)
|
layer = models.ForeignKey(LayerItem, on_delete=models.CASCADE)
|
||||||
text = models.TextField()
|
text = models.TextField()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -409,9 +408,9 @@ class LayerNote(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class LayerUpdate(models.Model):
|
class LayerUpdate(models.Model):
|
||||||
layer = models.ForeignKey(LayerItem)
|
layer = models.ForeignKey(LayerItem, on_delete=models.CASCADE)
|
||||||
branch = models.ForeignKey(Branch)
|
branch = models.ForeignKey(Branch, on_delete=models.CASCADE)
|
||||||
update = models.ForeignKey(Update)
|
update = models.ForeignKey(Update, on_delete=models.CASCADE)
|
||||||
started = models.DateTimeField()
|
started = models.DateTimeField()
|
||||||
finished = models.DateTimeField(blank=True, null=True)
|
finished = models.DateTimeField(blank=True, null=True)
|
||||||
errors = models.IntegerField(default=0)
|
errors = models.IntegerField(default=0)
|
||||||
|
@ -456,7 +455,7 @@ class LayerUpdate(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class Recipe(models.Model):
|
class Recipe(models.Model):
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
filename = models.CharField(max_length=255)
|
filename = models.CharField(max_length=255)
|
||||||
filepath = models.CharField(max_length=255, blank=True)
|
filepath = models.CharField(max_length=255, blank=True)
|
||||||
pn = models.CharField(max_length=100, blank=True)
|
pn = models.CharField(max_length=100, blank=True)
|
||||||
|
@ -527,7 +526,7 @@ class Recipe(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class Source(models.Model):
|
class Source(models.Model):
|
||||||
recipe = models.ForeignKey(Recipe)
|
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
|
||||||
url = models.CharField(max_length=255)
|
url = models.CharField(max_length=255)
|
||||||
sha256sum = models.CharField(max_length=64, blank=True)
|
sha256sum = models.CharField(max_length=64, blank=True)
|
||||||
|
|
||||||
|
@ -561,7 +560,7 @@ class Patch(models.Model):
|
||||||
('S', 'Submitted'),
|
('S', 'Submitted'),
|
||||||
('D', 'Denied'),
|
('D', 'Denied'),
|
||||||
]
|
]
|
||||||
recipe = models.ForeignKey(Recipe)
|
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
|
||||||
path = models.CharField(max_length=255)
|
path = models.CharField(max_length=255)
|
||||||
src_path = models.CharField(max_length=255)
|
src_path = models.CharField(max_length=255)
|
||||||
status = models.CharField(max_length=1, choices=PATCH_STATUS_CHOICES, default='U')
|
status = models.CharField(max_length=1, choices=PATCH_STATUS_CHOICES, default='U')
|
||||||
|
@ -610,7 +609,7 @@ class Patch(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class PackageConfig(models.Model):
|
class PackageConfig(models.Model):
|
||||||
recipe = models.ForeignKey(Recipe)
|
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
|
||||||
feature = models.CharField(max_length=255)
|
feature = models.CharField(max_length=255)
|
||||||
with_option = models.CharField(max_length=255, blank=True)
|
with_option = models.CharField(max_length=255, blank=True)
|
||||||
without_option = models.CharField(max_length=255, blank=True)
|
without_option = models.CharField(max_length=255, blank=True)
|
||||||
|
@ -638,8 +637,8 @@ class DynamicBuildDep(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
class RecipeFileDependency(models.Model):
|
class RecipeFileDependency(models.Model):
|
||||||
recipe = models.ForeignKey(Recipe)
|
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
|
||||||
layerbranch = models.ForeignKey(LayerBranch, related_name='+')
|
layerbranch = models.ForeignKey(LayerBranch, related_name='+', on_delete=models.CASCADE)
|
||||||
path = models.CharField(max_length=255, db_index=True)
|
path = models.CharField(max_length=255, db_index=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -715,8 +714,8 @@ class ClassicRecipe(Recipe):
|
||||||
|
|
||||||
|
|
||||||
class ComparisonRecipeUpdate(models.Model):
|
class ComparisonRecipeUpdate(models.Model):
|
||||||
update = models.ForeignKey(Update)
|
update = models.ForeignKey(Update, on_delete=models.CASCADE)
|
||||||
recipe = models.ForeignKey(ClassicRecipe)
|
recipe = models.ForeignKey(ClassicRecipe, on_delete=models.CASCADE)
|
||||||
meta_updated = models.BooleanField(default=False)
|
meta_updated = models.BooleanField(default=False)
|
||||||
link_updated = models.BooleanField(default=False)
|
link_updated = models.BooleanField(default=False)
|
||||||
|
|
||||||
|
@ -725,7 +724,7 @@ class ComparisonRecipeUpdate(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class Machine(models.Model):
|
class Machine(models.Model):
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
description = models.CharField(max_length=255)
|
description = models.CharField(max_length=255)
|
||||||
|
|
||||||
|
@ -739,7 +738,7 @@ class Machine(models.Model):
|
||||||
return '%s (%s)' % (self.name, self.layerbranch.layer.name)
|
return '%s (%s)' % (self.name, self.layerbranch.layer.name)
|
||||||
|
|
||||||
class Distro(models.Model):
|
class Distro(models.Model):
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
description = models.CharField(max_length=255)
|
description = models.CharField(max_length=255)
|
||||||
|
|
||||||
|
@ -754,7 +753,7 @@ class Distro(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class BBAppend(models.Model):
|
class BBAppend(models.Model):
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
filename = models.CharField(max_length=255)
|
filename = models.CharField(max_length=255)
|
||||||
filepath = models.CharField(max_length=255, blank=True)
|
filepath = models.CharField(max_length=255, blank=True)
|
||||||
|
|
||||||
|
@ -780,7 +779,7 @@ class BBAppend(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class BBClass(models.Model):
|
class BBClass(models.Model):
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
name = models.CharField(max_length=100)
|
name = models.CharField(max_length=100)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -796,7 +795,7 @@ class BBClass(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class IncFile(models.Model):
|
class IncFile(models.Model):
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
path = models.CharField(max_length=255)
|
path = models.CharField(max_length=255)
|
||||||
|
|
||||||
def vcs_web_url(self):
|
def vcs_web_url(self):
|
||||||
|
@ -808,7 +807,7 @@ class IncFile(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class RecipeChangeset(models.Model):
|
class RecipeChangeset(models.Model):
|
||||||
user = models.ForeignKey(User)
|
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -825,8 +824,8 @@ class RecipeChange(models.Model):
|
||||||
'bugtracker': 'BUGTRACKER',
|
'bugtracker': 'BUGTRACKER',
|
||||||
}
|
}
|
||||||
|
|
||||||
changeset = models.ForeignKey(RecipeChangeset)
|
changeset = models.ForeignKey(RecipeChangeset, on_delete=models.CASCADE)
|
||||||
recipe = models.ForeignKey(Recipe, related_name='+')
|
recipe = models.ForeignKey(Recipe, related_name='+', on_delete=models.CASCADE)
|
||||||
summary = models.CharField(max_length=100, blank=True)
|
summary = models.CharField(max_length=100, blank=True)
|
||||||
description = models.TextField(blank=True)
|
description = models.TextField(blank=True)
|
||||||
section = models.CharField(max_length=100, blank=True)
|
section = models.CharField(max_length=100, blank=True)
|
||||||
|
@ -882,7 +881,7 @@ class SecurityQuestion(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class UserProfile(models.Model):
|
class UserProfile(models.Model):
|
||||||
user = models.OneToOneField(User)
|
user = models.OneToOneField(User, on_delete=models.CASCADE)
|
||||||
answer_attempts = models.IntegerField(default=0)
|
answer_attempts = models.IntegerField(default=0)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -891,7 +890,7 @@ class UserProfile(models.Model):
|
||||||
|
|
||||||
class SecurityQuestionAnswer(models.Model):
|
class SecurityQuestionAnswer(models.Model):
|
||||||
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
|
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
|
||||||
security_question = models.ForeignKey(SecurityQuestion)
|
security_question = models.ForeignKey(SecurityQuestion, on_delete=models.CASCADE)
|
||||||
answer = models.CharField(max_length = 250, null=False)
|
answer = models.CharField(max_length = 250, null=False)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
from django.conf.urls import *
|
from django.conf.urls import *
|
||||||
from django.views.generic import TemplateView, DetailView, ListView, RedirectView
|
from django.views.generic import TemplateView, DetailView, ListView, RedirectView
|
||||||
from django.views.defaults import page_not_found
|
from django.views.defaults import page_not_found
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
from layerindex.views import LayerListView, LayerReviewListView, LayerReviewDetailView, RecipeSearchView, \
|
from layerindex.views import LayerListView, LayerReviewListView, LayerReviewDetailView, RecipeSearchView, \
|
||||||
MachineSearchView, LayerDetailView, edit_layer_view, delete_layer_view, edit_layernote_view, delete_layernote_view, \
|
MachineSearchView, LayerDetailView, edit_layer_view, delete_layer_view, edit_layernote_view, delete_layernote_view, \
|
||||||
HistoryListView, EditProfileFormView, AdvancedRecipeSearchView, BulkChangeView, BulkChangeSearchView, \
|
HistoryListView, EditProfileFormView, AdvancedRecipeSearchView, BulkChangeView, BulkChangeSearchView, \
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
from django.conf.urls import *
|
from django.conf.urls import *
|
||||||
from django.views.defaults import page_not_found
|
from django.views.defaults import page_not_found
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
from layerindex.views import LayerListView, RecipeSearchView, MachineSearchView, DistroSearchView, ClassSearchView, LayerDetailView, edit_layer_view, delete_layer_view, edit_layernote_view, delete_layernote_view, RedirectParamsView, DuplicatesView, LayerUpdateDetailView, layer_export_recipes_csv_view, comparison_update_view
|
from layerindex.views import LayerListView, RecipeSearchView, MachineSearchView, DistroSearchView, ClassSearchView, LayerDetailView, edit_layer_view, delete_layer_view, edit_layernote_view, delete_layernote_view, RedirectParamsView, DuplicatesView, LayerUpdateDetailView, layer_export_recipes_csv_view, comparison_update_view
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|
|
@ -21,7 +21,7 @@ from django.contrib.auth.models import Permission, User
|
||||||
from django.contrib.messages.views import SuccessMessageMixin
|
from django.contrib.messages.views import SuccessMessageMixin
|
||||||
from django.contrib.sites.models import Site
|
from django.contrib.sites.models import Site
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
from django.core.urlresolvers import resolve, reverse, reverse_lazy
|
from django.urls import resolve, reverse, reverse_lazy
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.db.models import Count, Q
|
from django.db.models import Count, Q
|
||||||
from django.db.models.functions import Lower
|
from django.db.models.functions import Lower
|
||||||
|
|
4
urls.py
4
urls.py
|
@ -6,7 +6,7 @@
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
from django.conf.urls import include, url
|
from django.conf.urls import include, url
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
from django.views.generic import RedirectView, TemplateView
|
from django.views.generic import RedirectView, TemplateView
|
||||||
from layerindex.auth_views import CaptchaRegistrationView, CaptchaPasswordResetView, delete_account_view, \
|
from layerindex.auth_views import CaptchaRegistrationView, CaptchaPasswordResetView, delete_account_view, \
|
||||||
PasswordResetSecurityQuestions
|
PasswordResetSecurityQuestions
|
||||||
|
@ -17,7 +17,7 @@ import settings
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^layerindex/', include('layerindex.urls')),
|
url(r'^layerindex/', include('layerindex.urls')),
|
||||||
url(r'^admin/', include(admin.site.urls)),
|
url(r'^admin/', admin.site.urls),
|
||||||
url(r'^accounts/password_reset/$',
|
url(r'^accounts/password_reset/$',
|
||||||
CaptchaPasswordResetView.as_view(
|
CaptchaPasswordResetView.as_view(
|
||||||
email_template_name='registration/password_reset_email.txt',
|
email_template_name='registration/password_reset_email.txt',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user