|
1 # -*- coding: utf-8 -*- |
1 ''' |
2 ''' |
2 Created on Jan 26, 2012 |
3 Created on Jan 26, 2012 |
3 |
4 |
4 @author: ymh |
5 @author: ymh |
5 ''' |
6 ''' |
6 from django.db import models |
7 from django.db import models |
7 from hdabo.models import Tag |
8 from hdabo.models import Tag |
8 |
9 |
9 |
10 |
10 class WpCategory(models.Model): |
11 class WpCategory(models.Model): |
|
12 """ |
|
13 Une catégorie Wikipedia. |
|
14 |
|
15 :cvar str label: Le label de la catégorie. |
|
16 """ |
11 label = models.CharField(max_length=2048, unique=True, blank=False, null=False) |
17 label = models.CharField(max_length=2048, unique=True, blank=False, null=False) |
12 |
18 |
13 def __unicode__(self): |
19 def __unicode__(self): |
14 return unicode(self.label) |
20 return unicode(self.label) |
15 |
21 |
16 class Meta: |
22 class Meta: |
17 app_label = 'hdalab' |
23 app_label = 'hdalab' |
18 verbose_name_plural = "WpCategories" |
24 verbose_name_plural = "WpCategories" |
19 |
25 |
20 class TagWpCategory(models.Model): |
26 class TagWpCategory(models.Model): |
|
27 """ |
|
28 Relie une catégorie Wikipedia à un tag. |
|
29 |
|
30 :cvar object tag: Le tag. |
|
31 :cvar object wp_category: La categorie wikipedia. |
|
32 :cvar bool hidden: Indique si la catégorie est cachée ou pas. |
|
33 """ |
21 tag = models.ForeignKey(Tag, related_name="wp_categories") |
34 tag = models.ForeignKey(Tag, related_name="wp_categories") |
22 wp_category = models.ForeignKey(WpCategory, related_name="tags") |
35 wp_category = models.ForeignKey(WpCategory, related_name="tags") |
23 hidden = models.BooleanField(blank=False, null=False, default=False) |
36 hidden = models.BooleanField(blank=False, null=False, default=False) |
24 |
37 |
25 class Meta: |
38 class Meta: |
26 app_label = 'hdalab' |
39 app_label = 'hdalab' |
27 unique_together = ('tag', 'wp_category', 'hidden') |
40 unique_together = ('tag', 'wp_category', 'hidden') |
28 |
41 |
|
42 |
29 class TagInfobox(models.Model): |
43 class TagInfobox(models.Model): |
|
44 """ |
|
45 Contenu de l'infobox wikipedia pour un tag. |
|
46 |
|
47 :cvar object tag: Le tag |
|
48 :cvar str name: Le nom (type) de l'infobox. |
|
49 :cvar str source: Le code source de l'infobox. |
|
50 :cvar int revision_id: Numéro de révision de l'infobox. |
|
51 """ |
|
52 |
30 tag = models.ForeignKey(Tag, related_name="infoboxes") |
53 tag = models.ForeignKey(Tag, related_name="infoboxes") |
31 name = models.CharField(max_length=2048, unique=False, blank=False, null=False) |
54 name = models.CharField(max_length=2048, unique=False, blank=False, null=False) |
32 source = models.TextField(unique=False, blank=True, null=True) |
55 source = models.TextField(unique=False, blank=True, null=True) |
33 revision_id = models.BigIntegerField(unique=False, blank=True, null=True) |
56 revision_id = models.BigIntegerField(unique=False, blank=True, null=True) |
34 |
57 |
35 class Meta: |
58 class Meta: |
36 app_label = 'hdalab' |
59 app_label = 'hdalab' |
37 unique_together = ('tag','name','revision_id') |
60 unique_together = ('tag','name','revision_id') |
38 |
61 |
|
62 |
39 class InfoboxParameter(models.Model): |
63 class InfoboxParameter(models.Model): |
|
64 """ |
|
65 Valeurs de paramêtre d'une infobox Wikipedia. |
|
66 |
|
67 :cvar object tag_infobox: L'objet :class:TagInfobox. |
|
68 :cvar str param_name: Nom du paramêtre. |
|
69 :cvar str param_value: Valeur du paramêtre. |
|
70 """ |
|
71 |
40 tag_infobox = models.ForeignKey(TagInfobox) |
72 tag_infobox = models.ForeignKey(TagInfobox) |
41 param_name = models.CharField(max_length=2048, unique=False, blank=False, null=False) |
73 param_name = models.CharField(max_length=2048, unique=False, blank=False, null=False) |
42 param_value = models.TextField(unique=False, blank=True, null=True) |
74 param_value = models.TextField(unique=False, blank=True, null=True) |
43 |
75 |
44 class Meta: |
76 class Meta: |
46 unique_together = ('tag_infobox','param_name') |
78 unique_together = ('tag_infobox','param_name') |
47 |
79 |
48 # Added on 02/07/2012 |
80 # Added on 02/07/2012 |
49 |
81 |
50 class WpCategoryInclusion(models.Model): |
82 class WpCategoryInclusion(models.Model): |
|
83 """ |
|
84 Classe permettant de modéliser l'arbre de catégorie Wikipedia. |
|
85 |
|
86 :cvar object parent_category: La catégorie parente. |
|
87 :cvar object child_category: La catégorie enfant. |
|
88 """ |
|
89 |
51 parent_category = models.ForeignKey(WpCategory, related_name="child_categories") |
90 parent_category = models.ForeignKey(WpCategory, related_name="child_categories") |
52 child_category = models.ForeignKey(WpCategory, related_name="parent_categories") |
91 child_category = models.ForeignKey(WpCategory, related_name="parent_categories") |
53 |
92 |
54 class Meta: |
93 class Meta: |
55 app_label = 'hdalab' |
94 app_label = 'hdalab' |
56 unique_together = ('parent_category','child_category') |
95 unique_together = ('parent_category','child_category') |