penambahan user area

1 parent 9bd78910
...@@ -24,6 +24,7 @@ pyramid.includes = ...@@ -24,6 +24,7 @@ pyramid.includes =
pyramid_debugtoolbar pyramid_debugtoolbar
opensipkd.pbb.models opensipkd.pbb.models
opensipkd.pbb.esppt opensipkd.pbb.esppt
opensipkd.pbb.monitoring
session.type = ext:database session.type = ext:database
...@@ -40,38 +41,37 @@ localization = English_Australia.1252 ...@@ -40,38 +41,37 @@ localization = English_Australia.1252
# Base Configuration # Base Configuration
temp_files = C:\tmp temp_files = C:\tmp
partner_doc = C:\\tmp\\docs\\partner\\ partner_doc = C:\\tmp\\docs\\partner\\
;home_tpl = opensipkd.samsat.jabar.views:templates/login.pt
;login_tpl = opensipkd.samsat.jabar.views:templates/login.pt
login_captcha = 0
# Registrasi User # Registrasi User
;reg_form =
allow_register = 1 allow_register = 1
reg_form = reg_form =
reg_id_card = 1 reg_id_card = 1
reg_captcha = 1 reg_captcha = 1
reg_verify = 1 reg_verify = 1
;reg_form = # MAIL
login_tpl =
login_captcha = 0
;login_tpl = opensipkd.samsat.jabar.views:templates/login.pt
;PBB
; pbb.url = postgresql://aagusti:a@localhost:5432/demo2
pbb.url = oracle://PBB:A@10.8.50.62/simpbb
lib_dir = C:\Users\aagus\Project\pbb\instantclient_11_2
pbb_esppt_files = C:\tmp\pbb_esppt_files
pbb_esppt_mirror.url =
pbb_esppt_bsre.url = bapenda:!&hfZZR6g@https://esign-service.cirebonkab.go.id/api/sign/pdf@3175101408750004:A4gusti08**&%%
mail.host = smtp.gmail.com mail.host = smtp.gmail.com
mail.port = 465 mail.port = 465
mail.ssl = True mail.ssl = True
mail.tls = True mail.tls = True
; mail.port = 587
; mail.ssl = true
; mail.starttls = true
mail.username = opensipkd@gmail.com mail.username = opensipkd@gmail.com
mail.password = ajmyoksxeiprmtyc mail.password = ajmyoksxeiprmtyc
mail.sender_name = "openSIPKD" mail.sender_name = "openSIPKD"
;PBB
pbb.url = oracle://PBB:A@10.8.50.62/simpbb
pbbm.url =
lib_dir = C:\Users\aagus\Project\pbb\instantclient_11_2
pbb_esppt_files = C:\tmp\pbb_esppt_files
pbb_esppt_mirror.url =
pbb_esppt_bsre.url = bapenda:!&hfZZR6g@https://esign-service.cirebonkab.go.id/api/sign/pdf@3175101408750004:A4gusti08**&%%
pbb_pemda =
sig_url =
map_center =
;static_files = %(here)s/../files ;static_files = %(here)s/../files
;company = Opensipkd ;company = Opensipkd
;ibukota = Bekasi ;ibukota = Bekasi
...@@ -93,7 +93,7 @@ mail.sender_name = "openSIPKD" ...@@ -93,7 +93,7 @@ mail.sender_name = "openSIPKD"
;modules = ;modules =
menus = login:Login menus = login:Login
/pbb/esppt:ESPPT /pbb/esppt:ESPPT
; five:Five /pbbm:PBB-MONITORING
;app_name = GAJI ASN ;app_name = GAJI ASN
;change_unit = False ;change_unit = False
......
...@@ -248,7 +248,7 @@ def get_config(settings): ...@@ -248,7 +248,7 @@ def get_config(settings):
# config.add_request_method(disable_responsive, 'disable_responsive', # config.add_request_method(disable_responsive, 'disable_responsive',
# reify=True) # reify=True)
# config.add_request_method(_get_ini, 'get_ini', reify=True) # config.add_request_method(_get_ini, 'get_ini', reify=True)
# 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_csrf_token, 'get_csrf_token', reify=True) # config.add_request_method(get_csrf_token, 'get_csrf_token', reify=True)
# # Penambahan Module Auto Generate Menu # # Penambahan Module Auto Generate Menu
...@@ -324,7 +324,7 @@ def main(global_config, **settings): ...@@ -324,7 +324,7 @@ def main(global_config, **settings):
BASE_CLASS.route_from_list(config) BASE_CLASS.route_from_list(config)
BASE_CLASS.static_view(config, settings=settings) BASE_CLASS.static_view(config, settings=settings)
config.scan() config.scan()
_logging.debug(config) # _logging.debug(config)
return config.make_wsgi_app() return config.make_wsgi_app()
...@@ -562,7 +562,7 @@ def add_global(event): ...@@ -562,7 +562,7 @@ def add_global(event):
# event['split'] = split # event['split'] = split
# event['allow_register'] = allow_register # event['allow_register'] = allow_register
# event['change_unit'] = change_unit # event['change_unit'] = change_unit
# event['get_params'] = get_params event['get_params'] = get_params_
# event['get_urls'] = get_urls # event['get_urls'] = get_urls
# event['get_csrf_token'] = get_csrf_token # event['get_csrf_token'] = get_csrf_token
# event['get_base_menus'] = BASE_CLASS.get_menus # event['get_base_menus'] = BASE_CLASS.get_menus
...@@ -571,8 +571,8 @@ def add_global(event): ...@@ -571,8 +571,8 @@ def add_global(event):
# # event['get_module_menus'] = get_module_menus # # event['get_module_menus'] = get_module_menus
# # event['get_module_submenus'] = get_module_submenus # # event['get_module_submenus'] = get_module_submenus
# # def get_params(request, params, alternate=None, settings=None): def get_params_(params, alternate=None, settings=None):
# # return get_params(params, alternate, settings) return get_params(params, alternate, settings)
# def get_urls(url): # def get_urls(url):
# home = get_params('_host', "") # home = get_params('_host', "")
......
...@@ -4,3 +4,5 @@ from .base import * ...@@ -4,3 +4,5 @@ from .base import *
from .users import * from .users import *
from .wilayah import * from .wilayah import *
from .partner import * from .partner import *
from .targets import *
from .user_area import *
from datetime import datetime
from sqlalchemy import (
Column,
Integer,
BigInteger,
UniqueConstraint,
String,
func,
)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
relationship,
backref
)
from . import NamaModel, Base, DBSession
class Targets(Base, NamaModel):
__tablename__ = 'targets'
__table_args__ = {'extend_existing': True}
tahun = Column(Integer, nullable=False)
jenis = Column(Integer, nullable=False)
m01 = Column(BigInteger, nullable=False)
m02 = Column(BigInteger, nullable=False)
m03 = Column(BigInteger, nullable=False)
m04 = Column(BigInteger, nullable=False)
m05 = Column(BigInteger, nullable=False)
m06 = Column(BigInteger, nullable=False)
m07 = Column(BigInteger, nullable=False)
m08 = Column(BigInteger, nullable=False)
m09 = Column(BigInteger, nullable=False)
m10 = Column(BigInteger, nullable=False)
m11 = Column(BigInteger, nullable=False)
m12 = Column(BigInteger, nullable=False)
@classmethod
def query_jenis_sum(cls, tahun, jenis):
return DBSession.query(cls.tahun, cls.jenis,
func.sum(cls.m01).label('m01'), func.sum(cls.m02).label('m02'),
func.sum(cls.m03).label('m03'), func.sum(cls.m04).label('m04'),
func.sum(cls.m05).label('m05'), func.sum(cls.m06).label('m06'),
func.sum(cls.m06).label('m07'), func.sum(cls.m08).label('m08'),
func.sum(cls.m09).label('m09'), func.sum(cls.m10).label('m10'),
func.sum(cls.m11).label('m11'), func.sum(cls.m12).label('m12'),
). \
group_by(cls.tahun, cls.jenis, ). \
filter(cls.tahun == tahun, cls.jenis == jenis)
class TargetJenis(Base, NamaModel):
__tablename__ = 'target_jenis'
__table_args__ = {'extend_existing': True}
from . import Base, User, ResDesa, DefaultModel, UserGroup, Group
from sqlalchemy import ForeignKey, Integer, Column
from sqlalchemy.orm import relationship, backref
class UserArea(DefaultModel, Base):
__tablename__ = "user_area"
__table_args__ = {'extend_existing': True}
user_id = Column(Integer, ForeignKey(User.id))
desa_id = Column(Integer, ForeignKey(ResDesa.id))
desa = relationship(ResDesa, backref=backref("user_area"))
user = relationship(User, backref=backref("user_area"))
def validator(self, values):
pass
@classmethod
def allow_area(cls, user_id, desa_id=None, desa_kd=None,
group_names=("Superuser", "pbbm-admin"), ):
user = UserGroup.query().filter(user_id == user_id).outerjoin(
Group, Group.id == UserGroup.group_id).filter(
Group.group_name.in_(group_names)).first()
if user and user.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()
@classmethod
def user_desa(cls, user_id):
return cls.query().filter(cls.user_id == user_id)
...@@ -55,9 +55,9 @@ class BaseView(object): ...@@ -55,9 +55,9 @@ class BaseView(object):
self.req = request self.req = request
self.ses = self.req.session self.ses = self.req.session
self.db_session = DBSession self.db_session = DBSession
# self.params = self.req.params self.params = self.req.params
# self.settings = get_settings() self.settings = get_settings()
# self.tahun = None self.tahun = None
# self.bulan = None # self.bulan = None
# self.posted = False # self.posted = False
# self.awal = None # self.awal = None
...@@ -124,24 +124,24 @@ class BaseView(object): ...@@ -124,24 +124,24 @@ class BaseView(object):
self.is_object = False self.is_object = False
# self.init_session(request) self.init_session(request)
# def init_session(self, request): def init_session(self, request):
# # if not request.user: # # if not request.user:
# if "g_state" in request.cookies: # if "g_state" in request.cookies:
# request.response.delete_cookie("g_state", '/') # 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)
# # self.dt_akhir = self.ses["dt_akhir"] if "dt_akhir" in self.ses else now # # self.dt_akhir = self.ses["dt_akhir"] if "dt_akhir" in self.ses else now
# # self.akhir = dmy(self.dt_akhir) # # self.akhir = dmy(self.dt_akhir)
# # self.ses["dt_awal"] = self.dt_awal # # self.ses["dt_awal"] = self.dt_awal
# # self.ses["dt_akhir"] = self.dt_akhir # # self.ses["dt_akhir"] = self.dt_akhir
# self.tahun = 'tahun' in self.ses and self.ses['tahun'] \ self.tahun = 'tahun' in self.ses and self.ses['tahun'] \
# or now.strftime('%Y') or now.strftime('%Y')
# self.tahun = 'tahun' in self.params and self.params['tahun'] or self.tahun self.tahun = 'tahun' in self.params and self.params['tahun'] or self.tahun
# self.ses['tahun'] = self.tahun self.ses['tahun'] = self.tahun
# self.bulan = 'bulan' in self.ses and self.ses['bulan'] \ # self.bulan = 'bulan' in self.ses and self.ses['bulan'] \
# or now.strftime('%m') # or now.strftime('%m')
......
import colander
from deform import widget
from pyramid.view import view_config
from . import BaseView
from ..models import ResDesa, User, UserArea
class ListSchema(colander.Schema):
id = colander.SchemaNode(
colander.Integer(),
title="Action"
)
user_name = colander.SchemaNode(
colander.String(),
field=User.user_name,
title="User"
)
desa_kd = colander.SchemaNode(
colander.String(),
field=ResDesa.kode)
desa_name = colander.SchemaNode(
colander.String(),
field=ResDesa.nama)
class AddSchema(colander.Schema):
user_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=User.get_list()),
oid="user_id",
title="User",
)
desa_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=ResDesa.get_list()),
oid="desa_id",
title="Kelurahan/Desa", )
class EditSchema(AddSchema):
id = colander.SchemaNode(colander.String(),
missing=colander.drop,
widget=widget.HiddenWidget(readonly=True))
class Views(BaseView):
def __init__(self, request):
super().__init__(request)
self.list_schema = ListSchema
self.add_schema = AddSchema
self.edit_schema = EditSchema
self.list_route = 'user-area'
self.table = UserArea
def list_join(self, query, **kwargs):
return query.outerjoin(ResDesa, ResDesa.id == self.table.desa_id) \
.outerjoin(User, User.id == self.table.user_id)
# @view_config(route_name='user-area', renderer='templates/table.pt',
# permission='user-view')
# def view_list(self, **kwargs):
# return super().view_list(**kwargs)
# @view_config(route_name='user-area-act', renderer='json',
# permission='user-view')
# def view_act(self):
# return super().view_act()
# @view_config(route_name='user-area-add', renderer='templates/form.pt',
# permission='user-edit')
# def view_add(self):
# return super().view_add()
# @view_config(route_name='user-area-view', renderer='templates/form.pt',
# permission='user-view')
# def view_view(self):
# return super().view_view()
# @view_config(route_name='user-area-delete', renderer='templates/form.pt',
# permission='user-edit')
# def view_delete(self):
# return super().view_delete()
# @view_config(route_name='user-area-edit', renderer='templates/form.pt',
# permission='user-edit')
# def view_edit(self):
# return super().view_edit()
...@@ -13,9 +13,6 @@ packages = ["opensipkd", "opensipkd.detable", "opensipkd.base"] ...@@ -13,9 +13,6 @@ packages = ["opensipkd", "opensipkd.detable", "opensipkd.base"]
[tool.mypy] [tool.mypy]
exclude = [ exclude = [
'bak', 'bak',
# 'report',
# 'external',
# 'developers',
] ]
show_error_codes = true show_error_codes = true
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!