src/hdalab/models/categories.py
branchdocumentation
changeset 693 09e00f38d177
parent 545 c752fdee555b
equal deleted inserted replaced
692:b7d19cd87fcf 693:09e00f38d177
       
     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')