upload.py
3.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import os
import colander
from deform import widget, FileData
from opensipkd.base.widgets import widget_os
from pyramid.view import view_config
from ..models.payment import UploadRealisasiOpsen
from . import BaseView
from ..models.eis import UploadFiles
from datetime import date
from .. import APP_CLASS
from opensipkd.tools import mem_tmp_store, Upload
from pyramid.i18n import TranslationStringFactory
_ = TranslationStringFactory('upload_files')
class ListSchema(colander.Schema):
id = colander.SchemaNode(
colander.Integer(),
title="Action")
title = colander.SchemaNode(
colander.String(),
oid="title", )
description = colander.SchemaNode(
colander.String(),
oid="description",
title="Deskripsi",)
file_name = colander.SchemaNode(
colander.String(),
oid="File", )
status = colander.SchemaNode(
colander.Boolean(),
widget=widget.CheckboxWidget(),
oid="status")
class AddSchema(colander.Schema):
title = colander.SchemaNode(
colander.String(),
widget=widget.TextInputWidget(),
title="Judul",
oid="title",
)
description = colander.SchemaNode(
colander.String(),
oid="description",
title="Deskripsi",)
file_name = colander.SchemaNode(
FileData(),
widget=widget.FileUploadWidget(mem_tmp_store, size="30971520",),
title='Upload Dokumen',
)
status = colander.SchemaNode(
colander.String(), widget=widget.CheckboxWidget(true_val="1", false_val="0"), title=_('Status'))
class EditSchema(AddSchema):
id = colander.SchemaNode(colander.String(),
missing=colander.drop,
widget=widget.HiddenWidget(readonly=True))
class Views(BaseView):
def __init__(self, request):
super().__init__(request)
self.list_schema = ListSchema
self.add_schema = AddSchema
self.edit_schema = EditSchema
self.list_route = 'eis-upload-file'
self.table = UploadFiles
# def view_list(self):
# return super().view_list()
# def view_act(self):
# return super().view_act()
# def view_view(self):
# return super().view_view()
def form_validator(self, form, value):
exc = colander.Invalid(form, '')
# Save File Upload to Folder
if "file_name" in value:
upload = Upload(APP_CLASS.bangbadil_files)
value["file_name"]=upload.save_fp(value["file_name"])
def view_add(self):
return super().view_add()
def get_values(self, row, istime=False):
d = super().get_values(row, istime)
if "file_name" in d:
filename = row.file_name
url = self.req.static_url(APP_CLASS.bangbadil_files)
preview_url = os.path.join(url, filename)
d["file_name"] = {"uid": filename.split(".")[0],
"filename": filename,
"preview_url": preview_url
}
return d
# def view_edit(self):
# return super().view_edit()
# def view_delete(self):
# return super().view_delete()