Hide keyboard shortcuts

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 

2 

3from django.db import models 

4from django_bleach.models import BleachField 

5from taggit.models import GenericTaggedItemBase, TagBase 

6from wagtail.admin.edit_handlers import FieldPanel 

7 

8logger = logging.getLogger(__name__) 

9 

10 

11class Topic(models.Model): 

12 title = models.CharField(max_length=200) 

13 description = BleachField(blank=True) 

14 

15 def __str__(self): 

16 return self.title 

17 

18 

19class Keyword(models.Model): 

20 title = models.CharField(max_length=200) 

21 description = BleachField(blank=True) 

22 

23 def __str__(self): 

24 return self.title 

25 

26 

27class EnTagged(TagBase): 

28 class Meta: 

29 verbose_name = "English Tag" 

30 verbose_name_plural = "English Tags" 

31 

32 

33class EnglishTags(GenericTaggedItemBase): 

34 tag = models.ForeignKey("EnTagged", on_delete=models.CASCADE) 

35 

36 

37class AffiliationTagged(TagBase): 

38 class Meta: 

39 verbose_name = "Affiliation Tag" 

40 verbose_name_plural = "Affiliation Tags" 

41 

42 

43class AffiliationTags(GenericTaggedItemBase): 

44 tag = models.ForeignKey( 

45 "AffiliationTagged", related_name="affiliation_tags", on_delete=models.CASCADE, 

46 ) 

47 

48 def __str__(self): 

49 return self.tag.name 

50 

51 

52class KeywordTagged(TagBase): 

53 class Meta: 

54 verbose_name = "Keyword Tag" 

55 verbose_name_plural = "Keyword Tags" 

56 

57 panels = [ 

58 FieldPanel("name"), 

59 ] 

60 

61 

62class KeywordTags(GenericTaggedItemBase): 

63 tag = models.ForeignKey( 

64 "KeywordTagged", 

65 related_name="keywordtags_keywordtagged", 

66 on_delete=models.CASCADE, 

67 ) 

68 

69 def __str__(self): 

70 return self.tag.name 

71 

72 

73class LanguageTagged(TagBase): 

74 class Meta: 

75 verbose_name = "Language Tag" 

76 verbose_name_plural = "Language Tags" 

77 

78 panels = [ 

79 FieldPanel("name"), 

80 ] 

81 

82 

83class LanguageTags(GenericTaggedItemBase): 

84 tag = models.ForeignKey( 

85 "LanguageTagged", 

86 related_name="languagetags_languagetagged", 

87 on_delete=models.CASCADE, 

88 ) 

89 

90 def __str__(self): 

91 return self.tag.name 

92 

93 

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) 

98 

99 # def lookup_doi(self): 

100 # service, doi_dict = lookup_doi(self.doi) 

101 # print(doi_dict['author']) 

102 

103 def __str__(self): 

104 return self.url