Skip to content

Commit

Permalink
Add ControlDecimal and fix the ModelForm
Browse files Browse the repository at this point in the history
  • Loading branch information
UmSenhorQualquer committed Jun 5, 2019
1 parent 367230e commit 6acdd4b
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 93 deletions.
11 changes: 11 additions & 0 deletions docs/source/api-reference/python/controls.rst
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,17 @@ ControlDateTime

----------------------------

ControlDecimal
----------------------------

.. autoclass:: pyforms_web.controls.control_decimal.ControlDecimal
:members:
:undoc-members:
:show-inheritance:
:exclude-members: init_form, serialize, deserialize

----------------------------

ControlDir
----------------------------

Expand Down
86 changes: 0 additions & 86 deletions docs/source/deploy/deploy_to_apache2.rst

This file was deleted.

1 change: 1 addition & 0 deletions pyforms_web/allcontrols.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from .controls.control_date import ControlDate
from .controls.control_datetime import ControlDateTime
from .controls.control_dir import ControlDir
from .controls.control_decimal import ControlDecimal
from .controls.control_email import ControlEmail
from .controls.control_emptywidget import ControlEmptyWidget
from .controls.control_feed import ControlFeed
Expand Down
23 changes: 23 additions & 0 deletions pyforms_web/controls/control_decimal.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from pyforms_web.controls.control_base import ControlBase
import simplejson, decimal

class ControlDecimal(ControlBase):

def init_form(self):
return """new ControlFloat('{0}', {1})""".format(
self._name,
simplejson.dumps(self.serialize())
)


def deserialize(self, properties):
"""
Serialize the control data.
:param dict properties: Serialized data to load.
"""
super().deserialize(properties)

str_val = properties.get('value', None)

self.value = decimal.Decimal(str_val) if str_val else None
1 change: 0 additions & 1 deletion pyforms_web/controls/control_float.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from pyforms_web.controls.control_base import ControlBase
import simplejson
from decimal import Decimal

class ControlFloat(ControlBase):

Expand Down
9 changes: 3 additions & 6 deletions pyforms_web/widgets/django/modelform.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,22 @@
from pyforms_web.controls.control_text import ControlText
from pyforms_web.controls.control_integer import ControlInteger
from pyforms_web.controls.control_float import ControlFloat
from pyforms_web.controls.control_decimal import ControlDecimal
from pyforms_web.controls.control_combo import ControlCombo
from pyforms_web.controls.control_autocomplete import ControlAutoComplete
from pyforms_web.controls.control_date import ControlDate
from pyforms_web.controls.control_datetime import ControlDateTime
from pyforms_web.controls.control_button import ControlButton
from pyforms_web.controls.control_querylist import ControlQueryList
from pyforms_web.controls.control_emptywidget import ControlEmptyWidget
from pyforms_web.controls.control_fileupload import ControlFileUpload
from pyforms_web.controls.control_checkbox import ControlCheckBox
from pyforms_web.controls.control_multipleselectionquery import ControlMultipleSelectionQuery

import collections
from pyforms_web.web.middleware import PyFormsMiddleware
from django.core.exceptions import ValidationError, FieldDoesNotExist, NON_FIELD_ERRORS
from .utils import get_fieldsets_strings
import traceback
from django.conf import settings
from django.db import models
import os
from django.db.models import Q
from confapp import conf

from pyforms_web.utils import get_lookup_verbose_name
Expand Down Expand Up @@ -703,6 +699,7 @@ def update_object_fields(self, obj):
pyforms_field = getattr(self, field.name)
value = pyforms_field.value


# if AutoField
if isinstance(field, models.AutoField):
continue
Expand Down Expand Up @@ -1038,7 +1035,7 @@ def create_model_formfields(self):
elif isinstance(field, models.BooleanField): pyforms_field = ControlCheckBox( label, default=field.default )
elif isinstance(field, models.DateTimeField): pyforms_field = ControlDateTime( label, default=field.default )
elif isinstance(field, models.DateField): pyforms_field = ControlDate( label, default=field.default )
elif isinstance(field, models.DecimalField): pyforms_field = ControlFloat( label, default=field.default )
elif isinstance(field, models.DecimalField): pyforms_field = ControlDecimal( label, default=field.default )
elif isinstance(field, models.FileField): pyforms_field = ControlFileUpload( label, default=field.default )
elif isinstance(field, models.FloatField): pyforms_field = ControlFloat( label, default=field.default )
elif isinstance(field, models.ImageField): pyforms_field = ControlFileUpload( label, default=field.default )
Expand Down

0 comments on commit 6acdd4b

Please sign in to comment.