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;
|
||||
}
|
||||
|
||||
var csrftoken = getCookie('{{ csrf_cookie_name }}');
|
||||
var csrftoken = '{{ csrf_token }}' || getCookie('{{ csrf_cookie_name }}');
|
||||
|
||||
function csrfSafeMethod(method) {
|
||||
// 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'
|
||||
ordering = ['order']
|
||||
|
||||
order = models.PositiveIntegerField(default=0)
|
||||
order = models.PositiveIntegerField(default=0, editable=False)
|
||||
|
||||
|
||||
# A model with an override of its queryset for admin
|
||||
|
|
|
|||
Loading…
Reference in New Issue