Commit 1970af04 by aa.gusti

perbaikan terimatgl

1 parent 42da8054
import importlib
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'
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"),
("coba-home", "/coba/home", "Home Coba", "__init__", "home", "home.pt", "",),
("coba-form", "/coba/form", "Daftar", "view_form", "list", "list.pt", "",),
("coba-form-add", "/coba/form/add", "Tambah", "view_form", "add", "form.pt", "",),
("coba-form-edit", "/coba/form/{id}/edit", "Koreksi", "view_form", "edit", "form.pt", "",),
("coba-form-view", "/coba/form/{id}/view", "Lihat", "view_form", "view", "form.pt", "",),
("coba-form-delete", "/coba/form/{id}/delete", "Hapus", "view_form", "delete", "form.pt", "",),
("coba-form-act", "/coba/form/{act}/act", "Koreksi", "view_form", "act", "json", "",),
("coba-upload", "/coba/upload", "Daftar", "view_upload", "list", "list.pt", "",),
("coba-upload-add", "/coba/upload/add", "Tambah", "view_upload", "add", "form.pt", "",),
(
"coba-upload-edit", "/coba/upload/{id}/edit", "Koreksi", "view_upload", "edit", "form.pt",
"",),
("coba-upload-view", "/coba/upload/{id}/view", "Lihat", "view_upload", "view", "form.pt", "",),
("coba-upload-delete", "/coba/upload/{id}/delete", "Hapus", "view_upload", "delete", "form.pt",
"",),
("coba-upload-act", "/coba/upload/{act}/act", "Koreksi", "view_upload", "act", "json", "",),
("coba-filters", "/coba/filter", "Filter", "view_filter", "add", "form.pt", "",),
]
# def init_db(config):
# settings = get_settings()
# url = 'bphtb.url' in settings and settings['bphtb.url'] and 'bphtb.' or 'sqlalchemy.'
......@@ -32,17 +40,39 @@ routes = [
# BphtbBase.metadata.bind = engine
def includeme(config):
for route in routes:
config.add_route(route[0], route[1])
titles[route[0]] = route[2]
class_name = f".views.{route[3]}"
attr = f"view_{route[4]}"
template = route[5]
_views = importlib.import_module(class_name, "opensipkd.coba")
views = _views
if template == "json":
renderer = template
else:
renderer = "views/templates/" + template
kode = route[0]
permission = route[6]
print(views, attr)
print(getattr(views.Views, attr))
if not permission:
config.add_view(views.Views, attr=f"{attr}",
route_name=kode,
renderer=renderer)
else:
config.add_view(views.Views, attr=f"{attr}",
route_name=kode, permission=permission,
renderer=renderer)
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)
......
......@@ -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(engine)
# ModuleBase.metadata.create_all()
print('>>Append Table')
......
("coba-home", "/coba/home", "Home Coba", "view_form", "home", home.pt,"",)
("coba-form", "/coba/form", "Daftar", "view_form", "list", list.pt,"",)
("coba-form-add", "/coba/form/add", "Tambah", "view_form", "add", form.pt,"",)
("coba-form-edit", "/coba/form/{id}/edit", "Koreksi", "view_form", "edit", form.pt,"",)
("coba-form-view", "/coba/form/{id}/view", "Lihat", "view_form", "view", form.pt,"",)
("coba-form-delete", "/coba/form/{id}/delete", "Hapus", "view_form", "delete", form.pt,"",)
("coba-form-act", "/coba/form/{act}/act", "Koreksi", "view_form", "act", json,"",)
("coba-upload", "/coba/upload", "Daftar", "view_upload", "list", list.pt,"",)
("coba-upload-add", "/coba/upload/add", "Tambah", "view_upload", "add", form.pt,"",)
("coba-upload-edit", "/coba/upload/{id}/edit", "Koreksi", "view_upload", "edit", form.pt,"",)
("coba-upload-view", "/coba/upload/{id}/view", "Lihat", "view_upload", "view", form.pt,"",)
("coba-upload-delete", "/coba/upload/{id}/delete", "Hapus", "view_upload", "delete", form.pt,"",)
("coba-upload-act", "/coba/upload/{act}/act", "Koreksi", "view_upload", "act", json,"",)
("coba-filters", "/coba/filter", "Filter", "view_filter", "add", form.pt,"",)
\ No newline at end of file
......@@ -20,12 +20,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;
......
<html metal:use-macro="load: ./base.pt" tal:omit-tag="">
<div metal:fill-slot="content" tal:omit-tag="">
<h1>Home BPHTB</h1>
<a href="/test/filters">Filter Form</a>
</div>
</html>
\ No newline at end of file
import colander
from deform import Form, ValidationFailure
from opensipkd.base.views import widget_os, BaseView
class FilterSchema(colander.SequenceSchema):
test = colander.SchemaNode(
colander.String(),
widget=widget_os.FilterWidget(values=(("nama", "Nama"), ("alamat", "Alamat")))
)
class AddSchema(colander.Schema):
ada = FilterSchema()
class Views(BaseView):
def __init__(self, request):
super().__init__(request)
self.add_schema = AddSchema
self.list_route = "coba-form"
self.is_object = True
def view_add(self):
# if self.req.POST:
# c = self.req.POST.items()
# form = Form(self.add_schema())
# try:
# c = form.validate(c)
# except ValidationFailure as e:
# print(str(e))
# print(dict(c))
result = super().view_add()
form = result["form"]
values1 = {"test": "alamat.gt.Jakarta.OR"}
values2 = {"test": "alamat.lt.Bandung."}
values = {"ada": [values1["test"], values2["test"]]}
# values = {}
form.set_appstruct(values)
return {"form": form.render(), "scripts": {}, "js": result["js"],
"css": result["css"]}
\ No newline at end of file
from datetime import datetime
import colander
from deform import widget, FileData
from opensipkd.base.views import widget_os
from pyramid.view import view_config
from opensipkd.coba import COBA_UPLOAD
from opensipkd.coba.models import Coba
from opensipkd.tools import mem_tmp_store, Upload, ymd, hms
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'))
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(),
widget=widget.TextInputWidget(mask="9999.9999.9999"),
validator=colander.Length(min=3, max=10),
)
nama = colander.SchemaNode(
......@@ -29,66 +35,65 @@ class AddSchema(colander.Schema):
date_os = colander.SchemaNode(
colander.String(),
widget = widget_os.BootStrapDateInputWidget(type_name="text")
widget=widget_os.BootStrapDateInputWidget(type_name="text")
)
date_ori = colander.SchemaNode(
colander.String(),
widget = widget.DateInputWidget(type_name="text")
widget=widget.DateInputWidget(type_name="text")
)
date_part = colander.SchemaNode(
colander.String(),
widget = widget.DatePartsWidget()
widget=widget.DatePartsWidget()
)
time_ori = colander.SchemaNode(
colander.String(),
widget = widget.TimeInputWidget()
widget=widget.TimeInputWidget()
)
date_time = colander.SchemaNode(
colander.String(),
widget = widget.DateTimeInputWidget()
widget=widget.DateTimeInputWidget()
)
check_box = colander.SchemaNode(
colander.Integer(),
widget = widget.CheckboxWidget(true_val="1", false_val="0")
widget=widget.CheckboxWidget(true_val="1", false_val="0")
)
select_combo = colander.SchemaNode(
colander.Integer(),
widget = widget.SelectWidget(values=items)
widget=widget.SelectWidget(values=items)
)
select_combo2 = colander.SchemaNode(
colander.Integer(),
widget = widget.Select2Widget(values=items)
widget=widget.Select2Widget(values=items)
)
file_upload = colander.SchemaNode(
FileData(),
widget = widget.FileUploadWidget(tmpstore=mem_tmp_store,
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,
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)
widget=widget.RadioChoiceWidget(values=items)
)
option_box = colander.SchemaNode(
colander.Set(),
widget = widget.CheckboxChoiceWidget(values=items)
widget=widget.CheckboxChoiceWidget(values=items)
)
......@@ -128,6 +133,7 @@ class Views(BaseView):
def form_validator(self, form, value):
exc = colander.Invalid(form, '')
def err_kode():
exc['kode'] = 'Kode %s sudah digunakan oleh %s' % (
value['kode'], found.nama)
......@@ -140,19 +146,19 @@ class Views(BaseView):
if 'id' in form.request.matchdict:
uid = form.request.matchdict['id']
q =Coba.query_id(uid)
q = Coba.query_id(uid)
current = q.first()
else:
current = None
found =Coba.query_kode(value['kode']).first()
found = Coba.query_kode(value['kode']).first()
if current:
if found and found.id != current.id:
err_kode()
elif found:
err_kode()
found =Coba.query_nama(value['nama']).first()
found = Coba.query_nama(value['nama']).first()
if current:
if found and found.id != current.id:
err_nama()
......@@ -160,25 +166,25 @@ class Views(BaseView):
err_nama()
# Set to String
if "option_box" in value:
value["option_box"]=str(value["option_box"])
value["option_box"] = str(value["option_box"])
if "time_ori" in value:
value["time_ori"]=datetime.strptime(value["time_ori"], "%H:%M:%S")
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
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"])
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"])
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 = COBA_UPLOAD + '/'
url = get_urls(self.req.static_url(folder))
if "file_upload" in d:
filename = row.file_upload
......@@ -195,48 +201,48 @@ class Views(BaseView):
"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"
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')
# @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')
# @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')
# @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')
# @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')
# @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')
# @view_config(route_name='coba-form-view', renderer='templates/form.pt',
# permission='view')
def view_view(self):
return super().view_view()
def _coba_list():
qry =Coba.query().order_by(Coba.nama)
qry = Coba.query().order_by(Coba.nama)
return qry
......@@ -262,6 +268,7 @@ def coba_widget(node, kw):
placeholder="Pilih Coba",
style="width:200px;")
class CobaFilterSchema():
coba_id = colander.SchemaNode(
colander.Integer(),
......
......@@ -98,32 +98,32 @@ class Views(BaseView):
}
return d
@view_config(route_name='coba-upload', renderer='templates/list.pt',
permission='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')
# @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')
# @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')
# @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')
# @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')
# @view_config(route_name='coba-upload-view', renderer='templates/form.pt',
# permission='view')
def view_view(self):
return super().view_view()
\ No newline at end of file
import colander
from deform import Form
class Schema(colander.Schema):
a = colander.SchemaNode(colander.String())
schema = Schema()
form = Form(schema)
# print (dir(form.oid))
print (form.oid)
print (form.schema.a.id)
# print(form.render())
\ 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!