Source code for jumbo.db.fields
"""
Jumbo fields
=============
Per semplificare la creazione di modelli dove il pattern viene ripetuto
spesso, Jumbo fornisce i seguenti modelli astratti:
.. autoclass:: StatusField
.. autoclass:: HTMLField
"""
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.contrib.admin import widgets as admin_widgets
from south.modelsinspector import add_introspection_rules
from tinymce import models as tinymce_models
STATUS_CODES = (
(0, _('Inactive')),
(1, _('Active')),
)
[docs]class StatusField(models.IntegerField):
"""
Field con choices 0/1 (Active/Inactive)
"""
def __init__(
self, choices=STATUS_CODES, max_length=3, default=1, verbose_name=_('Status'), help_text=None
):
super(StatusField, self).__init__(
choices=choices,
max_length=max_length,
default=default,
verbose_name=verbose_name,
help_text=help_text
)
def get_db_prep_value(self, value):
if value is None or value == '':
return 1
return int(value)
[docs]class HTMLField(tinymce_models.HTMLField):
# Lasciamo questa classe solo per evitare di passarci tutti i modelli
# e cambiare l'import dell html field
pass
# Add introspection rules for migrate
rules = [
(
(StatusField, ),
[],
{
"max_length": ["max_length", {"default": 3}],
"default": ["default", {"default": 1}],
},
),
(
(HTMLField, ),
[],
{},
),
]
add_introspection_rules(rules, ["^jumbo\.db\.fields",])