Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
irul
/
opensipkd-base
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 3005a754
authored
May 06, 2024
by
aagusti
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
perbaikan to_dict
1 parent
747fe5d7
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
53 additions
and
22 deletions
activate
opensipkd/base/views/base_views.py
opensipkd/detable/templates/detable.pt
opensipkd/models/base.py
opensipkd/models/common.py
opensipkd/models/users.py
activate
0 → 120000
View file @
3005a75
venv/bin/activate
\ No newline at end of file
opensipkd/base/views/base_views.py
View file @
3005a75
...
...
@@ -15,7 +15,7 @@ from opensipkd.tools import dmy, get_settings, get_ext, \
date_from_str
,
get_random_string
from
opensipkd.tools.buttons
import
btn_save
,
btn_cancel
,
btn_close
,
btn_delete
,
\
btn_add
,
btn_csv
,
\
btn_pdf
btn_pdf
,
btn_unpost
,
btn_post
from
opensipkd.tools.captcha
import
get_captcha
from
opensipkd.tools.report
import
csv_response
,
file_response
from
.common
import
DataTables
...
...
@@ -211,6 +211,7 @@ class BaseView(object):
schema
.
request
=
self
.
req
if
row
:
schema
.
deserialize
(
row
)
return
Form
(
schema
,
buttons
=
buttons
,
autocomplete
=
self
.
autocomplete
)
def
session_failed
(
self
,
session_name
):
...
...
@@ -222,8 +223,8 @@ class BaseView(object):
if
self
.
list_schema
:
allow_edit
=
kwargs
.
get
(
"allow_edit"
,
True
)
allow_delete
=
kwargs
.
get
(
"allow_delete"
,
True
)
allow_post
=
kwargs
.
get
(
"allow_
delete
"
,
False
)
allow_unpost
=
kwargs
.
get
(
"allow_
delete
"
,
False
)
allow_post
=
kwargs
.
get
(
"allow_
post
"
,
False
)
allow_unpost
=
kwargs
.
get
(
"allow_
unpost
"
,
False
)
state_save
=
kwargs
.
get
(
"state_save"
,
False
)
schema
=
self
.
list_schema
()
schema
=
schema
.
bind
(
request
=
self
.
req
)
...
...
@@ -266,7 +267,8 @@ class BaseView(object):
if
not
row
:
return
self
.
id_not_found
()
bindings
=
self
.
get_bindings
(
row
)
form
=
self
.
get_form
(
self
.
edit_schema
,
buttons
=
(
btn_close
,),
buttons
=
kwargs
.
get
(
"buttons"
,
(
btn_close
,))
form
=
self
.
get_form
(
self
.
edit_schema
,
buttons
=
buttons
,
bindings
=
bindings
)
if
request
.
POST
:
result
=
self
.
next_view
(
form
,
row
=
row
)
...
...
@@ -298,6 +300,22 @@ class BaseView(object):
**
kwargs
)
def
set_post
(
self
,
**
kwargs
):
pass
def
set_unpost
(
self
,
**
kwargs
):
pass
def
view_post
(
self
,
post_field
=
"status"
,
**
kwargs
):
request
=
self
.
req
row
=
self
.
query_id
()
.
first
()
if
not
row
:
return
self
.
id_not_found
()
if
getattr
(
row
,
post_field
):
buttons
=
(
btn_unpost
,
btn_close
)
else
:
buttons
=
(
btn_post
,
btn_close
)
return
self
.
view_view
(
buttons
=
buttons
)
def
view_upload
(
self
,
exts
=
(
'.png'
,
'.ico'
)):
bindings
=
self
.
get_bindings
()
form
=
self
.
get_form
(
self
.
upload_schema
,
bindings
=
bindings
)
...
...
opensipkd/detable/templates/detable.pt
View file @
3005a75
...
...
@@ -68,24 +68,31 @@
if (value === true) {
return '<i class="fas fa-check-square" aria-hidden="true">';
}
if (value === false) {
return 'Archived';
}
return value;
}
function render_checklist(value) {
return '<input type="checkbox" checked="'
+{value}+
'"></input>';
return '<input type="checkbox" checked="'
+ {value} +
'"></input>';
}
for (let co in ${tableid}Columns) {
if (${tableid}Columns[co].checkbox === true) {
${tableid}Columns[co].className = "text-center";
${tableid}Columns[co].width = "30pt";
${tableid}Columns[co].render = function (val) {
if (["", false, 0].indexOf(val) === -1) {
${tableid}Columns[co].render = function (value) {
if (typeof value === "string" && value.length>0) {
return render_checkbox(value)
}
if (["", false, 0].indexOf(value) === -1) {
return render_checkbox(true);
} else return render_checkbox(false);
}
return render_checkbox(false);
}
else if (${tableid}Columns[co].hasOwnProperty("url")) {
}
else if (${tableid}Columns[co].hasOwnProperty("url")) {
let url = ${tableid}Columns[co].url;
${tableid}Columns[co].render = function (data) {
let result = "No Data"
...
...
@@ -94,8 +101,7 @@
}
return result;
}
}
else if (${tableid}Columns[co].data === "id" && ${tableid}Columns[co].action === true) {
} else if (${tableid}Columns[co].data === "id" && ${tableid}Columns[co].action === true) {
${tableid}Columns[co].render = function (id) {
let result = ""
if (${allow_view}) {
...
...
@@ -157,8 +163,7 @@
}
if (!${server_side}) {
${tableid}Params.data = ${data};
}
else {
} else {
${tableid}Params.ajax = o${tableid}Url;
}
o${tableid} = $('#${tableid}').DataTable(${tableid}Params);
...
...
opensipkd/models/base.py
View file @
3005a75
from
datetime
import
datetime
from
opensipkd.tools
import
as_timezone
from
sqlalchemy.ext.hybrid
import
hybrid_property
import
ziggurat_foundations.models
from
sqlalchemy.orm
import
(
scoped_session
,
sessionmaker
,
Session
)
from
zope.sqlalchemy
import
register
from
sqlalchemy
import
Column
,
String
,
SmallInteger
,
Integer
,
DateTime
,
func
from
sqlalchemy
import
inspect
as
sa_inspect
from
sqlalchemy.ext.hybrid
import
hybrid_property
from
sqlalchemy.orm
import
(
scoped_session
,
sessionmaker
,
Session
)
from
zope.sqlalchemy
import
register
from
opensipkd.tools
import
as_timezone
class
MySession
(
Session
):
def
execute
(
self
,
clause
,
params
=
None
,
mapper
=
None
,
**
kw
):
# Your magic with clause here
print
(
"Session:"
,
clause
,
params
,
mapper
,
kw
)
return
Session
.
execute
(
self
,
clause
,
params
)
#
, mapper
#
print("Session:", clause, params, mapper, kw)
return
Session
.
execute
(
self
,
clause
,
params
)
#
, mapper
session_factory
=
sessionmaker
(
class_
=
MySession
)
...
...
@@ -60,9 +61,13 @@ class CommonModel(object):
values
[
column
.
name
]
=
value
return
values
def
from_dict
(
self
,
values
):
def
from_dict
(
self
,
values
,
date_format
=
"
%
d-
%
m-
%
Y"
):
for
column
in
self
.
__table__
.
columns
:
if
column
.
name
in
values
:
if
type
(
column
.
type
)
==
DateTime
and
date_format
:
if
values
[
column
.
name
]:
setattr
(
self
,
column
.
name
,
datetime
.
strptime
(
values
[
column
.
name
],
date_format
))
else
:
setattr
(
self
,
column
.
name
,
values
[
column
.
name
])
def
as_timezone
(
self
,
fieldname
):
...
...
opensipkd/models/common.py
View file @
3005a75
...
...
@@ -51,5 +51,6 @@ class ResCompany(Base, NamaModel):
parent_id
=
Column
(
Integer
,
ForeignKey
(
"company.id"
))
children
=
relationship
(
"ResCompany"
)
parent
=
relationship
(
"ResCompany"
,
remote_side
=
[
id
],
primaryjoin
=
"ResCompany.parent_id==ResCompany.id"
"ResCompany"
,
remote_side
=
[
id
],
primaryjoin
=
"ResCompany.parent_id==ResCompany.id"
,
overlaps
=
"children"
)
opensipkd/models/users.py
View file @
3005a75
...
...
@@ -166,7 +166,8 @@ class User(UserMixin, BaseModel, DefaultModel, Base):
class
ExternalIdentity
(
ExternalIdentityMixin
,
CommonModel
,
Base
):
user
=
relationship
(
User
,
backref
=
backref
(
"external"
))
user
=
relationship
(
User
,
backref
=
backref
(
"external"
),
overlaps
=
"external_identities,owner"
)
@classmethod
def
query
(
cls
):
...
...
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