Commit 0a7163a5 by aa.gusti

perbaikan posisi pegawai

1 parent 1fc51a77
...@@ -367,7 +367,8 @@ def save_request(request, values, row=None): ...@@ -367,7 +367,8 @@ def save_request(request, values, row=None):
values['selesai'] = date_from_str(values['selesai']) values['selesai'] = date_from_str(values['selesai'])
else: else:
values['selesai'] = None values['selesai'] = None
query_struktural = PartnerDBSession.query(Jabatan.jenis).filter(Jabatan.id == values['jabatan_id']).first() query_struktural = DBSession.query(Jabatan.jenis).\
filter(Jabatan.id == values['jabatan_id']).scalar()
values['struktural_id'] = query_struktural values['struktural_id'] = query_struktural
row = save(values, request, row) row = save(values, request, row)
request.session.flash('Posisi Partner sudah disimpan.') request.session.flash('Posisi Partner sudah disimpan.')
......
...@@ -22,6 +22,7 @@ from ..views import ColumnDT, DataTables, BaseView ...@@ -22,6 +22,7 @@ from ..views import ColumnDT, DataTables, BaseView
SESS_ADD_FAILED = 'Tambah departemen gagal' SESS_ADD_FAILED = 'Tambah departemen gagal'
SESS_EDIT_FAILED = 'Edit departemen gagal' SESS_EDIT_FAILED = 'Edit departemen gagal'
def get_departemen_list(): def get_departemen_list():
r = [] r = []
q = DBSession.query(Departemen).order_by(Departemen.nama) q = DBSession.query(Departemen).order_by(Departemen.nama)
...@@ -30,11 +31,13 @@ def get_departemen_list(): ...@@ -30,11 +31,13 @@ def get_departemen_list():
r.append(g) r.append(g)
return r return r
@colander.deferred @colander.deferred
def departemen_widget(node, kw): def departemen_widget(node, kw):
values = kw.get('departemen_list', []) values = kw.get('departemen_list', [])
return widget.Select2Widget(values=values) return widget.Select2Widget(values=values)
class AddSchema(colander.Schema): class AddSchema(colander.Schema):
parent_id = colander.SchemaNode(colander.Integer(), parent_id = colander.SchemaNode(colander.Integer(),
widget=widget.HiddenWidget(), oid="parent_id", missing=colander.drop, ) widget=widget.HiddenWidget(), oid="parent_id", missing=colander.drop, )
...@@ -67,7 +70,8 @@ class AddSchema(colander.Schema): ...@@ -67,7 +70,8 @@ class AddSchema(colander.Schema):
self["parent_nm"] = colander.SchemaNode(colander.String(), self["parent_nm"] = colander.SchemaNode(colander.String(),
missing=colander.drop, missing=colander.drop,
widget=AutocompleteInputWidget(size=60, min_length=3, widget=AutocompleteInputWidget(size=60, min_length=3,
values=f"{request._host}/departemen/hon/act"), oid="parent_nm", values=f"{request._host}/departemen/hon/act"),
oid="parent_nm",
title="Induk", ) title="Induk", )
...@@ -249,10 +253,10 @@ class ViewDepartemen(BaseView): ...@@ -249,10 +253,10 @@ class ViewDepartemen(BaseView):
elif url_dict['act'] == 'hon': elif url_dict['act'] == 'hon':
term = 'term' in params and params['term'] or '' term = 'term' in params and params['term'] or ''
q = DBSession.query(Departemen).filter(Departemen.status == 1, q = DBSession.query(Departemen). \
Departemen.nama.ilike( filter(Departemen.status == 1,
'%%%s%%' % Departemen.nama.ilike('%%%s%%' % term)) \
term)).order_by( .order_by(
Departemen.nama) Departemen.nama)
rows = q.all() rows = q.all()
r = [] r = []
...@@ -264,13 +268,12 @@ class ViewDepartemen(BaseView): ...@@ -264,13 +268,12 @@ class ViewDepartemen(BaseView):
elif url_dict['act'] == 'honk': elif url_dict['act'] == 'honk':
term = 'term' in params and params['term'] or '' term = 'term' in params and params['term'] or ''
q = DBSession.query(Departemen).filter(Departemen.status == 1, q = DBSession.query(Departemen) \
func.concat(Departemen.nama, .filter(Departemen.status == 1,
';', func.concat(Departemen.nama, ';',
Departemen.kode).ilike( Departemen.kode) \
'%%%s%%' % .ilike('%%%s%%' % term)) \
term)).order_by( .order_by(Departemen.nama)
Departemen.nama)
rows = q.all() rows = q.all()
r = [] r = []
for k in rows: for k in rows:
......
import re import re
from datetime import datetime
from email.utils import parseaddr from email.utils import parseaddr
import transaction import transaction
...@@ -17,9 +18,8 @@ from .user import add_member_count ...@@ -17,9 +18,8 @@ from .user import add_member_count
from .user import save_user from .user import save_user
from .user_group import save as save_groups from .user_group import save as save_groups
from .. import get_params, log from .. import get_params, log
from ..models import DBSession, UserService from ..models import DBSession, UserService, Departemen
from ..models import ( from ..models import (User, Partner, Group, UserGroup, PartnerDepartemen)
User, Partner, Group, UserGroup)
from opensipkd.tools import create_now, get_settings from opensipkd.tools import create_now, get_settings
from opensipkd.tools.api import custom_error from opensipkd.tools.api import custom_error
from opensipkd.base.tools.api import ( from opensipkd.base.tools.api import (
...@@ -229,13 +229,27 @@ def login_(request, data): ...@@ -229,13 +229,27 @@ def login_(request, data):
for group in groups: for group in groups:
group = group.to_dict() group = group.to_dict()
group_data.append(dict(group_name=group['group_name'])) group_data.append(dict(group_name=group['group_name']))
now = datetime.now().date()
partner_dep = Departemen.query() \
.join(PartnerDepartemen, Departemen.id == PartnerDepartemen.departemen_id) \
.join(Partner, Partner.id == PartnerDepartemen.partner_id) \
.filter(Partner.email == row.email,
PartnerDepartemen.mulai <= now,
PartnerDepartemen.selesai >= now).first()
if partner_dep:
departemen = dict(id=partner_dep.id,
kode=partner_dep.kode,
nama=partner_dep.nama)
else:
departemen = None
result = dict(user_name=row.user_name, result = dict(user_name=row.user_name,
token=row.security_code, token=row.security_code,
nik=partner and partner.kode or '', nik=partner and partner.kode or '',
nama=partner and partner.nama or '', nama=partner and partner.nama or '',
is_pegawai=is_pegawai, is_pegawai=is_pegawai,
group=group_data) group=group_data,
departemens=departemen)
result = is_list and [result] or result result = is_list and [result] or result
return dict(data=result) return dict(data=result)
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!