Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
aa.gusti
/
coba
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 1bb07832
authored
Jul 04, 2023
by
aagusti
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
penambahan fungsi form
1 parent
99ad3621
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
200 additions
and
3 deletions
opensipkd/coba/models/__init__.py
opensipkd/coba/views/templates/base.pt
opensipkd/coba/views/templates/file_upload.pt
opensipkd/coba/views/templates/img_upload.pt
opensipkd/coba/views/templates/readonly/file_upload.pt
opensipkd/coba/views/templates/readonly/img_upload.pt
opensipkd/coba/views/view_form.py
opensipkd/coba/models/__init__.py
View file @
1bb0783
from
sqlalchemy.ext.declarative
import
declarative_base
from
zope.sqlalchemy
import
register
from
sqlalchemy
import
Column
,
ForeignKey
,
Integer
,
String
,
engine_from_config
,
func
from
sqlalchemy
import
Column
,
DateTime
,
Float
,
ForeignKey
,
Integer
,
Small
Integer
,
String
,
engine_from_config
,
func
from
opensipkd.base.models
import
Base
,
NamaModel
,
DefaultModel
,
TABLE_ARGS
from
opensipkd.base
import
get_settings
from
opensipkd.models
import
User
...
...
@@ -23,6 +23,20 @@ class Coba(Base, NamaModel):
file_1
=
Column
(
String
(
255
))
file_2
=
Column
(
String
(
255
))
file_3
=
Column
(
String
(
255
))
money
=
Column
(
Float
)
date_os
=
Column
(
DateTime
(
timezone
=
False
))
date_ori
=
Column
(
DateTime
(
timezone
=
False
))
date_part
=
Column
(
DateTime
(
timezone
=
False
))
time_ori
=
Column
(
DateTime
(
timezone
=
False
))
date_time
=
Column
(
DateTime
(
timezone
=
False
))
check_box
=
Column
(
SmallInteger
)
select_combo
=
Column
(
SmallInteger
)
select_combo2
=
Column
(
String
(
255
))
file_upload
=
Column
(
String
(
255
))
img_upload
=
Column
(
String
(
255
))
option_list
=
Column
(
Integer
)
option_box
=
Column
(
String
(
255
))
class
CobaItems
(
Base
,
DefaultModel
):
__tablename__
=
"coba_items"
...
...
opensipkd/coba/views/templates/base.pt
View file @
1bb0783
...
...
@@ -5,6 +5,7 @@
route_name request.matched_route.name;
coba_form ['coba-form','coba-form-add','coba-form-edit','coba-form-delete','coba-form-view'];
coba_upload ['coba-upload','coba-upload-add','coba-upload-edit','coba-upload-delete','coba-upload-view'];
coba_view ['coba-view','coba-view-add','coba-view-edit','coba-view-delete','coba-view-view'];
"
>
<js
metal:fill-slot=
"js_files"
>
...
...
@@ -36,6 +37,9 @@
<li
tal:attributes=
"class route_name in coba_upload and 'active'"
>
<a
href=
"${home}/coba/upload"
>
Upload
</a>
</li>
<li
tal:attributes=
"class route_name in coba_view and 'active'"
>
<a
href=
"${home}/coba/view"
>
Upload
&
View
</a>
</li>
<!-- </ul> -->
<!-- </li> -->
...
...
opensipkd/coba/views/templates/file_upload.pt
0 → 100644
View file @
1bb0783
<tal:block tal:define="oid oid|field.oid;
css_class css_class|field.widget.css_class;
style style|field.widget.style;">
${field.start_mapping()}
<a tal:define="preview_url cstruct.get('preview_url');
filename cstruct.get('filename')"
tal:condition="preview_url"
target="_blank"
href="${structure: preview_url}">Show</a>
<input type="file" name="upload" id="${oid}" tal:attributes="style style;
accept accept|field.widget.accept;
data-filename cstruct.get('filename');
attributes|field.widget.attributes|{};" />
<input tal:define="uid cstruct.get('uid')" tal:condition="uid" type="hidden" name="uid" value="${uid}" />
${field.end_mapping()}
<script type="text/javascript">
deform.addCallback('${oid}', function (oid) {
$('#' + oid).upload();
});
</script>
</tal:block>
\ No newline at end of file
opensipkd/coba/views/templates/img_upload.pt
0 → 100644
View file @
1bb0783
<tal:block tal:define="oid oid|field.oid;
css_class css_class|field.widget.css_class;
style style|field.widget.style;">
${field.start_mapping()}
<img tal:condition="preview_url"
tal:define="preview_url cstruct.get('preview_url');
filename cstruct.get('filename')"
src="${structure: preview_url}"></img>
<input type="file" name="upload" id="${oid}" tal:attributes="style style;
accept accept|field.widget.accept;
data-filename cstruct.get('filename');
attributes|field.widget.attributes|{};" />
<input tal:define="uid cstruct.get('uid')" tal:condition="uid" type="hidden" name="uid" value="${uid}" />
${field.end_mapping()}
<script type="text/javascript">
deform.addCallback('${oid}', function (oid) {
$('#' + oid).upload();
});
</script>
</tal:block>
\ No newline at end of file
opensipkd/coba/views/templates/readonly/file_upload.pt
0 → 100644
View file @
1bb0783
<tal:block tal:define="oid oid|field.oid;
css_class css_class|field.widget.css_class;
style style|field.widget.style;">
${field.start_mapping()}
<a tal:define="preview_url cstruct.get('preview_url');
filename cstruct.get('filename')" tal:condition="preview_url"
href="${structure: preview_url}">Show</a>
${field.end_mapping()}
</tal:block>
\ No newline at end of file
opensipkd/coba/views/templates/readonly/img_upload.pt
0 → 100644
View file @
1bb0783
<tal:block tal:define="oid oid|field.oid;
css_class css_class|field.widget.css_class;
style style|field.widget.style;">
${field.start_mapping()}
<img tal:condition="preview_url" tal:define="preview_url cstruct.get('preview_url');
filename cstruct.get('filename')" src="${structure: preview_url}"></img>
${field.end_mapping()}
</tal:block>
\ No newline at end of file
opensipkd/coba/views/view_form.py
View file @
1bb0783
import
colander
from
deform
import
widget
from
deform
import
widget
,
FileData
from
pyramid.view
import
view_config
from
opensipkd.coba.models
import
Coba
from
.
import
BaseView
from
opensipkd.base.views
import
widget_os
from
opensipkd.tools
import
mem_tmp_store
,
Upload
,
ymd
,
hms
,
ymdhms
from
opensipkd.coba
import
COBA_UPLOAD
from
datetime
import
datetime
items
=
((
"1"
,
"Satu"
),(
'2'
,
'Dua'
),(
'3'
,
'Tiga'
),(
'4'
,
'Empat'
),(
'5'
,
'Lima'
),
(
"6"
,
"Enam"
),(
'7'
,
'Tujuh'
),(
'8'
,
'Delapan'
),(
'9'
,
'Sembilan'
),
(
'10'
,
'Sepuluh'
),(
"11"
,
"Sebelas"
),(
'12'
,
'Dua Belas'
),
(
'13'
,
'Tiga Belas'
),(
'14'
,
'Empat Belas'
),(
'15'
,
'Lima Belas'
))
from
opensipkd.base
import
get_urls
class
AddSchema
(
colander
.
Schema
):
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
...
...
@@ -13,6 +20,75 @@ class AddSchema(colander.Schema):
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
validator
=
colander
.
Length
(
min
=
3
,
max
=
64
),
title
=
"Text"
)
money
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
widget
.
MoneyInputWidget
()
)
date_os
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
widget_os
.
BootStrapDateInputWidget
(
type_name
=
"text"
)
)
date_ori
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
widget
.
DateInputWidget
(
type_name
=
"text"
)
)
date_part
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
widget
.
DatePartsWidget
()
)
time_ori
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
widget
.
TimeInputWidget
()
)
date_time
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
widget
.
DateTimeInputWidget
()
)
check_box
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
widget
.
CheckboxWidget
(
true_val
=
"1"
,
false_val
=
"0"
)
)
select_combo
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
widget
.
SelectWidget
(
values
=
items
)
)
select_combo2
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
widget
.
Select2Widget
(
values
=
items
)
)
file_upload
=
colander
.
SchemaNode
(
FileData
(),
widget
=
widget
.
FileUploadWidget
(
tmpstore
=
mem_tmp_store
,
template
=
'opensipkd.coba:views/templates/file_upload.pt'
,
readonly_template
=
'opensipkd.coba:views/templates/readonly/file_upload.pt'
)
)
img_upload
=
colander
.
SchemaNode
(
FileData
(),
widget
=
widget
.
FileUploadWidget
(
tmpstore
=
mem_tmp_store
,
template
=
'opensipkd.coba:views/templates/img_upload.pt'
,
readonly_template
=
'opensipkd.coba:views/templates/readonly/img_upload.pt'
)
)
option_list
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
widget
.
RadioChoiceWidget
(
values
=
items
)
)
option_box
=
colander
.
SchemaNode
(
colander
.
Set
(),
widget
=
widget
.
CheckboxChoiceWidget
(
values
=
items
)
)
...
...
@@ -82,8 +158,52 @@ class Views(BaseView):
err_nama
()
elif
found
:
err_nama
()
# Set to String
if
"option_box"
in
value
:
value
[
"option_box"
]
=
str
(
value
[
"option_box"
])
if
"time_ori"
in
value
:
value
[
"time_ori"
]
=
datetime
.
strptime
(
value
[
"time_ori"
],
"
%
H:
%
M:
%
S"
)
if
"check_box"
in
value
:
value
[
"check_box"
]
=
value
[
"check_box"
]
and
1
or
0
# Save File Upload to Folder
if
"file_upload"
in
value
:
upload
=
Upload
(
COBA_UPLOAD
)
value
[
"file_upload"
]
=
upload
.
save_fp
(
value
[
"file_upload"
])
if
"img_upload"
in
value
:
upload
=
Upload
(
COBA_UPLOAD
)
value
[
"img_upload"
]
=
upload
.
save_fp
(
value
[
"img_upload"
])
def
get_values
(
self
,
row
,
istime
=
False
):
d
=
super
()
.
get_values
(
row
,
istime
)
folder
=
COBA_UPLOAD
+
'/'
url
=
get_urls
(
self
.
req
.
static_url
(
folder
))
if
"file_upload"
in
d
:
filename
=
row
.
file_upload
preview_url
=
"/"
.
join
([
url
,
filename
])
d
[
"file_upload"
]
=
{
"uid"
:
filename
.
split
(
"."
)[
0
],
"filename"
:
filename
,
"preview_url"
:
preview_url
}
if
"img_upload"
in
d
:
filename
=
row
.
img_upload
preview_url
=
"/"
.
join
([
url
,
filename
])
d
[
"img_upload"
]
=
{
"uid"
:
filename
.
split
(
"."
)[
0
],
"filename"
:
filename
,
"preview_url"
:
preview_url
}
d
[
"date_ori"
]
=
ymd
(
row
.
date_ori
)
d
[
"date_os"
]
=
ymd
(
row
.
date_os
)
d
[
"date_part"
]
=
ymd
(
row
.
date_part
)
d
[
"date_time"
]
=
ymd
(
row
.
date_time
)
+
'T'
+
hms
(
row
.
date_time
)
+
'Z'
d
[
"time_ori"
]
=
hms
(
row
.
time_ori
)
d
[
"option_box"
]
=
set
(
row
.
option_box
)
d
[
"check_box"
]
=
row
.
check_box
and
"1"
or
"0"
return
d
@view_config
(
route_name
=
'coba-form'
,
renderer
=
'templates/list.pt'
,
permission
=
'view'
)
def
view_list
(
self
):
...
...
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