Exemplo n.º 1
0
import suit.widgets
from django import forms
from django.contrib.admin.options import FORMFIELD_FOR_DBFIELD_DEFAULTS
from django.db import models

FORMFIELD_FOR_DBFIELD_DEFAULTS.update({
    models.DateTimeField: {
        'form_class': forms.SplitDateTimeField,
        'widget': suit.widgets.SuitSplitDateTimeWidget
    },
    models.DateField: {'widget': suit.widgets.SuitDateWidget},
    models.TimeField: {'widget': suit.widgets.SuitTimeWidget},
})
Exemplo n.º 2
0
from ella.newman.models import DenormalizedCategoryUserRole, AdminUserDraft, AdminHelpItem
from ella.newman.decorators import require_AJAX
from ella.newman.permission import is_category_model, model_category_fk, model_category_fk_value, applicable_categories
from ella.newman.permission import has_category_permission, get_permission, permission_filtered_model_qs, is_category_fk
from ella.newman.forms import DraftForm
from ella.newman.xoptions import XModelAdmin
from ella.newman.licenses.models import License
from ella.newman.config import STATUS_OK, STATUS_FORM_ERROR, STATUS_VAR_MISSING, STATUS_OBJECT_NOT_FOUND, AUTOSAVE_MAX_AMOUNT

DEFAULT_LIST_PER_PAGE = getattr(settings, 'NEWMAN_LIST_PER_PAGE', 25)

log = logging.getLogger('ella.newman')

# update standard FORMFIELD_FOR_DBFIELD_DEFAULTS
FORMFIELD_FOR_DBFIELD_DEFAULTS.update({
    models.DateTimeField: {'widget': widgets.DateTimeWidget},
    models.DateField:     {'widget': widgets.DateWidget},
})

def formfield_for_dbfield_factory(cls, db_field, **kwargs):
    formfield_overrides = dict(FORMFIELD_FOR_DBFIELD_DEFAULTS, **cls.formfield_overrides)
    custom_param_names = ('request', 'user', 'model', 'super_field', 'instance')
    custom_params = {}
    # move custom kwargs from kwargs to custom_params
    for key in kwargs:
        if key not in custom_param_names:
            continue
        custom_params[key] = kwargs[key]
        if key == 'request':
            custom_params['user'] = custom_params[key].user
    for key in custom_param_names:
        kwargs.pop(key, None)
Exemplo n.º 3
0
from django.views.decorators.csrf import csrf_protect

from real_estate_app import widgets
from real_estate_app.admin.actions import delete_selected_popup, make_enabled, make_disabled
from real_estate_app.conf.settings import REAL_ESTATE_APP_AJAX_SEARCH, MEDIA_PREFIX as MEDIA_PREFIX_REAL_ESTATE
from real_estate_app.utils import AutoCompleteObject

from real_estate_app.apps.propertys.models import Property
#TODO: make a wrapp function for delete elements with Property references.

csrf_protect_m = method_decorator(csrf_protect)

FORMFIELD_FOR_DBFIELD_DEFAULTS.update({
    models.DateTimeField: {
        'form_class': forms.SplitDateTimeField,
        'widget': widgets.CustomAdminSplitDateTime
    },
    models.DateField: {'widget':widgets.CustomAdminDateWidget},
})


class FaceBoxModelAdmin(ModelAdmin):

    def _media(self):

        from django.conf import settings
        from real_estate_app.conf.settings import MEDIA_REAL_ESTATE
        js = ['js/core.js', 'js/admin/RelatedObjectLookups.js',
              'js/jquery.min.js', 'js/jquery.init.js']
        jscustom = []
        if self.actions is not None:
Exemplo n.º 4
0

class AdvancedImageField(AdvancedFileField, ImageField):
    attr_class = AdvancedImageFieldFile
    form_class = ClearableFormImageField

    def __init__(self,
                 verbose_name=None,
                 name=None,
                 show_image=True,
                 **kwargs):
        self.show_image = show_image
        super().__init__(verbose_name, name, **kwargs)

    def formfield(self, **kwargs):
        kwargs['form_class'] = self.form_class
        kwargs['clearable'] = self.clearable
        kwargs['show_image'] = self.show_image
        return super().formfield(**kwargs)


# Register fields to use custom widgets in the Admin
FORMFIELD_FOR_DBFIELD_DEFAULTS.update({
    AdvancedFileField: {
        'widget': ClearableFileInput,
    },
    AdvancedImageField: {
        'widget': ClearableImageFileInput,
    },
})
Exemplo n.º 5
0
        User.objects.create_superuser('admin', '*****@*****.**', 'admin')

# Unauth

# Fix datetime for slect django-suit
from django.db import models as django_models
from django import forms
from django.contrib.admin.options import FORMFIELD_FOR_DBFIELD_DEFAULTS
import suit.widgets

FORMFIELD_FOR_DBFIELD_DEFAULTS.update({
    django_models.DateTimeField: {
        'form_class': forms.SplitDateTimeField,
        'widget': suit.widgets.SuitSplitDateTimeWidget
    },
    django_models.DateField: {
        'widget': suit.widgets.SuitDateWidget
    },
    django_models.TimeField: {
        'widget': suit.widgets.SuitTimeWidget
    },
})
# End fix datetime for slect django-suit

# Register your models here.
from .models import Choice, Question


class ChoiceInline(admin.TabularInline):
    model = Choice
    extra = 3
Exemplo n.º 6
0
# Leaving commented lines for currently unsupported fields
FORMFIELD_FOR_DBFIELD_DEFAULTS.update({
    rest_fields.DateTimeField: {
        # 'form_class': forms.SplitDateTimeField,
        'widget': widgets.AdminSplitDateTime
    },
    rest_fields.DateField: {
        'widget': widgets.AdminDateWidget
    },
    # rest_fields.TimeField: {'widget': widgets.AdminTimeWidget},
    rest_fields.TextField: {
        'widget': widgets.AdminTextareaWidget
    },
    rest_fields.URLField: {
        'widget': widgets.AdminURLFieldWidget
    },
    rest_fields.IntegerField: {
        'widget': widgets.AdminIntegerFieldWidget
    },
    # rest_fields.BigIntegerField: {'widget': widgets.AdminBigIntegerFieldWidget},
    rest_fields.CharField: {
        'widget': widgets.AdminTextInputWidget
    },
    rest_fields.JSONField: {
        'widget': widgets.AdminTextareaWidget
    },
    # rest_fields.ImageField: {'widget': widgets.AdminFileWidget},
    # rest_fields.FileField: {'widget': widgets.AdminFileWidget},
    # rest_fields.EmailField: {'widget': widgets.AdminEmailInputWidget},
})
Exemplo n.º 7
0
            return value
        return self.markdown_value_class(value)

    def pre_save(self, instance, add):
        value = getattr(instance, self.name, None)
        if self.markdown_cache_field and value:
            setattr(instance, self.markdown_cache_field, value.markdown())
        return super().pre_save(instance, add)

    def formfield(self, **kwargs):
        return super().formfield(**{
            'form_class': self.markdown_form_class,
            'value_class': self.markdown_value_class,
            **kwargs,
        })


class MarkdownCharField(BaseMarkdownModelField, models.CharField):
    pass


class MarkdownTextField(BaseMarkdownModelField, models.TextField):
    pass


# Register fields to use custom widgets in the Admin
FORMFIELD_FOR_DBFIELD_DEFAULTS.update({
    MarkdownCharField: {'widget': MarkdownTextInput,},
    MarkdownTextField: {'widget': MarkdownTextarea,},
})
Exemplo n.º 8
0
from django.conf import settings
from django.contrib.admin.options import FORMFIELD_FOR_DBFIELD_DEFAULTS
from django.db import models as django_models
from django.core.exceptions import ValidationError

import suit.widgets

from teams.models import *
from match.models import *
from research.models import *

DEBUG_COMPUTE_RANKING = False

FORMFIELD_FOR_DBFIELD_DEFAULTS.update({
    django_models.TimeField: {
        'widget': suit.widgets.SuitTimeWidget
    },
})

PLANNING_SLOT_MINUTES = settings.PJC['planning_slot_minutes']
PLANNING_SLOT_SECONDS = PLANNING_SLOT_MINUTES * 60
SCHEDULE_MIN = arrow.get(settings.PJC['start_time'], 'HH:mm').time()
SCHEDULE_MAX = arrow.get(settings.PJC['end_time'],
                         'HH:mm').replace(seconds=-2 *
                                          PLANNING_SLOT_SECONDS).time()

time_validators = [
    validators.MinValueValidator(
        SCHEDULE_MIN,
        message=SCHEDULE_MIN.strftime(
            "L'heure de passage doit être après %H:%M")),
Exemplo n.º 9
0
from real_estate_app import widgets
from real_estate_app.admin.actions import delete_selected_popup, make_enabled, make_disabled
from real_estate_app.conf.settings import REAL_ESTATE_APP_AJAX_SEARCH, MEDIA_PREFIX as MEDIA_PREFIX_REAL_ESTATE
from real_estate_app.utils import AutoCompleteObject

from real_estate_app.apps.propertys.models import Property
#TODO: make a wrapp function for delete elements with Property references.

csrf_protect_m = method_decorator(csrf_protect)

FORMFIELD_FOR_DBFIELD_DEFAULTS.update({
    models.DateTimeField: {
        'form_class': forms.SplitDateTimeField,
        'widget': widgets.CustomAdminSplitDateTime
    },
    models.DateField: {
        'widget': widgets.CustomAdminDateWidget
    },
})


class FaceBoxModelAdmin(ModelAdmin):
    def _media(self):

        from django.conf import settings
        from real_estate_app.conf.settings import MEDIA_REAL_ESTATE
        js = [
            'js/core.js', 'js/admin/RelatedObjectLookups.js',
            'js/jquery.min.js', 'js/jquery.init.js'
        ]
Exemplo n.º 10
0
        # if no other object of this type references the file
        # and it's not the default value for future objects,
        # delete it from the backend
        if not count and file.name != self.default and self.erasable:
            file.delete(save=save)

        # try to close the file, so it doesn't tie up resources.
        file.closed or file.close()


class AdvancedImageField(AdvancedFileField, ImageField):
    attr_class = AdvancedImageFieldFile
    form_class = ClearableFormImageField

    def __init__(self, verbose_name=None, name=None, show_image=True, **kwargs):
        self.show_image = show_image
        super().__init__(verbose_name, name, **kwargs)

    def formfield(self, **kwargs):
        kwargs['form_class'] = self.form_class
        kwargs['clearable'] = self.clearable
        kwargs['show_image'] = self.show_image
        return super().formfield(**kwargs)


# Register fields to use custom widgets in the Admin
FORMFIELD_FOR_DBFIELD_DEFAULTS.update({
    AdvancedFileField: {'widget': ClearableFileInput,},
    AdvancedImageField: {'widget': ClearableImageFileInput,},
})
Exemplo n.º 11
0
        if self.markdown_cache_field and value:
            setattr(instance, self.markdown_cache_field, value.markdown())
        return super().pre_save(instance, add)

    def formfield(self, **kwargs):
        return super().formfield(
            **{
                'form_class': self.markdown_form_class,
                'value_class': self.markdown_value_class,
                **kwargs,
            })


class MarkdownCharField(BaseMarkdownModelField, models.CharField):
    pass


class MarkdownTextField(BaseMarkdownModelField, models.TextField):
    pass


# Register fields to use custom widgets in the Admin
FORMFIELD_FOR_DBFIELD_DEFAULTS.update({
    MarkdownCharField: {
        'widget': MarkdownTextInput,
    },
    MarkdownTextField: {
        'widget': MarkdownTextarea,
    },
})