Add ManyToMany fields for sites and subspecialty in Resource model
This commit is contained in:
+27
-1
@@ -59,6 +59,7 @@ from generic.models import (
|
||||
SeriesBase,
|
||||
SeriesImageBase,
|
||||
Modality,
|
||||
Site,
|
||||
UserUserGroup,
|
||||
)
|
||||
|
||||
@@ -1875,6 +1876,20 @@ class Resource(models.Model, AuthorMixin):
|
||||
help_text="Author of the resource",
|
||||
related_name="resources",
|
||||
)
|
||||
# Link resources to one or more Sites (from generic.Site)
|
||||
sites = models.ManyToManyField(
|
||||
'generic.Site',
|
||||
blank=True,
|
||||
help_text='The site(s) this resource is associated with (if any).',
|
||||
related_name='resources',
|
||||
)
|
||||
|
||||
# Categorise resources by subspecialty
|
||||
subspecialty = models.ManyToManyField(
|
||||
Subspecialty,
|
||||
blank=True,
|
||||
help_text='Subspecialty or subspecialties this resource relates to.',
|
||||
)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.name
|
||||
@@ -1902,7 +1917,18 @@ class Resource(models.Model, AuthorMixin):
|
||||
else:
|
||||
html = self.name
|
||||
|
||||
return format_html("<details class='resource-block'><summary>{}</summary>{}</details>", self.name, mark_safe(html))
|
||||
meta = ''
|
||||
if self.sites.exists():
|
||||
meta += ' Sites: ' + ', '.join([s.short_code or s.full_name for s in self.sites.all()])
|
||||
if self.subspecialty.exists():
|
||||
meta += ' Subspecialty: ' + ', '.join([str(s) for s in self.subspecialty.all()])
|
||||
|
||||
return format_html(
|
||||
"<details class='resource-block'><summary>{}</summary><div>{}</div><div class='text-muted small'>{}</div></details>",
|
||||
self.name,
|
||||
mark_safe(html),
|
||||
meta,
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user