Skip to content

Commit 588c5f3

Browse files
authored
Merge pull request #132 from UCL-ARC/amanda/small-tweaks
Amanda/small tweaks
2 parents 166c66c + a2e7dc2 commit 588c5f3

6 files changed

+149
-3
lines changed

mod_app/admin/film_admin.py

+15-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
StillInline,
1919
VideoInline,
2020
)
21+
from mod_app.admin.note_admin import VWIInline
2122
from mod_app.utils.mixins import EmailMixin
2223

2324
from ..models import Analysis, TeachingResources, Film
@@ -55,6 +56,7 @@ class Media:
5556

5657
autocomplete_fields = ["genre"]
5758
search_fields = [
59+
"bfi_identifier",
5860
"title",
5961
"alt_titles",
6062
"production_company",
@@ -70,6 +72,7 @@ class Media:
7072
inlines = [
7173
FilmAnalysisInline,
7274
TRInline,
75+
VWIInline,
7376
SourceInline,
7477
OtherLinkInline,
7578
VideoInline,
@@ -84,6 +87,7 @@ class Media:
8487
]
8588
list_display = [
8689
"title",
90+
"bfi_identifier",
8791
"safe_temporary_images",
8892
"preview_video",
8993
"safe_alt_titles",
@@ -155,7 +159,10 @@ def preview_video(self, obj):
155159
"fields": (
156160
"title",
157161
"alt_titles",
158-
"release_date",
162+
(
163+
"bfi_identifier",
164+
"release_date",
165+
),
159166
("production_country", "production_company"),
160167
"synopsis",
161168
("cast", "crew"),
@@ -203,6 +210,13 @@ def preview_video(self, obj):
203210
None,
204211
{"classes": ("placeholder TeachingResources_films-group",), "fields": ()},
205212
),
213+
(
214+
None,
215+
{
216+
"classes": ("placeholder VisualWrittenInfluences_films-group",),
217+
"fields": (),
218+
},
219+
),
206220
(
207221
"Comments and List Images",
208222
{

mod_app/admin/note_admin.py

+13-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55

66
from mod_app.models import ProjectNote, Feedback, VisualWrittenInfluences
7+
from mod_app.utils.mixins import s3BrowserButtonMixin
78

89

910
@admin.register(ProjectNote)
@@ -42,8 +43,19 @@ def safe_content(self, obj):
4243
safe_content.short_description = "Content"
4344

4445

46+
class VWIInline(s3BrowserButtonMixin, admin.TabularInline):
47+
model = VisualWrittenInfluences.films.through
48+
extra = 1
49+
classes = [
50+
"grp-collapse",
51+
"grp-open",
52+
]
53+
verbose_name = "Visual & Written Influences"
54+
verbose_name_plural = "Visual & Written Influences"
55+
56+
4557
@admin.register(VisualWrittenInfluences)
46-
class VWIAdmin(admin.ModelAdmin):
58+
class VWIAdmin(s3BrowserButtonMixin, admin.ModelAdmin):
4759
class Media:
4860
js = ("admin/js/mentionsPluginConfig.js",)
4961

mod_app/migrations/0028_visualwritteninfluences.py

+6
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ class Migration(migrations.Migration):
2323
),
2424
),
2525
("title", models.CharField(max_length=255)),
26+
(
27+
"films",
28+
models.ManyToManyField(
29+
blank=True, related_name="vwis", to="mod_app.film"
30+
),
31+
),
2632
(
2733
"content",
2834
ckeditor_uploader.fields.RichTextUploadingField(
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Generated by Django 4.2.5 on 2024-12-09 14:59
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
dependencies = [
9+
("mod_app", "0028_visualwritteninfluences"),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name="drawing",
15+
name="film",
16+
field=models.ForeignKey(
17+
null=True,
18+
on_delete=django.db.models.deletion.SET_NULL,
19+
related_name="%(class)ss",
20+
to="mod_app.film",
21+
),
22+
),
23+
migrations.AlterField(
24+
model_name="otherlink",
25+
name="film",
26+
field=models.ForeignKey(
27+
null=True,
28+
on_delete=django.db.models.deletion.SET_NULL,
29+
related_name="%(class)ss",
30+
to="mod_app.film",
31+
),
32+
),
33+
migrations.AlterField(
34+
model_name="postcard",
35+
name="film",
36+
field=models.ForeignKey(
37+
null=True,
38+
on_delete=django.db.models.deletion.SET_NULL,
39+
related_name="%(class)ss",
40+
to="mod_app.film",
41+
),
42+
),
43+
migrations.AlterField(
44+
model_name="poster",
45+
name="film",
46+
field=models.ForeignKey(
47+
null=True,
48+
on_delete=django.db.models.deletion.SET_NULL,
49+
related_name="%(class)ss",
50+
to="mod_app.film",
51+
),
52+
),
53+
migrations.AlterField(
54+
model_name="pressbook",
55+
name="film",
56+
field=models.ForeignKey(
57+
null=True,
58+
on_delete=django.db.models.deletion.SET_NULL,
59+
related_name="%(class)ss",
60+
to="mod_app.film",
61+
),
62+
),
63+
migrations.AlterField(
64+
model_name="programme",
65+
name="film",
66+
field=models.ForeignKey(
67+
null=True,
68+
on_delete=django.db.models.deletion.SET_NULL,
69+
related_name="%(class)ss",
70+
to="mod_app.film",
71+
),
72+
),
73+
migrations.AlterField(
74+
model_name="publicity",
75+
name="film",
76+
field=models.ForeignKey(
77+
null=True,
78+
on_delete=django.db.models.deletion.SET_NULL,
79+
related_name="%(class)ss",
80+
to="mod_app.film",
81+
),
82+
),
83+
migrations.AlterField(
84+
model_name="script",
85+
name="film",
86+
field=models.ForeignKey(
87+
null=True,
88+
on_delete=django.db.models.deletion.SET_NULL,
89+
related_name="%(class)ss",
90+
to="mod_app.film",
91+
),
92+
),
93+
migrations.AlterField(
94+
model_name="still",
95+
name="film",
96+
field=models.ForeignKey(
97+
null=True,
98+
on_delete=django.db.models.deletion.SET_NULL,
99+
related_name="%(class)ss",
100+
to="mod_app.film",
101+
),
102+
),
103+
migrations.AlterField(
104+
model_name="video",
105+
name="film",
106+
field=models.ForeignKey(
107+
null=True,
108+
on_delete=django.db.models.deletion.SET_NULL,
109+
related_name="%(class)ss",
110+
to="mod_app.film",
111+
),
112+
),
113+
]

mod_app/models/support_models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def __str__(self):
3131
blank=False,
3232
)
3333
film = models.ForeignKey(
34-
"Film", on_delete=models.CASCADE, related_name="%(class)ss", null=True
34+
"Film", on_delete=models.SET_NULL, related_name="%(class)ss", null=True
3535
)
3636

3737

mod_app/models/visual_written_influences_model.py

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ def __str__(self):
1414
return self.title
1515

1616
title = models.CharField(max_length=255, null=False)
17+
films = models.ManyToManyField("Film", related_name="vwis", blank=True)
1718

1819
content = RichTextUploadingField(
1920
null=True,

0 commit comments

Comments
 (0)