Commit 8869b7fc by Ari Agung Prasetiyo

menu upload

1 parent 2e660d0d
import os
from sqlalchemy import engine_from_config
# from .models import DBSession, EisBase
from opensipkd.tools import get_settings
from pyramid.events import BeforeRender, subscriber
from opensipkd.base import get_params, BaseApp
import os
from opensipkd.tools import create_static_path
class AppClass(BaseApp):
def __init__(self):
super().__init__()
self.base_dir = os.path.split(__file__)[0]
self.temp_files = ""
self.bangbadil_files = ""
self.uri = ""
def static_view(self, config, settings=None):
if not settings:
settings = get_settings()
self.uri = 'bangbadil_files/files'
self.temp_files = settings.get("temp_files")
self.bangbadil_files = os.path.join(self.temp_files, "bangbadil_files")+os.sep
if not os.path.exists(self.bangbadil_files):
os.makedirs(self.bangbadil_files)
config.add_static_view(
'bangbadil_files', self.bangbadil_files, cache_max_age=0)
# def static_views(self, config):
# create_static_path(config, self.bangbadil_files, self.uri, 0)
APP_CLASS = AppClass()
......@@ -16,7 +35,7 @@ APP_CLASS = AppClass()
def includeme(config):
# APP_CLASS.init()
# APP_CLASS.static_views(config)
APP_CLASS.static_view(config)
# SPPT_CLASS.route_from_list(config, routes, paket="opensipkd.pbb.esppt")
APP_CLASS.route_from_csv(config, "eispajak.views")
config.add_static_view('eis/static', 'eispajak:static',
......
......@@ -109,3 +109,16 @@ class ArPayment(NamaModel, Base):
bayar = Column(BigInteger)
__table_args__ = (UniqueConstraint('tanggal','kode'),
TABLE_ARGS)
class UploadFiles(Base, DefaultModel):
__tablename__ = 'upload_files'
# id = Column(Integer, nullable=False)
title = Column(String(100))
file_name = Column(String(256), nullable=False)
description = Column(String(256))
status = Column(Integer, nullable=False)
# created = Column(DateTime)
# updated = Column(DateTime)
# create_uid = Column(Integer)
# update_uid = Column(Integer)
__table_args__ = (TABLE_ARGS)
\ No newline at end of file
......@@ -53,18 +53,23 @@ eis-slide-add,EIS Slide Add,/eis/slide/add,1,0
eis-slide-edit,EIS Slide Edit,/eis/slide/{id}/edit,1,0
eis-slide-delete,EIS Slide Delete,/eis/slide/{id}/delete,1,0
eis-pkbbbnkb,Opsen PKB BBNKB,/eis/pkbbbnkb,1,0,1,,pkbbbnkb,Views,view_list,eis,form.pt
eis-pkbbbnkb-act,Opsen PKB BBNKB Act,/eis/pkbbbnkb/{act}/act,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-add,Opsen PKB BBNKB Add,/eis/pkbbbnkb/add,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-edit,Opsen PKB BBNKB Edit,/eis/pkbbbnkb/{id}/edit,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-delete,Opsen PKB BBNKB Delete,/eis/pkbbbnkb/{id}/delete,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-act,Opsen PKB BBNKB Act,/eis/pkbbbnkb/{act}/act,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-add,Opsen PKB BBNKB Add,/eis/pkbbbnkb/add,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-edit,Opsen PKB BBNKB Edit,/eis/pkbbbnkb/{id}/edit,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-delete,Opsen PKB BBNKB Delete,/eis/pkbbbnkb/{id}/delete,1,0,,,pkbbbnkb,Views,,eis
eis-penerimaan,EIS penerimaan,/eis/penerimaan,1,0,0,,penerimaan,Views,view_list,eis,form.pt
eis-penerimaan-act,EIS penerimaan Act,/eis/penerimaan/{act}/act,1,0,,,penerimaan,Views,,eis
eis-penerimaan-add,EIS penerimaan Add,/eis/penerimaan/add,1,0,,,penerimaan,Views,,eis
eis-penerimaan-edit,EIS penerimaan Edit,/eis/penerimaan/{id}/edit,1,0,,,penerimaan,Views,,eis
eis-penerimaan-delete,EIS penerimaan Delete,/eis/penerimaan/{id}/delete,1,0,,,penerimaan,Views,,eis
eis-penerimaan-act,EIS penerimaan Act,/eis/penerimaan/{act}/act,1,0,,,penerimaan,Views,,eis
eis-penerimaan-add,EIS penerimaan Add,/eis/penerimaan/add,1,0,,,penerimaan,Views,,eis
eis-penerimaan-edit,EIS penerimaan Edit,/eis/penerimaan/{id}/edit,1,0,,,penerimaan,Views,,eis
eis-penerimaan-delete,EIS penerimaan Delete,/eis/penerimaan/{id}/delete,1,0,,,penerimaan,Views,,eis
eis-target,Target,/eis/target,1,0,1,,target,Views,view_list,eis,form.pt
eis-target-act,Target Act,/eis/target/{act}/act,1,0,,,target,Views,,eis
eis-target-add,Target Add,/eis/target/add,1,0,,,target,Views,,eis
eis-target-edit,Target Edit,/eis/target/{id}/edit,1,0,,,target,Views,,eis
eis-target-delete,Target Delete,/eis/target/{id}/delete,1,0,,,target,Views,,eis
eis-target-delete,Target Delete,/eis/target/file/{id}/delete,1,0,,,target,Views,,eis
eis-upload-file,Upload File,/eis/upload/file,1,0,1,,upload,Views,view_list,eis,form.pt
eis-upload-file-act,Upload File Act,/eis/upload/file/{act}/act,1,0,,,upload,Views,,eis
eis-upload-file-add,Upload File Add,/eis/upload/file/add,1,0,,,upload,Views,,eis
eis-upload-file-edit,Upload File Edit,/eis/upload/file/{id}/edit,1,0,,,upload,Views,,eis
eis-upload-file-delete,Upload File Delete,/eis/upload/file/{id}/delete,1,0,,,upload,Views,,eis
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()
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!