示例#1
0
文件: commons.py 项目: averrin/eliar
def get_adaptor_class(adaptor=None, obj=None, field_name=None):
    if not adaptor:
        try:
            field = obj._meta.get_field_by_name(field_name)[0]
        except FieldDoesNotExist:
            if has_transmeta:
                field = obj._meta.get_field_by_name(transmeta.get_real_fieldname(field_name))[0]
        if isinstance(field, models.CharField):
            adaptor = 'text'
            if getattr(field, 'choices', None):
                adaptor = 'choices'
        elif isinstance(field, models.TextField):
            adaptor = 'textarea'
        elif isinstance(field, models.BooleanField):
            adaptor = 'boolean'
        elif isinstance(field, models.DateTimeField):
            adaptor = 'datetime'
        elif isinstance(field, models.DateField):
            adaptor = 'date'
        elif isinstance(field, ForeignKey):
            adaptor = 'fk'
        elif isinstance(field, ManyToManyField):
            adaptor = 'm2mcomma'
    from inplaceeditform.fields import BaseAdaptorField
    path_adaptor = adaptor and ((getattr(settings, 'ADAPTOR_INPLACEEDIT', None) and
                                 settings.ADAPTOR_INPLACEEDIT.get(adaptor, None)) or
                                 (DEFAULT_ADAPTOR_INPLACEEDIT.get(adaptor, None)))
    if not path_adaptor:
        return BaseAdaptorField
    path_module, class_adaptor = ('.'.join(path_adaptor.split('.')[:-1]), path_adaptor.split('.')[-1])
    return getattr(import_module(path_module), class_adaptor)
示例#2
0
def get_adaptor_class(adaptor=None, obj=None, field_name=None):
    if not adaptor:
        try:
            field = obj._meta.get_field_by_name(field_name)[0]
        except FieldDoesNotExist:
            if has_transmeta:
                field = obj._meta.get_field_by_name(
                    transmeta.get_real_fieldname(field_name))[0]
        if isinstance(field, models.CharField):
            adaptor = 'text'
            if getattr(field, 'choices', None):
                adaptor = 'choices'
        elif isinstance(field, models.TextField):
            adaptor = 'textarea'
        elif isinstance(field, models.BooleanField):
            adaptor = 'boolean'
        elif isinstance(field, models.DateTimeField):
            adaptor = 'datetime'
        elif isinstance(field, models.DateField):
            adaptor = 'date'
        elif isinstance(field, ForeignKey):
            adaptor = 'fk'
        elif isinstance(field, ManyToManyField):
            adaptor = 'm2mcomma'
    from inplaceeditform.fields import BaseAdaptorField
    path_adaptor = adaptor and (
        (getattr(settings, 'ADAPTOR_INPLACEEDIT', None)
         and settings.ADAPTOR_INPLACEEDIT.get(adaptor, None)) or
        (DEFAULT_ADAPTOR_INPLACEEDIT.get(adaptor, None)))
    if not path_adaptor:
        return BaseAdaptorField
    path_module, class_adaptor = ('.'.join(path_adaptor.split('.')[:-1]),
                                  path_adaptor.split('.')[-1])
    return getattr(import_module(path_module), class_adaptor)
示例#3
0
def get_adaptor_class(adaptor=None, obj=None, field_name=None):
    if not adaptor:
        try:
            field = obj._meta.get_field_by_name(field_name)[0]
        except FieldDoesNotExist:
            if has_transmeta:
                field = obj._meta.get_field_by_name(transmeta.get_real_fieldname(field_name))[0]
        if isinstance(field, models.URLField):
            adaptor = 'url'
        elif isinstance(field, models.EmailField):
            adaptor = 'email'
        elif isinstance(field, models.CharField):
            adaptor = 'text'
        elif isinstance(field, models.TextField):
            adaptor = 'textarea'
        elif isinstance(field, models.NullBooleanField):
            adaptor = 'nullboolean'
        elif isinstance(field, models.BooleanField):
            adaptor = 'boolean'
        elif isinstance(field, models.DateTimeField):
            adaptor = 'datetime'
        elif isinstance(field, models.DateField):
            adaptor = 'date'
        elif isinstance(field, models.TimeField):
            adaptor = 'time'
        elif isinstance(field, models.IntegerField):
            adaptor = 'integer'
        elif isinstance(field, models.FloatField):
            adaptor = 'float'
        elif isinstance(field, models.DecimalField):
            adaptor = 'decimal'
        elif isinstance(field, ForeignKey):
            adaptor = 'fk'
        elif isinstance(field, ManyToManyField):
            adaptor = 'm2mcomma'
        elif isinstance(field, models.ImageField):
            adaptor = 'image'
        elif isinstance(field, models.FileField):
            adaptor = 'file'
        elif gismodels:
            if isinstance(field, gismodels.PointField):
                adaptor = 'point'

        if getattr(field, 'choices', None):
            adaptor = 'choices'
    from inplaceeditform.fields import BaseAdaptorField
    path_adaptor = adaptor and (inplace_settings.ADAPTOR_INPLACEEDIT.get(adaptor, None) or
                                DEFAULT_ADAPTOR_INPLACEEDIT.get(adaptor, None))
    if not path_adaptor and adaptor:
        return get_adaptor_class(obj=obj, field_name=field_name)
    elif not path_adaptor:
        return BaseAdaptorField
    path_module, class_adaptor = ('.'.join(path_adaptor.split('.')[:-1]), path_adaptor.split('.')[-1])
    return getattr(import_module(path_module), class_adaptor)
示例#4
0
def get_adaptor_class(adaptor=None, obj=None, field_name=None):
    if not adaptor:
        try:
            field = getattr(obj, field_name)
        except FieldDoesNotExist:
            if has_transmeta:
                field = obj._meta.get_field_by_name(
                    transmeta.get_real_fieldname(field_name))[0]
        if isinstance(field, models.URLField):
            adaptor = 'url'
        elif isinstance(field, models.EmailField):
            adaptor = 'email'
        elif isinstance(field, models.CharField):
            adaptor = 'text'
        elif isinstance(field, models.TextField):
            adaptor = 'textarea'
        elif isinstance(field, models.NullBooleanField):
            adaptor = 'nullboolean'
        elif isinstance(field, models.BooleanField):
            adaptor = 'boolean'
        elif isinstance(field, models.DateTimeField):
            adaptor = 'datetime'
        elif isinstance(field, models.DateField):
            adaptor = 'date'
        elif isinstance(field, models.TimeField):
            adaptor = 'time'
        elif isinstance(field, models.IntegerField):
            adaptor = 'integer'
        elif isinstance(field, models.FloatField):
            adaptor = 'float'
        elif isinstance(field, models.DecimalField):
            adaptor = 'decimal'
        elif isinstance(field, ForeignKey):
            adaptor = 'fk'
        elif isinstance(field, ManyToManyField):
            adaptor = 'm2mcomma'
        elif isinstance(field, models.ImageField):
            adaptor = 'image'
        elif isinstance(field, models.FileField):
            adaptor = 'file'

        if getattr(field, 'choices', None):
            adaptor = 'choices'
    from inplaceeditform.fields import BaseAdaptorField
    path_adaptor = adaptor and (inplace_settings.ADAPTOR_INPLACEEDIT.get(
        adaptor, None) or DEFAULT_ADAPTOR_INPLACEEDIT.get(adaptor, None))
    if not path_adaptor and adaptor:
        return get_adaptor_class(obj=obj, field_name=field_name)
    elif not path_adaptor:
        return BaseAdaptorField
    path_module, class_adaptor = ('.'.join(path_adaptor.split('.')[:-1]),
                                  path_adaptor.split('.')[-1])
    return getattr(import_module(path_module), class_adaptor)
示例#5
0
def get_adaptor_class(adaptor=None, obj=None, field_name=None):
    if not adaptor:
        try:
            field = obj._meta.get_field_by_name(field_name)[0]
        except FieldDoesNotExist:
            if has_transmeta:
                field = obj._meta.get_field_by_name(
                    transmeta.get_real_fieldname(field_name))[0]

        if isinstance(field, models.BooleanField):
            adaptor = 'boolean'
        elif isinstance(field, models.DateField):
            adaptor = 'date'
        elif isinstance(field, models.DateTimeField):
            adaptor = 'datetime'
        elif isinstance(field, ForeignKey):
            adaptor = 'fk'
        elif isinstance(field, ManyToManyField):
            adaptor = 'm2mcomma'
        elif isinstance(field, models.ImageField):
            adaptor = 'image'
        elif isinstance(field, models.FileField):
            adaptor = 'file'
        elif isinstance(field, (models.IntegerField, models.DecimalField)):
            adaptor = 'number'
            if getattr(field, 'choices', None):
                adaptor = 'choices'
        elif isinstance(field, models.CharField):
            adaptor = 'text'
            if getattr(field, 'choices', None):
                adaptor = 'choices'
        elif isinstance(field, models.TextField):
            adaptor = 'textarea'
        else:
            adaptor = 'default'

    path_adaptor = ((getattr(settings, 'ADAPTOR_INPLACEEDIT', None)
                     and settings.ADAPTOR_INPLACEEDIT.get(adaptor, None))
                    or (DEFAULT_ADAPTOR_INPLACEEDIT.get(adaptor, None)))

    if not path_adaptor and adaptor:
        return get_adaptor_class(obj=obj, field_name=field_name)

    parts = path_adaptor.split('.')
    path_module, class_adaptor = ('.'.join(parts[:-1]), parts[-1])

    return getattr(import_module(path_module), class_adaptor)
def get_adaptor_class(adaptor=None, obj=None, field_name=None):
    if not adaptor:
        try:
            field = obj._meta.get_field_by_name(field_name)[0]
        except FieldDoesNotExist:
            if has_transmeta:
                field = obj._meta.get_field_by_name(transmeta.get_real_fieldname(field_name))[0]

        if isinstance(field, models.BooleanField):
            adaptor = "boolean"
        elif isinstance(field, models.DateField):
            adaptor = "date"
        elif isinstance(field, models.DateTimeField):
            adaptor = "datetime"
        elif isinstance(field, ForeignKey):
            adaptor = "fk"
        elif isinstance(field, ManyToManyField):
            adaptor = "m2mcomma"
        elif isinstance(field, models.ImageField):
            adaptor = "image"
        elif isinstance(field, models.FileField):
            adaptor = "file"
        elif isinstance(field, (models.IntegerField, models.DecimalField)):
            adaptor = "number"
            if getattr(field, "choices", None):
                adaptor = "choices"
        elif isinstance(field, models.CharField):
            adaptor = "text"
            if getattr(field, "choices", None):
                adaptor = "choices"
        elif isinstance(field, models.TextField):
            adaptor = "textarea"
        else:
            adaptor = "default"

    path_adaptor = (
        getattr(settings, "ADAPTOR_INPLACEEDIT", None) and settings.ADAPTOR_INPLACEEDIT.get(adaptor, None)
    ) or (DEFAULT_ADAPTOR_INPLACEEDIT.get(adaptor, None))

    if not path_adaptor and adaptor:
        return get_adaptor_class(obj=obj, field_name=field_name)

    parts = path_adaptor.split(".")
    path_module, class_adaptor = (".".join(parts[:-1]), parts[-1])

    return getattr(import_module(path_module), class_adaptor)
示例#7
0
def get_adaptor_class(adaptor=None, obj=None, field_name=None):
    if not adaptor:
        try:
            field = obj._meta.get_field_by_name(field_name)[0]
        except FieldDoesNotExist:
            if has_transmeta:
                field = obj._meta.get_field_by_name(transmeta.get_real_fieldname(field_name))[0]
        if isinstance(field, models.CharField):
            adaptor = "text"
            if getattr(field, "choices", None):
                adaptor = "choices"
        elif isinstance(field, models.TextField):
            adaptor = "textarea"
        elif isinstance(field, models.BooleanField):
            adaptor = "boolean"
        elif isinstance(field, models.DateTimeField):
            adaptor = "datetime"
        elif isinstance(field, models.DateField):
            adaptor = "date"
        elif isinstance(field, ForeignKey):
            adaptor = "fk"
        elif isinstance(field, ManyToManyField):
            adaptor = "m2mcomma"
        elif isinstance(field, models.ImageField):
            adaptor = "image"
        elif isinstance(field, models.FileField):
            adaptor = "file"
    from inplaceeditform.fields import BaseAdaptorField

    path_adaptor = adaptor and (
        inplace_settings.ADAPTOR_INPLACEEDIT.get(adaptor, None) or DEFAULT_ADAPTOR_INPLACEEDIT.get(adaptor, None)
    )
    if not path_adaptor and adaptor:
        return get_adaptor_class(obj=obj, field_name=field_name)
    elif not path_adaptor:
        return BaseAdaptorField
    path_module, class_adaptor = (".".join(path_adaptor.split(".")[:-1]), path_adaptor.split(".")[-1])
    return getattr(import_module(path_module), class_adaptor)