Commit 09f1ee33 by aagusti

perbaikan bug conflict form render

1 parent 8e3bd313
...@@ -422,6 +422,8 @@ def main(global_config, **settings): ...@@ -422,6 +422,8 @@ def main(global_config, **settings):
# config.add_request_method(get_params, 'get_params', reify=True) # config.add_request_method(get_params, 'get_params', reify=True)
# config.add_request_method(get_ini_params, 'get_ini', reify=True) # config.add_request_method(get_ini_params, 'get_ini', reify=True)
config.add_request_method(get_ini, 'get_ini', reify=True) config.add_request_method(get_ini, 'get_ini', reify=True)
path_dir = os.path.join(os.path.dirname(__file__),"../locale")
config.add_translation_dirs(path_dir)
config.add_static_view('static', 'opensipkd.base:static', config.add_static_view('static', 'opensipkd.base:static',
cache_max_age=3600) cache_max_age=3600)
config.add_static_view(partner_idcard_folder, config.add_static_view(partner_idcard_folder,
......
from datetime import datetime from datetime import datetime
from deform import ValidationFailure, Form, Button from deform import ValidationFailure, Form, Button
from icecream import ic
from opensipkd.models import flush, DBSession, Menus from opensipkd.models import flush, DBSession, Menus
from pyramid_rpc.jsonrpc import JsonRpcError from pyramid_rpc.jsonrpc import JsonRpcError
...@@ -15,14 +14,21 @@ class BaseApi(object): ...@@ -15,14 +14,21 @@ class BaseApi(object):
self.add_schema = {} self.add_schema = {}
self.buttons = () self.buttons = ()
self.data = {} self.data = {}
def make_response(self, resp, **kwargs):
code = kwargs.get("code")
message = kwargs.get("message")
if code: resp.update({"code":code})
if message:resp.update({"message":message})
return resp
def get_form(self, class_form, row=None, **kwargs): def get_form(self, class_form, row=None, **kwargs):
bindings = kwargs.get("bindings") bindings = kwargs.get("bindings")
validator = kwargs.get("validator") validator = kwargs.get("validator")
if "action" in kwargs: self.buttons = kwargs.get("buttons", self.buttons)
action = kwargs.get("action", "") if "url" in kwargs:
url = kwargs.get("url", "")
else: else:
action = self.url url = self.url
if validator: if validator:
schema = class_form(validator=validator) schema = class_form(validator=validator)
else: else:
...@@ -35,7 +41,7 @@ class BaseApi(object): ...@@ -35,7 +41,7 @@ class BaseApi(object):
if row: if row:
schema.deserialize(row) schema.deserialize(row)
return Form(schema, action=action, buttons=self.buttons) return Form(schema, url=url, buttons=self.buttons)
def validate_field(self, form): def validate_field(self, form):
resp = {} resp = {}
...@@ -52,9 +58,9 @@ class BaseApi(object): ...@@ -52,9 +58,9 @@ class BaseApi(object):
def get_menu_buttons(self, kode): def get_menu_buttons(self, kode):
qry = Menus.get(kode).order_by(Menus.order_id) qry = Menus.get(kode).order_by(Menus.order_id)
if self.request.user: if self.request.user:
qry = qry.filter_by(need_login=True) qry = qry.filter_by(need_login=1)
else: else:
qry = qry.filter_by(need_login=False) qry = qry.filter(Menus.need_login!=1)
buttons = [] buttons = []
for row in qry.all(): for row in qry.all():
...@@ -67,7 +73,7 @@ class BaseApi(object): ...@@ -67,7 +73,7 @@ class BaseApi(object):
continue continue
buttons.append(Button(row.kode, title=row.nama, type="button", buttons.append(Button(row.kode, title=row.nama, type="button",
value=row.kode, icon=row.icon)) value=row.url, icon=row.icon))
return tuple(buttons) return tuple(buttons)
def update_headers(self, headers): def update_headers(self, headers):
......
Your password has been changed. Please click the following link to recover:
${url}
This link will expire in ${minutes} hour.
If you did not request this, please recover it.
...@@ -20,6 +20,7 @@ Perubahan Mendasar dari fungsi login adalah: ...@@ -20,6 +20,7 @@ Perubahan Mendasar dari fungsi login adalah:
result object dari fungsi tersebut harus berupa class User() result object dari fungsi tersebut harus berupa class User()
""" """
import os import os
from datetime import timedelta
from importlib import import_module from importlib import import_module
import colander import colander
...@@ -418,15 +419,16 @@ def send_email_pending( ...@@ -418,15 +419,16 @@ def send_email_pending(
sending_mail(request, user, subject, body) sending_mail(request, user, subject, body)
def regenerate_security_code(user): def regenerate_security_code(user, hour=1.0):
hour = timedelta(float(hour) / 24.0)
age = security_code_age(user) age = security_code_age(user)
remain = one_hour - age remain = hour - age
if user.security_code and age < one_hour and remain > two_minutes: if user.security_code and age < hour and remain > two_minutes:
return remain return remain
UserService.regenerate_security_code(user) UserService.regenerate_security_code(user)
user.security_code_date = create_now() user.security_code_date = create_now()
DBSession.add(user) DBSession.add(user)
return one_hour return hour
@view_config(route_name='reset-password', @view_config(route_name='reset-password',
......
#
# Indonesian translations for PACKAGE package
# This file is distributed under the same license as the PACKAGE package.
# <aagusti@desktop-pa2epik.localdomain>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE 1.0\n"
"POT-Creation-Date: 2022-07-26 13:19+0700\n"
"PO-Revision-Date: 2022-07-26 13:24+0700\n"
"Last-Translator: <aagusti@desktop-pa2epik.localdomain>\n"
"Language-Team: Indonesian\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Lingua 4.15.0\n"
#. Default: {group_name} group has been added.
#: opensipkd/base/views/groups.py:112
msgid "group-added"
msgstr ""
#. Default: ${group_name} group profile updated
#: opensipkd/base/views/groups.py:115
msgid "group-updated"
msgstr ""
#. Default: {group_name} group has been deleted.
#: opensipkd/base/views/groups.py:138
msgid "group-deleted"
msgstr ""
#. Default: Group name ${group_name} already used by ID ${gid}
#: opensipkd/base/views/groups.py:173
msgid "group-name-already-used"
msgstr ""
#: opensipkd/base/views/register.py:57
msgid "Name"
msgstr "Nama"
#: opensipkd/base/views/register.py:61
msgid "Address"
msgstr "Alamat"
#: opensipkd/base/views/register.py:71
msgid "Mobile"
msgstr ""
#: opensipkd/base/views/register.py:75
msgid "E-mail"
msgstr ""
#: opensipkd/base/views/register.py:90
msgid "ID Number"
msgstr ""
#: opensipkd/base/views/register.py:96
msgid "ID Card"
msgstr ""
#: opensipkd/base/views/register.py:103
msgid "Captcha"
msgstr ""
#: opensipkd/base/views/register.py:108
#: opensipkd/base/views/widgets/checked_password.pt:16
msgid "Password"
msgstr ""
#. Default: ${email} berhasil ditambahkan tunggu hasil verifikasi data
#. Default: ${email} berhasil ditambahkan
#. Default: ${email} berhasil ditambahkan dan email untuk ubah kata kunci sudah
#. dikirim.
#: opensipkd/base/views/register.py:313 opensipkd/base/views/register.py:324
#: opensipkd/base/views/register.py:333 opensipkd/base/views/user.py:130
#: opensipkd/base/views/user_rpc.py:321
msgid "user-added"
msgstr ""
#: opensipkd/base/views/user.py:43
msgid "Active"
msgstr ""
#: opensipkd/base/views/user.py:44
msgid "Archived"
msgstr ""
#: opensipkd/base/views/user.py:48
msgid "Hapus"
msgstr ""
#: opensipkd/base/views/user.py:51
msgid "Tidak ada"
msgstr ""
#: opensipkd/base/views/user.py:52
msgid "Buatkan"
msgstr ""
#. Default: ${username} berhasil ditambahkan.
#: opensipkd/base/views/user.py:122
msgid "user-added-with-password"
msgstr ""
#. Default: User ${email} ID ${uid} has been deleted
#: opensipkd/base/views/user.py:192
msgid "user-deleted"
msgstr ""
#. Default: Email ${email} already used by user ID ${uid}
#. Default: Email ${email} already used by partner ID ${uid}
#: opensipkd/base/views/user.py:243 opensipkd/base/views/user_rpc.py:176
msgid "email-already-used"
msgstr ""
#: opensipkd/base/views/user.py:250
msgid "Invalid email format"
msgstr ""
#. Default: Only A-Z a-z, 0-9, and - characters are allowed
#: opensipkd/base/views/user.py:270
msgid "username-only-contain"
msgstr ""
#. Default: Only A-Z a-z or 0-9 at the start and end
#: opensipkd/base/views/user.py:276
msgid "username-first-end-alphanumeric"
msgstr ""
#. Default: Username ${username} already used by ID ${uid}
#: opensipkd/base/views/user.py:286
msgid "username-already-used"
msgstr ""
#: opensipkd/base/views/user.py:318 opensipkd/base/views/user_login.py:345
msgid "Email"
msgstr ""
#: opensipkd/base/views/user.py:320
msgid "Username"
msgstr ""
#: opensipkd/base/views/user.py:323
msgid "Group"
msgstr ""
#: opensipkd/base/views/user.py:325
msgid "API Key"
msgstr ""
#: opensipkd/base/views/user.py:338
msgid "Status"
msgstr ""
#: opensipkd/base/views/user_ext.py:16 opensipkd/base/views/user_ext.py:30
msgid "User Name"
msgstr ""
#: opensipkd/base/views/user_ext.py:17 opensipkd/base/views/user_ext.py:31
msgid "Provider"
msgstr ""
#: opensipkd/base/views/user_ext.py:18 opensipkd/base/views/user_ext.py:32
msgid "User ID"
msgstr ""
#: opensipkd/base/views/user_login.py:251
msgid "Old Password"
msgstr ""
#: opensipkd/base/views/user_login.py:275 opensipkd/base/views/__init__.py:113
msgid "Simpan"
msgstr ""
#: opensipkd/base/views/user_login.py:276
#: opensipkd/base/views/user_login.py:325
msgid "Batalkan"
msgstr ""
#: opensipkd/base/views/user_login.py:324
msgid "Buat ulang"
msgstr ""
#. Default: Enter your email address and we will send you a link to reset your
#. password.
#: opensipkd/base/views/user_login.py:346
msgid "email-reset-password"
msgstr ""
#: opensipkd/base/views/user_login.py:356
msgid "Invalid email"
msgstr ""
#: opensipkd/base/views/user_login.py:438
#: opensipkd/base/views/user_login.py:467
msgid "Reset password"
msgstr ""
#: opensipkd/base/views/user_login.py:440
msgid "Send password reset email"
msgstr ""
#: opensipkd/base/views/__init__.py:114
msgid "Batal"
msgstr ""
#. Default: Check your email for a link to reset your password. If it doesn’t
#. appear within a few minutes, check your spam folder. The reset password link
#. has been sent. Please check your email.
#: opensipkd/base/views/templates/reset-password-sent.pt:4
msgid "reset-password-link-sent"
msgstr ""
#: opensipkd/base/views/widgets/base_pbb_blok_kav_no.pt:11
#: opensipkd/base/views/widgets/base_wilayah.pt:11
msgid "Blok/Kav/No"
msgstr ""
#: opensipkd/base/views/widgets/base_pbb_blok_kav_no.pt:23
#: opensipkd/base/views/widgets/base_wilayah.pt:23
msgid "RT"
msgstr ""
#: opensipkd/base/views/widgets/base_pbb_blok_kav_no.pt:43
#: opensipkd/base/views/widgets/base_wilayah.pt:43
msgid "RW"
msgstr ""
#: opensipkd/base/views/widgets/checked_password.pt:27
msgid "Confirm Password"
msgstr ""
#: opensipkd/base/views/widgets/dateparts.pt:10
msgid "Year"
msgstr ""
#: opensipkd/base/views/widgets/dateparts.pt:19
msgid "Month"
msgstr ""
#: opensipkd/base/views/widgets/dateparts.pt:28
msgid "Day"
msgstr ""
#: opensipkd/base/views/widgets/datetimeinput.pt:9
msgid "Date"
msgstr ""
#: opensipkd/base/views/widgets/datetimeinput.pt:17
msgid "Time"
msgstr ""
#: opensipkd/base/views/widgets/form.pt:34
msgid "There was a problem with your submission"
msgstr ""
#: opensipkd/base/views/widgets/form.pt:35
msgid "Errors have been highlighted below"
msgstr ""
#: opensipkd/base/views/widgets/mapping.pt:13
#: opensipkd/base/views/widgets/mapping_accordion.pt:30
msgid "There was a problem with this section"
msgstr ""
#. Default: en
#: opensipkd/base/views/widgets/richtext.pt:30
msgid "language-code"
msgstr ""
#: opensipkd/base/views/widgets/sequence_item.pt:26
msgid "Reorder (via drag and drop)"
msgstr ""
#: opensipkd/base/views/widgets/sequence_item.pt:31
msgid "Remove"
msgstr ""
#: opensipkd/base/views/widgets/readonly/checkbox.pt:8
msgid "True"
msgstr ""
#: opensipkd/base/views/widgets/readonly/checkbox.pt:12
msgid "False"
msgstr ""
#: opensipkd/base/views/widgets/readonly/checked_password.pt:4
msgid "Password not displayed."
msgstr ""
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!