Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
aa.gusti
/
opensipkd-base
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 36e817a9
authored
Jul 11, 2026
by
aa.gustiana@gmail.com
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Update version to 5.0.4 and adjust compatibility with deform 3.x
1 parent
6e331111
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
20 additions
and
17 deletions
CHANGES.txt
opensipkd/base/widgets/widget_os.py
opensipkd/detable/detable.py
opensipkd/detable/widget.py
pyproject.toml
CHANGES.txt
View file @
36e817a
5.0.5 2027-07-11
Penyesuaian ke deform 3.x
5.0.4 2026-06-01
5.0.4 2026-06-01
1. Penambahan parameter
1. Penambahan parameter
- ws_print_url
- ws_print_url
...
...
opensipkd/base/widgets/widget_os.py
View file @
36e817a
from
pyramid.csrf
import
new_csrf_token
,
get_csrf_token
from
iso8601.iso8601
import
ISO8601_REGEX
from
deform.widget
import
string_types
import
json
import
json
import
logging
import
logging
from
pyramid.csrf
import
new_csrf_token
,
get_csrf_token
from
iso8601.iso8601
import
ISO8601_REGEX
from
colander
import
SchemaNode
,
null
,
Mapping
,
Invalid
# , string_types
from
colander
import
SchemaNode
,
null
,
Mapping
,
Invalid
# , string_types
# from colander import compat # tidak ada di colander 2.0
# from colander import compat # tidak ada di colander 2.0
from
deform
import
widget
from
deform
import
widget
from
deform.compat
import
sequence_types
,
text_type
,
text_
#
from deform.compat import sequence_types, text_type, text_
from
deform.form
import
Button
from
deform.form
import
Button
from
deform.i18n
import
_
from
deform.i18n
import
_
from
deform.widget
import
(
from
deform.widget
import
(
...
@@ -257,12 +257,12 @@ class AutocompleteMsInputWidget(AutocompleteInputWidget):
...
@@ -257,12 +257,12 @@ class AutocompleteMsInputWidget(AutocompleteInputWidget):
readonly
=
kw
.
get
(
"readonly"
,
self
.
readonly
)
readonly
=
kw
.
get
(
"readonly"
,
self
.
readonly
)
options
=
{}
options
=
{}
if
isinstance
(
self
.
values
,
str
ing_types
):
if
isinstance
(
self
.
values
,
str
):
#string_types
options
[
"remote"
]
=
"
%
s?term=
%%
QUERY"
%
self
.
values
options
[
"remote"
]
=
"
%
s?term=
%%
QUERY"
%
self
.
values
else
:
else
:
# vals = []
# vals = []
# for v in self.values:
# for v in self.values:
# if not isinstance(v, str
ing_types):
# if not isinstance(v, str
): #string_types
# vals.append(v[1])
# vals.append(v[1])
# if not vals:
# if not vals:
# vals = self.values
# vals = self.values
...
@@ -394,7 +394,7 @@ class CaptchaWidget(Widget):
...
@@ -394,7 +394,7 @@ class CaptchaWidget(Widget):
def
deserialize
(
self
,
field
,
pstruct
):
def
deserialize
(
self
,
field
,
pstruct
):
if
pstruct
is
null
:
if
pstruct
is
null
:
return
null
return
null
elif
not
isinstance
(
pstruct
,
str
ing_types
):
elif
not
isinstance
(
pstruct
,
str
):
#string_types
raise
Invalid
(
field
.
schema
,
"Pstruct is not a string"
)
raise
Invalid
(
field
.
schema
,
"Pstruct is not a string"
)
if
self
.
strip
:
if
self
.
strip
:
pstruct
=
pstruct
.
strip
()
pstruct
=
pstruct
.
strip
()
...
@@ -460,7 +460,7 @@ class ImageWidget(Widget):
...
@@ -460,7 +460,7 @@ class ImageWidget(Widget):
def
deserialize
(
self
,
field
,
pstruct
):
def
deserialize
(
self
,
field
,
pstruct
):
if
pstruct
is
null
:
if
pstruct
is
null
:
return
null
return
null
elif
not
isinstance
(
pstruct
,
str
ing_types
):
elif
not
isinstance
(
pstruct
,
str
):
# string_types
raise
Invalid
(
field
.
schema
,
"Pstruct is not a string"
)
raise
Invalid
(
field
.
schema
,
"Pstruct is not a string"
)
if
self
.
strip
:
if
self
.
strip
:
pstruct
=
pstruct
.
strip
()
pstruct
=
pstruct
.
strip
()
...
@@ -540,7 +540,7 @@ class MapWidget(Widget):
...
@@ -540,7 +540,7 @@ class MapWidget(Widget):
def
deserialize
(
self
,
field
,
pstruct
):
def
deserialize
(
self
,
field
,
pstruct
):
if
pstruct
is
null
:
if
pstruct
is
null
:
return
null
return
null
elif
not
isinstance
(
pstruct
,
str
ing_types
):
elif
not
isinstance
(
pstruct
,
str
):
#string_types
raise
Invalid
(
field
.
schema
,
"Pstruct is not a string"
)
raise
Invalid
(
field
.
schema
,
"Pstruct is not a string"
)
if
self
.
strip
:
if
self
.
strip
:
pstruct
=
pstruct
.
strip
()
pstruct
=
pstruct
.
strip
()
...
@@ -622,7 +622,7 @@ class MapWidget(Widget):
...
@@ -622,7 +622,7 @@ class MapWidget(Widget):
# def deserialize(self, field, pstruct):
# def deserialize(self, field, pstruct):
# if pstruct is null:
# if pstruct is null:
# return null
# return null
# elif not isinstance(pstruct, str
ing_types):
# elif not isinstance(pstruct, str
): #string_types
# raise Invalid(field.schema, "Pstruct is not a string")
# raise Invalid(field.schema, "Pstruct is not a string")
# if self.strip:
# if self.strip:
# pstruct = pstruct.strip()
# pstruct = pstruct.strip()
...
@@ -1003,7 +1003,7 @@ class CSRFWidget(widget.HiddenWidget):
...
@@ -1003,7 +1003,7 @@ class CSRFWidget(widget.HiddenWidget):
cstruct
=
get_csrf_token
(
request
)
cstruct
=
get_csrf_token
(
request
)
if
pstruct
is
null
:
if
pstruct
is
null
:
return
null
return
null
elif
not
isinstance
(
pstruct
,
str
ing_types
):
elif
not
isinstance
(
pstruct
,
str
):
#string_types
raise
Invalid
(
field
.
schema
,
"Pstruct is not a string"
)
raise
Invalid
(
field
.
schema
,
"Pstruct is not a string"
)
if
not
pstruct
:
if
not
pstruct
:
return
null
return
null
...
...
opensipkd/detable/detable.py
View file @
36e817a
...
@@ -6,8 +6,8 @@ import re
...
@@ -6,8 +6,8 @@ import re
import
colander
import
colander
# import deform
# import deform
from
deform
import
compat
,
widget
as
deform_widget
,
field
#
from deform import compat, widget as deform_widget, field
from
deform
import
field
,
widget
as
deform_widget
from
.
import
widget
from
.
import
widget
log
=
logging
.
getLogger
(
__name__
)
log
=
logging
.
getLogger
(
__name__
)
...
@@ -219,7 +219,7 @@ class DeTable(field.Field):
...
@@ -219,7 +219,7 @@ class DeTable(field.Field):
_scripts
=
[]
_scripts
=
[]
# buttons = Params Buttons
# buttons = Params Buttons
for
button
in
buttons
:
for
button
in
buttons
:
if
isinstance
(
button
,
compat
.
string_types
):
if
isinstance
(
button
,
str
):
#compat.string_types
button
=
Button
(
button
)
button
=
Button
(
button
)
obj_buttons
.
append
(
button
)
obj_buttons
.
append
(
button
)
header_buttons
=
[]
header_buttons
=
[]
...
...
opensipkd/detable/widget.py
View file @
36e817a
...
@@ -16,10 +16,10 @@ from iso8601.iso8601 import ISO8601_REGEX
...
@@ -16,10 +16,10 @@ from iso8601.iso8601 import ISO8601_REGEX
from
translationstring
import
TranslationString
from
translationstring
import
TranslationString
from
deform.widget
import
MappingWidget
from
deform.widget
import
MappingWidget
from
deform.compat
import
text_
#
from deform.compat import text_
from
.i18n
import
_
from
.i18n
import
_
_BLANK
=
text_
(
""
)
#
_BLANK = text_("")
class
TableWidget
(
MappingWidget
):
class
TableWidget
(
MappingWidget
):
...
...
pyproject.toml
View file @
36e817a
...
@@ -15,7 +15,7 @@ show_error_codes = true
...
@@ -15,7 +15,7 @@ show_error_codes = true
[project]
[project]
name
=
'opensipkd_base'
name
=
'opensipkd_base'
version
=
'
5.0.
1
'
version
=
'
5.0.
4
'
dependencies
=
[
dependencies
=
[
'deform'
,
'deform'
,
'colander'
,
'colander'
,
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment