Commit 10d403fb by aagusti

base_view

1 parent 08855101
......@@ -35,7 +35,7 @@ from opensipkd.tools import (
as_timezone,
split,
get_settings,
dmy,
dmy, dmyhms,
)
from deform import ZPTRendererFactory, Form
......@@ -321,10 +321,15 @@ def get_menus(request):
return result
def format_datetime(v):
if v.time():
return dmyhms(v)
else:
return dmy(v)
def json_renderer():
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(decimal.Decimal, lambda v, request: str(v))
return json_r
......
......@@ -34,6 +34,10 @@ class BaseView(object):
self.ses = self.req.session
self.params = self.req.params
self.settings = get_settings()
# if not request.user:
if "g_state" in request.cookies:
request.response.delete_cookie("g_state", '/')
now = datetime.now()
# self.dt_awal = self.ses["dt_awal"] if "dt_awal" in self.ses else now
# self.awal = dmy(self.dt_awal)
......
......@@ -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 pyramid_mailer.message import Message
from opensipkd.tools.buttons import btn_cancel
from opensipkd.tools.form_api import formfield2dict
log = __import__("logging").getLogger(__name__)
......@@ -222,25 +223,41 @@ def redirect_login(request, user):
return HTTPFound(location=next_url, headers=headers)
@view_config(route_name='logout', renderer="templates/logout.pt")
def view_logout(request):
if 'batal' in request.POST:
log.info(request.route_url('home'))
return HTTPFound(location=f"{request.route_url('home')}", )
elif request.POST:
set_user_log("Logout", request, log)
headers = forget(request)
request.session.delete()
if "g_state" in request.cookies:
del request.cookies["g_state"]
# if "g_state" in request.cookies:
# requests.post("https://accounts.google.com/o/oauth2/revoke?token=" + ACCESS_TOKEN);
# headers = forget(request)
# request.session.delete()
# request.session["start"]="login"
return HTTPFound(location=request.route_url('home'),
headers=headers)
return dict()
class LogoutSchema(colander.Schema):
message = colander.SchemaNode(
colander.String(),
widget=widget.TextInputWidget(readonly=True),
title=""
)
btn_logout = Button("logout", css_class="btn-danger")
btn_home = Button("home", css_class="btn-success")
class Logout(BaseView):
@view_config(route_name='logout', renderer="templates/logout.pt")
def view_logout(self):
request = self.req
if not request.user:
if "g_state" in request.cookies:
request.response.delete_cookie("g_state", '/')
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):
......
......@@ -45,7 +45,8 @@ class CommonModel(object):
value = getattr(self, column.name)
if value or null:
if type(column.type)==DateTime:
values[column.name] = value.strftime(date_format)
if value:
values[column.name] = value.strftime(date_format)
else:
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!