Commit 12632eff by aa.gusti

Upload

1 parent b67e1bb9
import logging
from opensipkd.base import get_params
from opensipkd.base import titles
try:
COBA_UPLOAD = get_params('coba_upload', '/tmp/coba/upload')
except:
COBA_UPLOAD = '/tmp/coba/upload'
from opensipkd.base import titles, _add_view_config
from pyramid.events import subscriber, BeforeRender
_logging = logging.getLogger(__name__)
# kode,path,module,class_view,def_func,order_id,permission,parent_id/routes.kode,nama,status,type,app_id,is_menu,template
routes = [
("coba-home", "/coba/home", "Home Coba"),
("coba-form", "/coba/form", "Daftar"),
("coba-form-add", "/coba/form/add", "Tambah"),
("coba-form-edit", "/coba/form/{id}/edit", "Koreksi"),
("coba-form-view", "/coba/form/{id}/view", "Lihat"),
("coba-form-delete", "/coba/form/{id}/delete", "Hapus"),
("coba-form-act", "/coba/form/{act}/act", "Koreksi"),
("coba-upload", "/coba/upload", "Daftar"),
("coba-upload-add", "/coba/upload/add", "Tambah"),
("coba-upload-edit", "/coba/upload/{id}/edit", "Koreksi"),
("coba-upload-view", "/coba/upload/{id}/view", "Lihat"),
("coba-upload-delete", "/coba/upload/{id}/delete", "Hapus"),
("coba-upload-act", "/coba/upload/{act}/act", "Koreksi"),
#kode, path, module, class_view, def_func, order_id, permission,parent_id/routes.kode,nama,status,type,app_id,is_menu,template
{"kode": "coba", "path": "/coba",
"def_func": "home", "nama": "Home",
"module": "coba", "class_view": "__init__",
"type": 0,"is_menu": 1, "template":"home.pt", "route_names":[], "children":False, "permission":None, "icon":""},
{"kode": "coba-form", "path": "/coba/form",
"def_func": "list", "nama": "Formulir",
"module": "coba", "class_view": "view_form",
"type": 0, "is_menu": 1, "template": "form.pt", "route_names": [], "children": False, "permission": "view", "icon":""},
{"kode": "coba-form-add", "path": "/coba/form/add",
"def_func": "add", "nama": "Tambah",
"module": "coba", "class_view": "view_form",
"type": 0, "is_menu": 0, "template": "form.pt", "route_names": [], "children":False, "permission":"view", "icon":""},
{"kode": "coba-form-edit", "path": "/coba/form/{id}/edit",
"def_func": "edit", "nama": "Edit",
"module": "coba", "class_view": "view_form",
"type": 0, "is_menu": 0, "template": "form.pt", "route_names": [], "children": False, "permission": "view", "icon":""},
{"kode": "coba-form-view", "path": "/coba/form/{id}/view",
"def_func": "view", "nama": "Lihat",
"module": "coba", "class_view": "view_form",
"type": 0, "is_menu": 0, "template": "form.pt", "children":False, "permission":"view", "icon":""},
{"kode": "coba-form-delete", "path": "/coba/form/{id}/delete",
"def_func": "view", "nama": "Hapus",
"module": "coba", "class_view": "view_form",
"type": 0, "is_menu": 0, "template": "form.pt", "route_names": [], "children": False, "permission": "view", "icon":""},
{"kode": "coba-form-act", "path": "/coba/form/{act}/act",
"def_func": "act", "nama": "Action",
"module": "coba", "class_view": "view_form", "type": 0, "is_menu": 0, "template": "json",
"route_names": [], "children": False, "permission": "", "icon":""},
{"kode": "coba-upload", "path": "/coba/upload",
"def_func": "list", "nama": "Upload",
"module": "coba", "class_view": "view_upload", "type": 0,
"is_menu": 1, "template": "form.pt",
"route_names": [], "children": False, "permission": "view", "icon":""},
{"kode": "coba-upload-add", "path": "/coba/upload/add",
"def_func": "add", "nama": "Tambah",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "form.pt",
"route_names": [], "children": False, "permission": "", "icon":""},
{"kode": "coba-upload-edit", "path": "/coba/upload/{id}/edit",
"def_func": "edit", "nama": "Edit",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "form.pt",
"route_names":[], "children":False, "permission":"", "icon":""},
{"kode": "coba-upload-view", "path": "/coba/upload/{id}/view",
"def_func": "view", "nama": "Lihat",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "form.pt",
"route_names": [], "children":False, "permission":"", "icon":""},
{"kode": "coba-upload-delete", "path": "/coba/upload/{id}/delete",
"def_func": "view", "nama": "Hapus",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "form.pt",
"route_names": [], "children": False, "permission":"", "icon":""},
{"kode": "coba-upload-act", "path": "/coba/upload/{act}/act",
"def_func": "act", "nama": "Action",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "json",
"route_names": [], "children": False, "permission": "", "icon": ""},
]
# def init_db(config):
# settings = get_settings()
# url = 'bphtb.url' in settings and settings['bphtb.url'] and 'bphtb.' or 'sqlalchemy.'
# pool_size = 'pool_size' in settings and int(settings['pool_size']) or 5
# max_overflow = 'max_overflow' in settings and int(settings['max_overflow']) or 10
# params = dict(pool_size=pool_size, max_overflow=max_overflow)
# engine = engine_from_config(settings, url, **params)
# BphtbDBSession.configure(bind=engine)
# BphtbBase.metadata.bind = engine
class CobaModules():
def __init__(self):
self.menus = []
self.uploads = None
def set_routes(self, config):
self.uploads = get_params('coba_upload', '/tmp/coba/upload')
def includeme(config):
config.add_static_view(
'/coba/uploads', self.uploads, cache_max_age=0)
for route in routes:
config.add_route(route[0], route[1])
titles[route[0]] = route[2]
if route.get("is_menu", None):
self.menus.append(route)
_add_view_config(config, "opensipkd.coba.views", route)
_logging.debug("Menu Coba")
_logging.debug(self.menus)
# config.add_route(route["kode"], route["path"])
config.scan('.')
# titles[route["kode"]] = route["path"]
def get_menus(self):
return self.menus
config.add_static_view('coba/static', 'opensipkd.coba:static',
cache_max_age=3600)
config.add_static_view('coba/upload', COBA_UPLOAD,
cache_max_age=3600)
# config.add_static_view('static_coba',
# get_params('static_coba', '/tmp/static_coba'),
# cache_max_age=0)
MODULE_CLASS = CobaModules()
def includeme(config):
# for route in routes:
# config.add_route(route[0], route[1])
# titles[route[0]] = route[2]
MODULE_CLASS.set_routes(config)
config.scan('.')
@subscriber(BeforeRender)
def add_global(event):
event['get_coba_menus'] = MODULE_CLASS.get_menus
......@@ -41,7 +41,7 @@ def main(argv=sys.argv):
engine = engine_from_config(settings, 'sqlalchemy.')
DBSession.configure(bind=engine)
Base.metadata.bind = engine
Base.metadata.create_all()
Base.metadata.create_all(bind=engine)
# ModuleBase.metadata.create_all()
print('>>Append Table')
......
......@@ -19,12 +19,12 @@ _logging = logging.getLogger(__name__)
class BaseView(MasterBaseView):
pass
class HomeView(BaseView):
class Views(BaseView):
def __init__(self, request):
super(HomeView, self).__init__(request)
super().__init__(request)
@view_config(route_name='coba-home', renderer='templates/home.pt',
permission='view')
# @view_config(route_name='coba-home', renderer='templates/home.pt',
# permission='view')
def view_home(self):
tpl = self.get_params("coba-home-tpl")
if tpl:
......
<html
metal:use-macro="load: opensipkd.base:/views/templates/base3.1.pt"
metal:use-macro="load: opensipkd.base:views/templates/base3.1.pt"
tal:omit-tag=""
tal:define="
route_name request.matched_route.name;
......@@ -18,31 +18,42 @@
<span metal:fill-slot="navs" tal:omit-tag="">
<ul class="margin-top-0 padding-top-0">
<li tal:attributes="class route_name == 'coba'">
<a href="${home}/coba">
<i class="fa fa-lg fa-fw fa-home"></i>
<span class="menu-item-parent">Beranda</span>
<li tal:repeat="menu get_coba_menus()" tal:attributes="class route_name in menu['route_names'] and 'active'">
<a tal:condition="python:not menu['children'] and (has_permission(request, menu['permission']) or not menu['permission'] )"
href="${home}${menu['path']}">
<i tal:condition="menu['icon']" class="fa fa-lg fa-fw ${menu['icon']}"></i>
<span>${menu['nama']}</span>
</a>
</li>
<!-- Master -->
<!-- <li>
<a href="#">
<i class="fa fa-lg fa-fw fa-book"></i>
<span class="menu-item-parent">Master</span>
<a tal:condition="python:menu['children'] and has_permission(request, menu['permission'])" href="#">
<i tal:condition="menu['icon']" class="fa fa-lg fa-fw ${menu['icon']}"></i>
<span class="menu-item-parent">${menu['nama']}</span>
</a>
<ul> -->
<li tal:attributes="class route_name in coba_form and 'active'">
<a href="${home}/coba/form">Form</a>
</li>
<li tal:attributes="class route_name in coba_upload and 'active'">
<a href="${home}/coba/upload">Upload</a>
<ul tal:condition="python:menu['children'] and has_permission(request, menu['permission'])">
<li tal:repeat="submenu menu['children']"
tal:attributes="class route_name in submenu['route_names'] and 'active'">
<a tal:condition="python:not submenu['children'] and has_permission(request, submenu['permission'])"
href="${home}${submenu['path']}">
<i tal:condition="submenu['icon']" class="fa fa-lg fa-fw ${submenu['icon']}"></i>
<span>${submenu['nama']}</span>
</a>
<a tal:condition="submenu['children']" href="#">
<i tal:condition="submenu['icon']" class="fa fa-lg fa-fw ${submenu['icon']}"></i>
<span class="menu-item-parent">${submenu['nama']}</span>
</a>
<ul tal:condition="submenu['children']">
<li tal:repeat="submenu2 submenu['children']"
tal:attributes="class route_name in submenu2['route_names'] and 'active'">
<a href="${home}${submenu2['path']}">${submenu2['nama']}</a>
</li>
<li tal:attributes="class route_name in coba_view and 'active'">
<a href="${home}/coba/view">Upload & View</a>
</ul>
</li>
<!-- </ul> -->
</ul>
<!-- </li> -->
</li>
</ul>
</span>
</html>
\ No newline at end of file
import colander
from deform import widget, FileData
from pyramid.view import view_config
from opensipkd.coba import MODULE_CLASS
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'),
......@@ -170,15 +170,15 @@ class Views(BaseView):
# Save File Upload to Folder
if "file_upload" in value:
upload = Upload(COBA_UPLOAD)
upload = Upload(MODULE_CLASS.uploads)
value["file_upload"]=upload.save_fp(value["file_upload"])
if "img_upload" in value:
upload = Upload(COBA_UPLOAD)
upload = Upload(MODULE_CLASS.uploads)
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+'/'
folder = MODULE_CLASS.uploads+'/'
url = get_urls(self.req.static_url(folder))
if "file_upload" in d:
filename = row.file_upload
......@@ -204,35 +204,35 @@ class Views(BaseView):
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):
return super(Views, self).view_list()
@view_config(route_name='coba-form-act', renderer='json',
permission='view')
def view_act(self):
return super().view_act()
@view_config(route_name='coba-form-add', renderer='templates/form.pt',
permission='bphtb-admin')
def view_add(self):
return super().view_add()
@view_config(route_name='coba-form-edit', renderer='templates/form.pt',
permission='view')
def view_edit(self):
return super().view_edit()
@view_config(route_name='coba-form-delete', renderer='templates/form.pt',
permission='view')
def view_delete(self):
return super().view_delete()
@view_config(route_name='coba-form-view', renderer='templates/form.pt',
permission='view')
def view_view(self):
return super().view_view()
# @view_config(route_name='coba-form', renderer='templates/list.pt',
# permission='view')
# def view_list(self):
# return super(Views, self).view_list()
# @view_config(route_name='coba-form-act', renderer='json',
# permission='view')
# def view_act(self):
# return super().view_act()
# @view_config(route_name='coba-form-add', renderer='templates/form.pt',
# permission='bphtb-admin')
# def view_add(self):
# return super().view_add()
# @view_config(route_name='coba-form-edit', renderer='templates/form.pt',
# permission='view')
# def view_edit(self):
# return super().view_edit()
# @view_config(route_name='coba-form-delete', renderer='templates/form.pt',
# permission='view')
# def view_delete(self):
# return super().view_delete()
# @view_config(route_name='coba-form-view', renderer='templates/form.pt',
# permission='view')
# def view_view(self):
# return super().view_view()
def _coba_list():
......
......@@ -2,11 +2,12 @@ import os
import colander
from deform import widget, FileData
from pyramid.view import view_config
from opensipkd.coba import MODULE_CLASS
from opensipkd.tools import mem_tmp_store, Upload
from opensipkd.base import get_urls
from opensipkd.coba.models import Coba
from . import BaseView
from opensipkd.coba import COBA_UPLOAD
# from opensipkd.coba import COBA_UPLOAD
# from opensipkd.base.views import widget_os
# from opensipkd.tools.report import csv_response
# from sqlalchemy import and_
......@@ -62,19 +63,19 @@ class Views(BaseView):
def form_validator(self, form, value):
if "file_1" in value:
upload = Upload(COBA_UPLOAD)
upload = Upload(MODULE_CLASS.uploads)
value["file_1"]=upload.save_fp(value["file_1"])
if "file_2" in value:
upload = Upload(COBA_UPLOAD)
upload = Upload(MODULE_CLASS.uploads)
value["file_2"]=upload.save_fp(value["file_2"])
if "file_3" in value:
upload = Upload(COBA_UPLOAD)
upload = Upload(MODULE_CLASS.uploads)
value["file_3"]=upload.save_fp(value["file_3"])
def get_values(self, row, istime=False):
d = super().get_values(row, istime=False)
folder = COBA_UPLOAD+'/'
url = get_urls(self.req.static_url(folder))
folder = MODULE_CLASS.uploads
url = self.req.static_url(folder)
if "file_1" in d:
filename = row.file_1
preview_url = "/".join([url, filename])
......@@ -98,32 +99,32 @@ class Views(BaseView):
}
return d
@view_config(route_name='coba-upload', renderer='templates/list.pt',
permission='view')
def view_list(self):
return super(Views, self).view_list()
@view_config(route_name='coba-upload-act', renderer='json',
permission='view')
def view_act(self):
return super().view_act()
@view_config(route_name='coba-upload-add', renderer='templates/form.pt',
permission='bphtb-admin')
def view_add(self):
return super().view_add()
@view_config(route_name='coba-upload-edit', renderer='templates/form.pt',
permission='view')
def view_edit(self):
return super().view_edit()
@view_config(route_name='coba-upload-delete', renderer='templates/form.pt',
permission='view')
def view_delete(self):
return super().view_delete()
@view_config(route_name='coba-upload-view', renderer='templates/form.pt',
permission='view')
def view_view(self):
return super().view_view()
# @view_config(route_name='coba-upload', renderer='templates/list.pt',
# permission='view')
# def view_list(self):
# return super(Views, self).view_list()
# @view_config(route_name='coba-upload-act', renderer='json',
# permission='view')
# def view_act(self):
# return super().view_act()
# @view_config(route_name='coba-upload-add', renderer='templates/form.pt',
# permission='bphtb-admin')
# def view_add(self):
# return super().view_add()
# @view_config(route_name='coba-upload-edit', renderer='templates/form.pt',
# permission='view')
# def view_edit(self):
# return super().view_edit()
# @view_config(route_name='coba-upload-delete', renderer='templates/form.pt',
# permission='view')
# def view_delete(self):
# return super().view_delete()
# @view_config(route_name='coba-upload-view', renderer='templates/form.pt',
# permission='view')
# def view_view(self):
# return super().view_view()
......@@ -18,7 +18,7 @@ strict = true
[project]
name = 'opensipkd-base'
name = 'opensipkd-coba'
version = '4.2'
dependencies = [
'opensipkd-base',
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!