Update csrf value to use value if present in context, then fall back to cookie.
Updated database samples. Added migrations for sample project models. Updated Category model to make order not editable.master
parent
f4daaeb232
commit
d4f577fdf9
|
|
@ -16,7 +16,7 @@
|
||||||
return cookieValue;
|
return cookieValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var csrftoken = getCookie('{{ csrf_cookie_name }}');
|
var csrftoken = '{{ csrf_token }}' || getCookie('{{ csrf_cookie_name }}');
|
||||||
|
|
||||||
function csrfSafeMethod(method) {
|
function csrfSafeMethod(method) {
|
||||||
// these HTTP methods do not require CSRF protection
|
// these HTTP methods do not require CSRF protection
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,235 @@
|
||||||
|
# Generated by Django 2.0 on 2017-12-05 02:55
|
||||||
|
|
||||||
|
import adminsortable.fields
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('contenttypes', '0002_remove_content_type_name'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='BackwardCompatibleWidget',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('order', models.PositiveIntegerField(db_index=True, default=0, editable=False)),
|
||||||
|
('title', models.CharField(max_length=50)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Backward Compatible Widget',
|
||||||
|
'verbose_name_plural': 'Backward Compatible Widgets',
|
||||||
|
'ordering': ['order'],
|
||||||
|
'abstract': False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Category',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', models.CharField(max_length=50)),
|
||||||
|
('order', models.PositiveIntegerField(default=0)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name_plural': 'Categories',
|
||||||
|
'ordering': ['order'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Component',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', models.CharField(max_length=50)),
|
||||||
|
('order', models.PositiveIntegerField(default=0, editable=False)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'ordering': ['order'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Credit',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('first_name', models.CharField(help_text='Given name', max_length=30)),
|
||||||
|
('last_name', models.CharField(help_text='Family name', max_length=30)),
|
||||||
|
('order', models.PositiveIntegerField(default=0, editable=False)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'ordering': ['order'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='CustomWidget',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', models.CharField(max_length=50)),
|
||||||
|
('custom_order_field', models.PositiveIntegerField(db_index=True, default=0, editable=False)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Custom Widget',
|
||||||
|
'verbose_name_plural': 'Custom Widgets',
|
||||||
|
'ordering': ['custom_order_field'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='CustomWidgetComponent',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', models.CharField(max_length=50)),
|
||||||
|
('widget_order', models.PositiveIntegerField(db_index=True, default=0, editable=False)),
|
||||||
|
('custom_widget', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='samples.CustomWidget')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Custom Widget Component',
|
||||||
|
'verbose_name_plural': 'Custom Widget Components',
|
||||||
|
'ordering': ['widget_order'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='GenericNote',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', models.CharField(max_length=50)),
|
||||||
|
('object_id', models.PositiveIntegerField(verbose_name='Content id')),
|
||||||
|
('order', models.PositiveIntegerField(default=0, editable=False)),
|
||||||
|
('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='generic_notes', to='contenttypes.ContentType', verbose_name='Content type')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'ordering': ['order'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='NonSortableCategory',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', models.CharField(max_length=50)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Non-Sortable Category',
|
||||||
|
'verbose_name_plural': 'Non-Sortable Categories',
|
||||||
|
'abstract': False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='NonSortableCredit',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('first_name', models.CharField(help_text='Given name', max_length=30)),
|
||||||
|
('last_name', models.CharField(help_text='Family name', max_length=30)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='NonSortableNote',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('text', models.CharField(max_length=100)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Note',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('text', models.CharField(max_length=100)),
|
||||||
|
('order', models.PositiveIntegerField(default=0, editable=False)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'ordering': ['order'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Person',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('first_name', models.CharField(max_length=50)),
|
||||||
|
('last_name', models.CharField(max_length=50)),
|
||||||
|
('is_board_member', models.BooleanField(default=False, verbose_name='Board Member')),
|
||||||
|
('order', models.PositiveIntegerField(default=0, editable=False)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name_plural': 'People',
|
||||||
|
'ordering': ['order'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Project',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', models.CharField(max_length=50)),
|
||||||
|
('description', models.TextField()),
|
||||||
|
('order', models.PositiveIntegerField(default=0, editable=False)),
|
||||||
|
('category', adminsortable.fields.SortableForeignKey(on_delete=django.db.models.deletion.CASCADE, to='samples.Category')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'ordering': ['order'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='SortableCategoryWidget',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', models.CharField(max_length=50)),
|
||||||
|
('order', models.PositiveIntegerField(default=0, editable=False)),
|
||||||
|
('non_sortable_category', adminsortable.fields.SortableForeignKey(on_delete=django.db.models.deletion.CASCADE, to='samples.NonSortableCategory')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Sortable Category Widget',
|
||||||
|
'verbose_name_plural': 'Sortable Category Widgets',
|
||||||
|
'ordering': ['order'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='SortableNonInlineCategory',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', models.CharField(max_length=50)),
|
||||||
|
('order', models.PositiveIntegerField(default=0, editable=False)),
|
||||||
|
('non_sortable_category', adminsortable.fields.SortableForeignKey(on_delete=django.db.models.deletion.CASCADE, to='samples.NonSortableCategory')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Sortable Non-Inline Category',
|
||||||
|
'verbose_name_plural': 'Sortable Non-Inline Categories',
|
||||||
|
'ordering': ['order'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Widget',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', models.CharField(max_length=50)),
|
||||||
|
('order', models.PositiveIntegerField(default=0, editable=False)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'ordering': ['order'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='note',
|
||||||
|
name='project',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='samples.Project'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='nonsortablenote',
|
||||||
|
name='project',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='samples.Project'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='nonsortablecredit',
|
||||||
|
name='project',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='samples.Project'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='credit',
|
||||||
|
name='project',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='samples.Project'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='component',
|
||||||
|
name='widget',
|
||||||
|
field=adminsortable.fields.SortableForeignKey(on_delete=django.db.models.deletion.CASCADE, to='samples.Widget'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -24,7 +24,7 @@ class Category(SimpleModel, SortableMixin):
|
||||||
verbose_name_plural = 'Categories'
|
verbose_name_plural = 'Categories'
|
||||||
ordering = ['order']
|
ordering = ['order']
|
||||||
|
|
||||||
order = models.PositiveIntegerField(default=0)
|
order = models.PositiveIntegerField(default=0, editable=False)
|
||||||
|
|
||||||
|
|
||||||
# A model with an override of its queryset for admin
|
# A model with an override of its queryset for admin
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue