Commit 10d403fb by aagusti

base_view

1 parent 08855101
...@@ -35,7 +35,7 @@ from opensipkd.tools import ( ...@@ -35,7 +35,7 @@ from opensipkd.tools import (
as_timezone, as_timezone,
split, split,
get_settings, get_settings,
dmy, dmy, dmyhms,
) )
from deform import ZPTRendererFactory, Form from deform import ZPTRendererFactory, Form
...@@ -321,10 +321,15 @@ def get_menus(request): ...@@ -321,10 +321,15 @@ def get_menus(request):
return result return result
def format_datetime(v):
if v.time():
return dmyhms(v)
else:
return dmy(v)
def json_renderer(): def json_renderer():
json_r = JSON() json_r = JSON()
json_r.add_adapter(datetime.datetime, lambda v, request: dmy(v)) json_r.add_adapter(datetime.datetime, lambda v, request: format_datetime(v))
json_r.add_adapter(datetime.date, lambda v, request: dmy(v)) json_r.add_adapter(datetime.date, lambda v, request: dmy(v))
json_r.add_adapter(decimal.Decimal, lambda v, request: str(v)) json_r.add_adapter(decimal.Decimal, lambda v, request: str(v))
return json_r return json_r
......
...@@ -34,6 +34,10 @@ class BaseView(object): ...@@ -34,6 +34,10 @@ class BaseView(object):
self.ses = self.req.session self.ses = self.req.session
self.params = self.req.params self.params = self.req.params
self.settings = get_settings() self.settings = get_settings()
# if not request.user:
if "g_state" in request.cookies:
request.response.delete_cookie("g_state", '/')
now = datetime.now() now = datetime.now()
# self.dt_awal = self.ses["dt_awal"] if "dt_awal" in self.ses else now # self.dt_awal = self.ses["dt_awal"] if "dt_awal" in self.ses else now
# self.awal = dmy(self.dt_awal) # self.awal = dmy(self.dt_awal)
......
...@@ -41,6 +41,7 @@ from opensipkd.tools import create_now, set_user_log, get_settings ...@@ -41,6 +41,7 @@ from opensipkd.tools import create_now, set_user_log, get_settings
from opensipkd.base.views import _, one_hour, two_minutes, BaseView from opensipkd.base.views import _, one_hour, two_minutes, BaseView
from pyramid_mailer.message import Message from pyramid_mailer.message import Message
from opensipkd.tools.buttons import btn_cancel
from opensipkd.tools.form_api import formfield2dict from opensipkd.tools.form_api import formfield2dict
log = __import__("logging").getLogger(__name__) log = __import__("logging").getLogger(__name__)
...@@ -222,25 +223,41 @@ def redirect_login(request, user): ...@@ -222,25 +223,41 @@ def redirect_login(request, user):
return HTTPFound(location=next_url, headers=headers) return HTTPFound(location=next_url, headers=headers)
@view_config(route_name='logout', renderer="templates/logout.pt") class LogoutSchema(colander.Schema):
def view_logout(request): message = colander.SchemaNode(
if 'batal' in request.POST: colander.String(),
log.info(request.route_url('home')) widget=widget.TextInputWidget(readonly=True),
return HTTPFound(location=f"{request.route_url('home')}", ) title=""
elif request.POST: )
set_user_log("Logout", request, log)
headers = forget(request)
request.session.delete() btn_logout = Button("logout", css_class="btn-danger")
if "g_state" in request.cookies: btn_home = Button("home", css_class="btn-success")
del request.cookies["g_state"]
# if "g_state" in request.cookies: class Logout(BaseView):
# requests.post("https://accounts.google.com/o/oauth2/revoke?token=" + ACCESS_TOKEN); @view_config(route_name='logout', renderer="templates/logout.pt")
# headers = forget(request) def view_logout(self):
# request.session.delete() request = self.req
# request.session["start"]="login" if not request.user:
return HTTPFound(location=request.route_url('home'), if "g_state" in request.cookies:
headers=headers) request.response.delete_cookie("g_state", '/')
return dict()
form = self.get_form(LogoutSchema, buttons=(btn_cancel, btn_logout ))
if 'cancel' in request.POST or "home" in request.POST:
log.info(request.route_url('home'))
return HTTPFound(location=f"{request.route_url('home')}", )
elif "logout" in request.POST:
form = self.get_form(LogoutSchema, buttons=(btn_home,))
set_user_log("Logout", request, log)
headers = forget(request)
request.session.delete()
request.response.headers.update(headers)
if "g_state" in request.cookies:
request.response.delete_cookie("g_state", '/')
form.set_appstruct({"message": "Sukses Logout"})
return dict(form=form.render())
class ChangePassword(colander.Schema): class ChangePassword(colander.Schema):
......
...@@ -45,7 +45,8 @@ class CommonModel(object): ...@@ -45,7 +45,8 @@ class CommonModel(object):
value = getattr(self, column.name) value = getattr(self, column.name)
if value or null: if value or null:
if type(column.type)==DateTime: if type(column.type)==DateTime:
values[column.name] = value.strftime(date_format) if value:
values[column.name] = value.strftime(date_format)
else: else:
values[column.name] = value values[column.name] = value
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!