コード例 #1
0
class TestModelFields(Model):
    big_int = BigIntegerField()
    yesno = BooleanField()
    title = CharField(max_length=150)
    csv_data = CommaSeparatedIntegerField(max_length=255)
    when = DateField()
    when_accurate = DateTimeField()
    amount = DecimalField(max_digits=8, decimal_places=4)
    email = EmailField()
    upload = FileField(upload_to='test')
    path = FilePathField(path=d.APP_DIR, recursive=False, match=".json$")
    inaccurate = FloatField()
    img = ImageField(upload_to='test')
    ip = IPAddressField()
    better_ip = GenericIPAddressField(protocol='both')
    yesnomaybe = NullBooleanField(default=None)
    posint = PositiveIntegerField()
    small_posint = PositiveSmallIntegerField()
    slug = SlugField()
    small_int = SmallIntegerField()
    content = TextField()
    when_time = TimeField()
    web_address = URLField()
    user = ForeignKey('auth.User')
    groups = ManyToManyField('auth.Group')
    one_to_one = OneToOneField('auth.Permission')

    class Meta:
        verbose_name = 'test model fields'
        verbose_name_plural = 'test model fields'
コード例 #2
0
ファイル: common_models.py プロジェクト: zhyrohaad/eve-code
class BaseMapItem(Model, StrMixin):
    stats = OneToOneField('CelestialStatistics',
                          to_field='celestial_id',
                          db_column='itemID',
                          related_name='map_item',
                          null=True)
    name = CharField(max_length=100, db_column='itemName', blank=True)
    map_item_id = IntegerField(primary_key=True, db_column='itemID')
    group = ForeignKey('ItemGroup',
                       null=True,
                       db_column='groupID',
                       blank=True,
                       related_name='+')
    base_type = ForeignKey('Item',
                           null=True,
                           db_column='typeID',
                           blank=True,
                           related_name='+')
    x = FloatField(blank=True)
    y = FloatField(blank=True)
    z = FloatField(blank=True)
    radius = FloatField(blank=True)
    security = FloatField(blank=True)
    celestial_index = FloatField(null=True,
                                 db_column='celestialIndex',
                                 blank=True)
    orbit_index = FloatField(null=True, db_column='orbitIndex', blank=True)

    class Meta:
        db_table = 'mapDenormalize'
        app_label = 'eve_sde'
コード例 #3
0
ファイル: controllerinfo.py プロジェクト: th3architect/maas
class ControllerInfo(CleanSave, TimestampedModel):
    """A `ControllerInfo` represents metadata about nodes that are Controllers.

    :ivar node: `Node` this `ControllerInfo` represents metadata for.
    :ivar version: The last known version of the controller.
    :ivar interfaces: Interfaces JSON last sent by the controller.
    :ivar interface_udpate_hints: Topology hints last sent by the controller
        during a call to update_interfaces().
    """
    class Meta(DefaultMeta):
        verbose_name = "ControllerInfo"

    objects = ControllerInfoManager()

    node = OneToOneField(Node,
                         null=False,
                         blank=False,
                         on_delete=CASCADE,
                         primary_key=True)

    version = CharField(max_length=255, null=True, blank=True)

    interfaces = JSONObjectField(max_length=(2**15), blank=True, default="")

    interface_update_hints = JSONObjectField(max_length=(2**15),
                                             blank=True,
                                             default="")

    def __str__(self):
        return "%s (%s)" % (self.__class__.__name__, self.node.hostname)
コード例 #4
0
ファイル: models.py プロジェクト: siemunlam/web
class Medico(Model):
	DISPONIBLE = 1
	NO_DISPONIBLE = 2
	EN_AUXILIO = 3
	ESTADO_CHOICES = (
		(DISPONIBLE, 'Disponible'),
		(NO_DISPONIBLE, 'No disponible'),
		(EN_AUXILIO, 'En auxilio')
	)

	dni = PositiveIntegerField(primary_key=True, verbose_name='DNI', validators=[MaxValueValidator(99999999), MinValueValidator(1000000)])
	matricula = PositiveIntegerField(unique=True, verbose_name=u'matrícula')
	telefono = CharField(max_length=15, verbose_name=u'teléfono')
	usuario = OneToOneField(User, related_name='medico_usuario', on_delete=CASCADE)
	fcm_code = CharField(max_length=250, blank=True, verbose_name='FCM', help_text='Firebase Cloud Messaging Code')
	estado = PositiveSmallIntegerField(choices = ESTADO_CHOICES, default = NO_DISPONIBLE)
	generador = ForeignKey(User, related_name='medico_generador')
	latitud_gps = FloatField(blank=True, null=True, validators=[MaxValueValidator(180.0), MinValueValidator(-180.0)])
	longitud_gps = FloatField(blank=True, null=True, validators=[MaxValueValidator(180.0), MinValueValidator(-180.0)])
	timestamp_gps = DateTimeField(blank=True, null=True, help_text=u'Última actualización de ubicación GPS')

	def __str__(self):
		return self.usuario.get_full_name() + str(self.matricula)

	class Meta:
		ordering = ['dni']
		verbose_name = u'médico'
		verbose_name_plural = u'médicos'
コード例 #5
0
class RoadmapSettings(Model):
    """
    Model that contains the roadmap settings
    """
    roadmap = OneToOneField(Roadmap, primary_key=True)
    creator = ForeignKey(Profile, related_name="roadmap_creator") # TODO should this be a part of RoadmapSettings?
    owners = ManyToManyField(Profile, related_name="roadmap_owners")
    editors = ManyToManyField(Profile, related_name="roadmap_editors")
    listed_in_main = BooleanField('show this roadmap in the search results', default=False)
    sudo_listed_in_main = BooleanField('superuser only: allow this roadmap in the search results', default=True)
    published = BooleanField(default=False)
    url_tag = SlugField('URL tag', max_length=30, help_text='only letters, numbers, underscores, hyphens')

    class Meta:
        unique_together = ('creator', 'url_tag')

    def get_absolute_url(self):
        return '/roadmaps/%s/%s' % (self.creator.user.username, self.url_tag)

    def is_published(self):
        return self.published

    def is_listed_in_main(self):
        return self.is_published() and self.listed_in_main and self.sudo_listed_in_main

    def can_change_settings(self, user):
        # superusers and owners can change settings
        return user.is_superuser or (user.is_authenticated() and self.owners.filter(user=user).exists())

    def editable_by(self, user):
        # superusers, owners and editors can edit
        return user.is_superuser or (user.is_authenticated() and (self.owners.filter(user=user).exists() or self.editors.filter(user=user).exists()))
コード例 #6
0
class VirtualMachine(CleanSave, TimestampedModel):
    """A virtual machine managed by a VM host."""

    identifier = TextField()
    pinned_cores = ArrayField(IntegerField(), blank=True, default=list)
    unpinned_cores = IntegerField(default=0, blank=True)
    memory = IntegerField(default=0)
    hugepages_backed = BooleanField(default=False)
    machine = OneToOneField(
        Machine,
        SET_NULL,
        default=None,
        blank=True,
        null=True,
        editable=False,
        related_name="virtualmachine",
    )
    bmc = ForeignKey(BMC, editable=False, on_delete=CASCADE)

    class Meta:
        unique_together = [("bmc", "identifier")]

    def clean(self):
        super().clean()
        if self.pinned_cores and self.unpinned_cores:
            raise ValidationError(
                "VirtualMachine can't have both pinned and unpinned cores"
            )
コード例 #7
0
class UserRelationInfo(Model):
    # 用户亲属关系表
    user = OneToOneField(Profile,
                         primary_key=True,
                         db_column='user_id',
                         verbose_name='用户')
    relation_type = CharField(max_length=10,
                              default='父亲',
                              blank=True,
                              verbose_name='关系')
    relation_name = CharField(max_length=50,
                              default='李天一',
                              blank=True,
                              verbose_name='姓名')
    relation_phone = CharField(max_length=32,
                               default='13788740727',
                               verbose_name='手机号')
    relation_email = EmailField(blank=True,
                                default='*****@*****.**',
                                verbose_name='邮箱')
    relation_address = CharField(max_length=200,
                                 default='湖南',
                                 verbose_name='家庭住址')
    comments = CharField(max_length=500, blank=True, verbose_name='备注')

    class Meta:
        app_label = 'education'
        db_table = 'user_relation_info'
        verbose_name = '用户亲属关系'
        verbose_name_plural = '用户亲属关系'

    def __unicode__(self):
        return u'{0}-{1}-{2}'.format(self.user.username, self.relation_type,
                                     self.relation_name)
コード例 #8
0
ファイル: models.py プロジェクト: PaweuB/concent
class BlenderSubtaskDefinition(Model):
    """
    For each VerificationRequest there must be exactly one BlenderSubtaskDefinition in the database.
    """
    class OutputFormat(ChoiceEnum):
        JPG = 'jpg'
        PNG = 'png'
        EXR = 'exr'

    # Foreign key to VerificationRequest. Can't be NULL and must be unique.
    verification_request = OneToOneField(
        VerificationRequest,
        unique=True,
        related_name='blender_subtask_definition')

    # Type of the output image to be produced by Blender. This determines the file extensions.
    # Only formats supported by Blender should be allowed here.
    # This value is passed to Blender using the -F command-line option.
    output_format = CharField(max_length=32, choices=OutputFormat.choices())

    # Relative path to the .blend file inside the source package.
    scene_file = CharField(max_length=MESSAGE_PATH_LENGTH)

    # Source code of the Python script to be executed by Blender.
    blender_crop_script = TextField(blank=True, null=True)
コード例 #9
0
class CollectionImage(models.Model):
    image = OneToOneField(ImageObj)
    collection_post = models.ForeignKey(CollectionPost, related_name='images')
    order = models.PositiveSmallIntegerField(default=0)
    block = models.ForeignKey(CollectionImagesBlock,
                              related_name='images',
                              null=True)
コード例 #10
0
class Profile(Model):
    """ User representation """

    user = OneToOneField(User,
                         related_name='forum_profile',
                         verbose_name=_('User'),
                         on_delete=PROTECT)
    location = CharField(_('Location'), max_length=30, blank=True)
    post_count = IntegerField(_('Post count'), blank=True, default=0)

    objects = ProfileManager()

    class Meta:
        verbose_name = _('Profile')
        verbose_name_plural = _('Profiles')

    def last_post(self):
        """ return last post id for the current user """
        posts = Post.objects.filter(
            profile__id=self.profile_id).order_by('-created')
        if posts:
            return posts[0].created
        else:
            return None

    def __str__(self):
        return str(self.user)
コード例 #11
0
class Supplier(Role):
    """Supplier model."""

    party = OneToOneField("users.Party",
                          related_name="supplier",
                          on_delete=CASCADE,
                          primary_key=True)
コード例 #12
0
class Delivery(Model):
    """Clase que representa una Entrega"""

    status = BooleanField(default=False, help_text='estado')
    delivery_time = DateTimeField(auto_now_add=True, help_text='hora entrega')

    class Meta:
        verbose_name_plural = 'deliveries'

    # Relaciones
    courier = ForeignKey(
        Courier,
        related_name='deliveries',
        on_delete=CASCADE,
        help_text='mensajero'
    )
    order = OneToOneField(
        Order,
        related_name='delivery',
        on_delete=CASCADE,
        help_text='orden de pedido'
    )

    def __str__(self) -> str:
        """
        Función que representa al objeto
        cuando es recuperado
        """

        return self.status
コード例 #13
0
class Balance(models.Model):
    """
    余额
    """
    # 关联用户
    user = OneToOneField(User,
                         related_name='balance',
                         on_delete=models.CASCADE)

    # 余额
    value = IntegerField()

    # 主键
    balance_id = CharField(max_length=32, primary_key=True)

    # 创建时间
    create_time = DateTimeField(auto_now_add=True)

    # 更新时间
    update_time = DateTimeField(auto_now=True)

    def __str__(self):
        return self.user.nick_name

    pass
コード例 #14
0
class PropertyAddress(AbstractPropertyBaseModel):
    """ Property's Address Model"""

    PROPERTY_ADDRESS = "propertyAddress"
    ADDRESS = "address"
    STATE_NAME = "stateName"
    LATITUDE = "latitude"
    LONGITUDE = "longitude"

    class Meta:
        verbose_name_plural = "Property Addresses"

    property = OneToOneField(
        Property, related_name="propertyAddress", on_delete=CASCADE
    )
    address = CharField(default=None, max_length=255)
    stateName = CharField("State name", max_length=50, blank=True)
    latitude = FloatField(
        default=0.00,
        blank=True,
    )
    longitude = FloatField(
        default=0.00,
        blank=True,
    )
コード例 #15
0
class Customer(Model):
    user = OneToOneField(User, null=True, blank=True, on_delete=CASCADE)
    name = CharField(max_length=70, null=True)
    email = CharField(max_length=40, null=True)

    def __str__(self):
        return self.name

    @property
    def all_loyalty_points(self):
        orders = self.order_set.all()
        total_loyalty_points = sum([order.loyalty_points for order in orders])
        return total_loyalty_points

    @property
    def bought_products(self):
        all_orders = self.order_set.all()
        orders = all_orders.filter(complete=True)
        user_products = []
        for order in orders:
            items = order.orderitems
            for item in items:
                if item.name in user_products:
                    pass
                else:
                    user_products.append(item.name)
        return user_products
コード例 #16
0
ファイル: models.py プロジェクト: liobernard/7mmedia-api
class HomeInfo(SingletonModel):
    facebook_url = CharField(_('facebook_url'), max_length=255, blank=True)

    instagram_url = CharField(_('instagram_url'), max_length=255, blank=True)

    twitter_url = CharField(_('twitter_url'), max_length=255, blank=True)

    video_banner_url = TextField(_('video_banner_url'))

    logo_url = TextField(_('logo_url'))

    info_1 = CharField(_('info_1'), max_length=255, blank=True)

    info_2 = CharField(_('info_2'), max_length=255, blank=True)

    featured_video = OneToOneField(
        Video,
        default=get_latest_video_pk,
        on_delete=SET_DEFAULT,
    )

    class Meta:
        verbose_name = _('Home Page Info')

    def __str__(self):
        return 'Home Page Info'

    def get_info_name(self):
        return 'home'
コード例 #17
0
class OfficerImg(Model):
    """Officer headshots"""
    officer = OneToOneField(User, on_delete=CASCADE, related_name="img")
    img = ImageField(upload_to=path_and_rename, storage=OverwriteStorage(), verbose_name="Image")

    def __str__(self):
        return self.officer.name
コード例 #18
0
class AddressMatch(Model):
    """
    Contact address
    """

    survey = OneToOneField(
        "surveys19.Survey",
        related_name="address_match",
        on_delete=CASCADE,
        verbose_name=_("Survey"),
    )
    match = BooleanField(default=False, verbose_name=_("Address Match"))
    mismatch = BooleanField(default=False, verbose_name=_("Address MisMatch"))
    address = CharField(max_length=100,
                        null=True,
                        blank=True,
                        verbose_name=_("Address"))
    update_time = DateTimeField(
        auto_now=True,
        auto_now_add=False,
        null=True,
        blank=True,
        verbose_name=_("Updated"),
    )

    class Meta:
        verbose_name = _("AddressMatch")
        verbose_name_plural = _("AddressMatch")

    def __str__(self):
        return str(self.survey)
コード例 #19
0
class UserDetails(Model):
    user = OneToOneField(
        to=User,
        on_delete=CASCADE,  # 级联删除
        db_constraint=False,  # False表示逻辑外键
        db_column='id',
        primary_key=True,
        related_name='details',  # 默认类名全小写
    )
    motto = CharField(
        max_length=255,  verbose_name='个性签名',
        default=None, blank=True, null=True
    )
    favorite_color = FixedCharField(
        max_length=6,
        null=True,
        blank=True,
        default=None,
        charset='ascii',
        verbose_name='页面颜色'
    )
    gender = BooleanField(
        null=True,
        blank=True,
        default=None,
        verbose_name='性别',
        choices=((True, '女'), (False, '男'), (None, '未指定'))
    )

    class Meta:
        verbose_name = "用户资料"
        verbose_name_plural = "用户资料"
コード例 #20
0
class Enterprise(Model):
    """Clase que representa una Establecimiento"""

    name = CharField(max_length=45, help_text='nombre')
    historical_review = TextField(null=True,
                                  blank=True,
                                  help_text='reseña historica')
    location = CharField(max_length=45, help_text='ubicación')
    business_hours = CharField(max_length=45,
                               null=True,
                               blank=True,
                               help_text='horario de atención')
    status = BooleanField(default=True, help_text='estado')
    created = DateTimeField(auto_now_add=True, help_text='creado')

    # Relaciones
    image = OneToOneField('products.Image',
                          null=True,
                          blank=True,
                          on_delete=CASCADE,
                          help_text='imagen')
    managers = ManyToManyField('users.Manager',
                               through='Management',
                               related_name='enterprises',
                               help_text='administradores de establecimiento')

    def __str__(self) -> str:
        """
        Función que representa al objeto
        cuando es recuperado

        """
        return self.name
コード例 #21
0
class Client(Resource):
    """
    使用此评测端的用户端。
    """
    # 编号
    id = BigAutoField(primary_key=True)
    # 绑定的用户(用于进行身份识别)
    user = OneToOneField(User, related_name='client')

    # 名称
    name = CharField(max_length=128)
    # 简介
    introduction = TextField()
    # 是否允许使用本端全部题库及题目
    allow_all = BooleanField(default=False)

    # 可用的题库数量
    number_category = IntegerField(default=0)
    # 可用的题目数量
    number_problem = IntegerField(default=0)

    # 允许此用户端使用的题库
    categories = ManyToManyField(Category,
                                 related_name='clients',
                                 through='ClientCategory',
                                 through_fields=('client', 'category'))
コード例 #22
0
ファイル: models.py プロジェクト: nnikolic72/stajedemodanas
class Receiver(Model):
    """
    Model for people who collect deliveries
    """
    user = OneToOneField(user_model, on_delete=CASCADE)
    group = ForeignKey('ReceiverGroup',
                       on_delete=CASCADE,
                       blank=True,
                       null=True)
    company = ForeignKey('ReceiverCompany',
                         on_delete=CASCADE,
                         blank=True,
                         null=True)
    email = EmailField(_('Email Address'), blank=True, null=True)
    first_name = CharField(_('First Name'),
                           max_length=20,
                           blank=False,
                           null=False)
    last_name = CharField(_('Last Name'), max_length=20, blank=True, null=True)
    nickname = CharField(_('Nickname'), max_length=20, blank=True, null=True)
    phone_number = CharField(_('Phone Number'),
                             max_length=20,
                             blank=True,
                             null=True)

    class Meta:
        verbose_name = _('Receiver')
        verbose_name_plural = _('Receivers')

    def __repr__(self):
        return f'{self.first_name} {self.last_name}'

    def __str__(self):
        return f'{self.first_name} {self.last_name}'
コード例 #23
0
ファイル: models.py プロジェクト: hohenstaufen/django-silk
class Response(models.Model):
    id = CharField(max_length=36, default=uuid4, primary_key=True)
    request = OneToOneField(
        Request,
        related_name='response',
        db_index=True,
        on_delete=models.CASCADE,
    )
    status_code = IntegerField()
    raw_body = TextField(blank=True, default='')
    body = TextField(blank=True, default='')
    encoded_headers = TextField(blank=True, default='')

    @property
    def content_type(self):
        return self.headers.get('content-type', None)

    @property
    def headers(self):
        if self.encoded_headers:
            raw = json.loads(self.encoded_headers)
        else:
            raw = {}
        return CaseInsensitiveDictionary(raw)

    @property
    def raw_body_decoded(self):
        if self.raw_body:
            return base64.b64decode(self.raw_body)
        else:
            return ''
コード例 #24
0
class AdminUser(Model):
    user = OneToOneField(DjangoUser, on_delete=CASCADE, primary_key=True)
    vk_id = CharField(max_length=100)
    vk_token = CharField(max_length=400)

    def __str__(self):
        return str(self.vk_id)
コード例 #25
0
ファイル: models.py プロジェクト: ryabchi/tiberium
class UserProfile(Model):
    id = UUIDField(primary_key=True,
                   default=uuid.uuid4,
                   editable=False,
                   unique=True)
    user = OneToOneField(User, on_delete=CASCADE, related_name='profile')
    role = CharField(max_length=1,
                     choices=UserRole.CHOICES,
                     default=UserRole.USUAL)
    is_system = BooleanField(default=False)
    login = CharField(null=False, unique=True, max_length=255)
    name = CharField(null=False, max_length=255)
    updated_at = DateTimeField(auto_now=True, editable=False)
    created_at = DateTimeField(auto_now_add=True, editable=False)
    is_active = BooleanField(default=True)

    objects = Manager()
    active = ActiveObjectManager()
    system_user = SystemUserObjectManager()

    class Meta:
        verbose_name = "User Profile"
        ordering = ('pk', )

        indexes = [Index(fields=['is_system'])]

    def __str__(self):
        return self.login

    @staticmethod
    def get_profile_by_user(user):
        return UserProfile.objects.filter(user=user.id).first()
コード例 #26
0
class GroupInformation(Model):
    name = CharField(max_length=120, verbose_name=_('Name'))
    group = OneToOneField(Group, on_delete=CASCADE, related_name='info', verbose_name=_('Group'))
    email_dns = CharField(max_length=255, validators=[URLValidator], verbose_name=_('Email Dns'))
    parent = ForeignKey('self', null=True, blank=True, on_delete=SET_NULL, verbose_name=_('Parent'))

    objects = GroupInformationQuerySet.as_manager()

    class Meta:
        verbose_name = _('Group Information')
        verbose_name_plural = _('Group Informations')

    def __str__(self):
        return str(self.group.name)

    def __unicode__(self):
        return str(self.group.name)

    def parents(self):
        parents = [self]
        lock = False
        obj = self
        while not lock:
            parent = obj.parent
            if parent:
                parents.append(parent)
                obj = parent
            else:
                lock = True
        return parents

    @property
    def has_child(self):
        return GroupInformation.objects.filter(parent=self).count() > 0
コード例 #27
0
ファイル: models.py プロジェクト: MaximLomaka/psale
class Money(Model):
    '''additional field for user'''
    user = OneToOneField(User,
                         on_delete=CASCADE,
                         related_query_name='moneys',
                         related_name='money')
    coins = PositiveIntegerField(default=0)
コード例 #28
0
class UserInformation(Model):
    user = OneToOneField(settings.AUTH_USER_MODEL,
                         on_delete=CASCADE,
                         related_name='info',
                         verbose_name=_('User'))
    event_editor = BooleanField(default=False, verbose_name=_('Event Editor'))
    watchlist_viewer = BooleanField(default=False, verbose_name=_('Watchlist Viewer'))
    menu_viewer = BooleanField(default=False, verbose_name=_('Menu Item Viewer'))
    reporter = BooleanField(default=False, verbose_name=_('Reporter'))
    alert_viewer = BooleanField(default=True, verbose_name=_('Alert Viewer'))
    monitor_info_viewer = BooleanField(default=True, verbose_name=_('Monitor Info Viewer'))
    amislist_viewer = BooleanField(default=False, verbose_name=_('Amis List Viewer'))
    festivalreport_viewer = BooleanField(default=False, verbose_name=_('Festival Report Viewer'))
    festivalreport_refresh = BooleanField(default=False, verbose_name=_('Festival Report Refresh'))
    profile = ImageField(upload_to=upload_location, null=True, blank=True, verbose_name=_('Profile'))

    class Meta:
        verbose_name = _('User Information')
        verbose_name_plural = _('User Informations')

    def __str__(self):
        return str(self.full_name)

    def __unicode__(self):
        return str(self.full_name)

    @property
    def full_name(self):
        name = str(self.user.last_name) + str(self.user.first_name)
        if name == '':
            name = self.user.username
        return name
コード例 #29
0
class Subsidy(Model):
    """
    Table 3.3.1 -> 3.3.2
    """

    survey = OneToOneField(
        "surveys20.Survey",
        related_name="subsidy",
        on_delete=CASCADE,
        verbose_name=_("Survey"),
    )
    has_subsidy = BooleanField(default=False, verbose_name=_("Has Subsidy"))
    none_subsidy = BooleanField(default=False, verbose_name=_("None Subsidy"))
    update_time = DateTimeField(
        auto_now=True,
        auto_now_add=False,
        null=True,
        blank=True,
        verbose_name=_("Updated"),
    )

    class Meta:
        verbose_name = _("Subsidy")
        verbose_name_plural = _("Subsidy")

    def __str__(self):
        return str(self.survey)
コード例 #30
0
class FormularioFinalizacion(Model):
    asignacion = OneToOneField(Asignacion, on_delete=CASCADE, primary_key=True)
    asistencia_realizada = BooleanField()
    observaciones = TextField(blank=True)
    # Asistencia realizada FALSE
    OTRO = 0
    UBICACION_INCORRECTA = 1
    NO_RESPONDE = 2
    YA_FUE_TRANSLADADO = 3
    INASISTENCIA_CHOICES = ((UBICACION_INCORRECTA, u'Ubicación incorrecta'),
                            (NO_RESPONDE, 'No responde'),
                            (YA_FUE_TRANSLADADO,
                             'Ya fue trasladado'), (OTRO, 'Otro'))
    motivo_inasistencia = PositiveSmallIntegerField(
        blank=True,
        null=True,
        choices=INASISTENCIA_CHOICES,
        verbose_name='motivo de inasistencia',
        help_text=u'¿Por qué no pudo asistir al paciente?')
    # Asistencia realizada TRUE
    CORRECTO = 0
    SUBCATEGORIZADO = 1
    SOBRECATEGORIZADO = 2
    OPINION_CHOICES = ((SUBCATEGORIZADO, 'Sub-categorizado'),
                       (CORRECTO, 'Apropiadamente categorizado'),
                       (SOBRECATEGORIZADO, 'Sobre-categorizado'))
    categorizacion = PositiveSmallIntegerField(
        blank=True,
        null=True,
        choices=OPINION_CHOICES,
        verbose_name=u'categorización',
        help_text=
        u'¿Cuál es su opinión acerca de la categorización del auxilio?')
    pacientes = ManyToManyField('Paciente', blank=True)