Commit c1c0479e by aa.gusti

user departemen

1 parent 55152ca0
......@@ -58,7 +58,9 @@ renderer = ZPTRendererFactory(search_path)
Form.set_zpt_renderer(search_path)
main_title = 'openSIPKD'
titles = {}
static_route = [
]
# http://stackoverflow.com/questions/9845669/pyramid-inverse-to-add-notfound-viewappend-slash-true
# class RemoveSlashNotFoundViewFactory(object):
......
......@@ -5,5 +5,12 @@ routes = [
("user-area-delete", "/user/area/{id}/delete", "Hapus User Area"),
("user-area-view", "/user/area/{id}/view", "Lihat User Area"),
("user-area-act", "/user/area/{act}/act", "Action User Area"),
("user-area-upload", "/user/area/upload", "Upload User Area"),
("user-area-upload", "/user/area/upload", "Upload User Area"),
("user-departemen", "/user/departemen", "User Departemen"),
("user-departemen-add", "/user/departemen/add", "Tambah User Departemen"),
("user-departemen-edit", "/user/departemen/{id}/edit", "Edit User Departemen"),
("user-departemen-delete", "/user/departemen/{id}/delete", "Hapus User Departemen"),
("user-departemen-view", "/user/departemen/{id}/view", "Lihat User Departemen"),
("user-departemen-act", "/user/departemen/{act}/act", "Action User Departemen"),
("user-departemen-upload", "/user/departemen/upload", "Upload User Departemen"),
]
\ No newline at end of file
......@@ -558,16 +558,16 @@ class BaseView(object):
row.update_uid = user and user.id or None
row.from_dict(values)
if hasattr(row, "status"):
status = "status" in values and values["status"] or 0
log.debug(status)
try:
status = int(status)
except:
status = status and 1 or 0
log.debug(status)
row.status = status
# if hasattr(row, "status"):
# status = "status" in values and values["status"] or 0
# log.debug(status)
# try:
# status = int(status)
# except:
# status = status and 1 or 0
#
# log.debug(status)
# row.status = status
self.db_session.add(row)
self.db_session.flush()
return row
......@@ -577,7 +577,7 @@ class BaseView(object):
if k not in values:
if v:
values[k] = v
log.debug(values)
log.debug(f"Base save_request: {values}")
return self.save(values, self.req.user, row)
def id_not_found(self, **kwargs):
......@@ -599,17 +599,23 @@ class BaseView(object):
return None
def before_edit(self, form):
"""
Digunakan saat form edit ditampilkan
:param form:
:return: form
"""
return form
def view_edit(self, **kwargs):
request = self.req
row = self.query_id().first()
is_object = kwargs.get("is_object", False)
if not row:
return self.id_not_found(**kwargs)
if not self.bindings:
self.bindings = self.get_bindings(row)
form = self.get_form(self.edit_schema, **kwargs)
table = self.get_item_table(row)
resources = form.get_widget_resources()
......
......@@ -4,6 +4,7 @@
home request._host;
user_path ['user', 'user-add', 'user-edit', 'user-view', 'user-delete'];
user_area_path ['user-area', 'user-area-add', 'user-area-edit', 'user-area-view', 'user-area-delete'];
user_dep_path ['user-departemen', 'user-departemen-add', 'user-departemen-edit', 'user-departemen-view', 'user-departemen-delete'];
user_ext_path ['user-ext', 'user-ext-view', 'user-ext-delete'];
group_path ['group', 'group-add', 'group-edit', 'group-view', 'group-delete'];
param_path ['parameter', 'parameter-add', 'parameter-edit', 'parameter-view', 'parameter-delete'];
......@@ -165,6 +166,10 @@
tal:attributes="class request.matched_route.name in user_area_path and 'active'">
<a href="${home}/user/area">User Area</a>
</li>
<li tal:condition="has_permission(request, ['user-view', 'user-edit'])"
tal:attributes="class request.matched_route.name in user_dep_path and 'active'">
<a href="${home}/user/departemen">User Departemen</a>
</li>
<li tal:condition="has_permission(request, ['user-view', 'user-edit'])"
tal:attributes="class request.matched_route.name in user_ext_path and 'active'">
<a href="${home}/user/ext">External User</a>
......
......@@ -555,6 +555,8 @@ class BootStrapDateInputWidget(Widget):
)
default_options = (
("format", "yyyy-mm-dd"),
("zIndexOffset", "910"),
)
# ("selectMonths", True),
# ("selectYears", True),
......
......@@ -5,9 +5,9 @@
<p class="deform-readonly-true"
id="${oid}"
tal:condition="cstruct == true_val"
i18n:translate=""><i class="fas fa-check-square" aria-hidden="true"></i></p>
i18n:translate=""><i class="fas fa-check-square" aria-hidden="true" style="color:green;"></i></p>
<p class="deform-readonly-false"
id="${oid}"
tal:condition="cstruct != true_val"
i18n:translate=""><i class="fas fa-window-close" aria-hidden="true"></i></p>
i18n:translate=""><i class="fas fa-window-close" aria-hidden="true" style="color:red;"></i></p>
</div>
......@@ -17,9 +17,10 @@ class UserArea(DefaultModel, Base):
@classmethod
def allow_area(cls, user_id, desa_id=None, desa_kd=None,
group_names=("Superuser", "pbbm-admin"), ):
user = UserGroup.query().filter_by(user_id == user_id).outerjoin(
user = UserGroup.query().filter_by(user_id = user_id).outerjoin(
Group, Group.id == UserGroup.group_id).filter(
UserGroup.group_name._in(*group_names)).first()
Group.group_name._in(*group_names)).first()
if user and user.id:
return True
......
# from opensipkd.models import Base, User, Departemen, DefaultModel, UserGroup, Group
# from sqlalchemy import ForeignKey, Integer, Column
# from sqlalchemy.orm import relationship, backref
#
#
# class UserDepartemen(DefaultModel, Base):
# __tablename__ = "user_dep"
# __table_args__ = {'extend_existing': True}
# user_id = Column(Integer, ForeignKey(User.id))
# departemen_id = Column(Integer, ForeignKey(Departemen.id))
# allow_sub = Column(Boolean)
# departemen = relationship(Departemen, backref=backref("user_dep"))
# user = relationship(User, backref=backref("user_area"))
#
# def validator(self, values):
# pass
#
# @classmethod
# def _allowed(cls, kode):
# departemen=[]
# rows = cls.query().filter(cls.kode.ilike(f"{row.kode}%"))
# for row in rows.all():
# departemen.append(row.id)
# if row.allow_sub:
# departemen.extend(self._allowed(row.kode))
# return departemen
#
# @classmethod
# def allowed(cls, user_id):
# rows = cls.query().filter(cls.user_id==user_id)
# departemen = []
# for row in rows.all():
# departemen.append(departemen_id)
# if row.allow_sub:
# departemen.extend(cls._allowed(row.kode))
#
# return departemen
#
# @classmethod
# def allow_area(cls, user_id, departemen_id=None,
# group_names=("Superuser", "pbbm-admin"), ):
#
# if user and user.id:
# return True
#
# if not desa_id and not desa_kd:
# raise Exception("parameter desa_id atau desa_kd wajib dikirim")
#
# if desa_id:
# rs = cls.query().filter(cls.user_id == user_id, cls.desa_id == desa_id)
# if rs and rs.id:
# return True
# if desa_kd:
# rs = cls.query().filter(cls.user_id == user_id) \
# .outerjoin(ResDesa, ResDesa.id == cls.desa_id).filter(
# ResDesa.kode == desa_kd).first()
# if rs and rs.id:
# return True
#
# return False
#
# @classmethod
# def get_by_user_id(cls, user_id):
# return cls.query().filter_by(user_id=user_id).all()
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!