Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import logging
3from django.db import models
4from django_bleach.models import BleachField
5from taggit.models import GenericTaggedItemBase, TagBase
6from wagtail.admin.edit_handlers import FieldPanel
8logger = logging.getLogger(__name__)
11class Topic(models.Model):
12 title = models.CharField(max_length=200)
13 description = BleachField(blank=True)
15 def __str__(self):
16 return self.title
19class Keyword(models.Model):
20 title = models.CharField(max_length=200)
21 description = BleachField(blank=True)
23 def __str__(self):
24 return self.title
27class EnTagged(TagBase):
28 class Meta:
29 verbose_name = "English Tag"
30 verbose_name_plural = "English Tags"
33class EnglishTags(GenericTaggedItemBase):
34 tag = models.ForeignKey("EnTagged", on_delete=models.CASCADE)
37class AffiliationTagged(TagBase):
38 class Meta:
39 verbose_name = "Affiliation Tag"
40 verbose_name_plural = "Affiliation Tags"
43class AffiliationTags(GenericTaggedItemBase):
44 tag = models.ForeignKey(
45 "AffiliationTagged", related_name="affiliation_tags", on_delete=models.CASCADE,
46 )
48 def __str__(self):
49 return self.tag.name
52class KeywordTagged(TagBase):
53 class Meta:
54 verbose_name = "Keyword Tag"
55 verbose_name_plural = "Keyword Tags"
57 panels = [
58 FieldPanel("name"),
59 ]
62class KeywordTags(GenericTaggedItemBase):
63 tag = models.ForeignKey(
64 "KeywordTagged",
65 related_name="keywordtags_keywordtagged",
66 on_delete=models.CASCADE,
67 )
69 def __str__(self):
70 return self.tag.name
73class LanguageTagged(TagBase):
74 class Meta:
75 verbose_name = "Language Tag"
76 verbose_name_plural = "Language Tags"
78 panels = [
79 FieldPanel("name"),
80 ]
83class LanguageTags(GenericTaggedItemBase):
84 tag = models.ForeignKey(
85 "LanguageTagged",
86 related_name="languagetags_languagetagged",
87 on_delete=models.CASCADE,
88 )
90 def __str__(self):
91 return self.tag.name
94class Link(models.Model):
95 url = models.URLField()
96 doi = models.CharField(max_length=200, blank=True)
97 description = models.CharField(max_length=400, blank=True)
99 # def lookup_doi(self):
100 # service, doi_dict = lookup_doi(self.doi)
101 # print(doi_dict['author'])
103 def __str__(self):
104 return self.url