src/core/models/term.py
changeset 15 8440c36660e5
parent 0 4095911a7830
child 24 1d20eaea6169
equal deleted inserted replaced
14:89870eed3f70 15:8440c36660e5
     3 Created on Jun 8, 2013
     3 Created on Jun 8, 2013
     4 
     4 
     5 @author: ymh
     5 @author: ymh
     6 '''
     6 '''
     7 
     7 
       
     8 from .. import settings
       
     9 from django.contrib.auth import get_user_model
     8 from django.db import models
    10 from django.db import models
     9 from django.contrib.auth import get_user_model
    11 from django.utils.translation import ugettext as _
    10 from .. import settings 
       
    11 import datetime
    12 import datetime
    12 import logging
    13 import logging
    13 
    14 
    14 logger = logging.getLogger(__name__)
    15 logger = logging.getLogger(__name__)
    15 
    16 
    19     (0, "null_result"),
    20     (0, "null_result"),
    20     (1, "redirection"),
    21     (1, "redirection"),
    21     (2, "homonyme"),
    22     (2, "homonyme"),
    22     (3, "match"),
    23     (3, "match"),
    23     (4, "unsematized"),
    24     (4, "unsematized"),
       
    25 )
       
    26 
       
    27 TERM_URL_STATUS_CHOICES_TRANS = (
       
    28     (0, _("null_result")),
       
    29     (1, _("redirection")),
       
    30     (2, _("homonyme")),
       
    31     (3, _("match")),
       
    32     (4, _("unsematized")),
    24 )
    33 )
    25 
    34 
    26 TERM_URL_STATUS_DICT = {
    35 TERM_URL_STATUS_DICT = {
    27     "null_result":0,
    36     "null_result":0,
    28     "redirection":1,
    37     "redirection":1,
    57     wikipedia_url = models.URLField(max_length=2048, blank=True, null=True, db_index=True)
    66     wikipedia_url = models.URLField(max_length=2048, blank=True, null=True, db_index=True)
    58     wikipedia_pageid = models.BigIntegerField(unique=False, blank=True, null=True, db_index=True)
    67     wikipedia_pageid = models.BigIntegerField(unique=False, blank=True, null=True, db_index=True)
    59     wikipedia_revision_id = models.BigIntegerField(unique=False, blank=True, null=True)
    68     wikipedia_revision_id = models.BigIntegerField(unique=False, blank=True, null=True)
    60     alternative_wikipedia_url = models.URLField(max_length=2048, blank=True, null=True, db_index=True)
    69     alternative_wikipedia_url = models.URLField(max_length=2048, blank=True, null=True, db_index=True)
    61     alternative_wikipedia_pageid = models.BigIntegerField(unique=False, blank=True, null=True, db_index=True)
    70     alternative_wikipedia_pageid = models.BigIntegerField(unique=False, blank=True, null=True, db_index=True)
    62     url_status = models.IntegerField(choices=TERM_URL_STATUS_CHOICES, blank=True, null=True, default=None, db_index=True)
    71     url_status = models.IntegerField(choices=TERM_URL_STATUS_CHOICES_TRANS, blank=True, null=True, default=None, db_index=True)
    63     dbpedia_uri = models.URLField(max_length=2048, blank=True, null=True, db_index=True)
    72     dbpedia_uri = models.URLField(max_length=2048, blank=True, null=True, db_index=True)
    64     validation_date = models.DateTimeField(null=True, blank=True, serialize=False)
    73     validation_date = models.DateTimeField(null=True, blank=True, serialize=False)
    65     validated = models.BooleanField(default=False, db_index=True)
    74     validated = models.BooleanField(default=False, db_index=True)
    66     validator = models.ForeignKey(User, null=True, blank=True, serialize=False)
    75     validator = models.ForeignKey(User, null=True, blank=True, serialize=False)
    67     
    76     
    73     def wikipedia_revision_permalink(self):
    82     def wikipedia_revision_permalink(self):
    74         return settings.WIKIPEDIA_VERSION_PERMALINK_TEMPLATE % (unicode(self.wikipedia_revision_id))
    83         return settings.WIKIPEDIA_VERSION_PERMALINK_TEMPLATE % (unicode(self.wikipedia_revision_id))
    75 
    84 
    76     @property
    85     @property
    77     def url_status_text(self):
    86     def url_status_text(self):
    78         return TERM_URL_STATUS_CHOICES[self.url_status][1]
    87         return TERM_URL_STATUS_CHOICES_TRANS[self.url_status][1]
    79     
    88     
    80     def validate(self, user):
    89     def validate(self, user):
    81         if not self.validated:
    90         if not self.validated:
    82             self.validation_date = datetime.datetime.utcnow()
    91             self.validation_date = datetime.datetime.utcnow()
    83             self.validated = True
    92             self.validated = True