Commit 09de39e2 by aa.gusti

penambahan company

1 parent a30218b3
......@@ -21,6 +21,8 @@ def upgrade():
helpers = context.opts['helpers']
if not helpers.table_has_column('users', 'partner_id'):
op.add_column('users', sa.Column('partner_id', sa.Integer))
if not helpers.table_has_column('users', 'company_id'):
op.add_column('users', sa.Column('company_id', sa.Integer))
if not helpers.table_has_column('partner', 'company_id'):
op.add_column('partner', sa.Column('company_id', sa.Integer))
......
......@@ -26,6 +26,7 @@ class Departemen(Base, NamaModel):
level_id = Column(SmallInteger)
children = relationship(
"Departemen", backref=backref('parent', remote_side=[id]))
company_id = Column(Integer)
def get_parents(self, start=False):
allparents = []
......
......@@ -73,6 +73,7 @@ class User(UserMixin, BaseModel, CommonModel, Base):
default=datetime.utcnow)
api_key = Column(String(256))
partner_id = Column(Integer) #, ForeignKey(Partner.id))
company_id = Column(Integer) #, ForeignKey(Partner.id))
#partners = relationship(Partner, backref=backref('users'))
def _get_password(self):
......
......@@ -113,9 +113,10 @@ class BaseView(object):
self.table = ""
def route_list(self, msg=None, error=""):
if msg:
self.ses.flash(msg, error)
return HTTPFound(location=self.req.route_url(self.list_route))
def form_validator(self, form, value):
pass
......@@ -221,6 +222,7 @@ class BaseView(object):
request = self.req
q = self.query_id()
row = q.first()
if not row:
return self.id_not_found()
if request.POST:
......@@ -235,8 +237,11 @@ class BaseView(object):
return dict(form=form.render(readonly=True), scripts=self.form_scripts)
def query_id(self):
return DBSession.query(self.table).filter_by(
q = DBSession.query(self.table).filter_by(
id=self.req.matchdict['id'])
if self.req.user.company_id:
q = q.filter_by(company_id=self.req.user.company_id)
return q
@colander.deferred
......
......@@ -2,17 +2,14 @@ import json
import colander
from deform import (widget, Form, ValidationFailure, )
from opensipkd.base.models import ResProvinsi, ResDati2, ResDesa
from opensipkd.tools.buttons import btn_close, btn_cancel, btn_save
from pyramid.view import (view_config, )
from .kecamatan import kecamatan_widget
from opensipkd.base.models import ResProvinsi, ResDati2, ResDesa
from .partner_base import PartnerSchema
from ..models import DBSession, ResCompany, ResKecamatan, Partner
from ..views import ColumnDT, DataTables, BaseView
# from opensipkd.base.views import partner
SESS_ADD_FAILED = 'Tambah pemda gagal'
SESS_EDIT_FAILED = 'Edit pemda gagal'
......@@ -141,12 +138,16 @@ class ViewCompany(BaseView):
ColumnDT(ResCompany.kode, mData='kode'),
ColumnDT(ResCompany.nama, mData='nama'), ]
query = DBSession.query().select_from(ResCompany)
if request.user.company_id:
query = query.filter_by(id=request.user.company_id)
row_table = DataTables(request.GET, query, columns)
return row_table.output_result()
@view_config(route_name='company-add',
renderer='templates/form_input.pt', permission='company')
def view_add(self):
if self.req.user.company_id:
return self.route_list("Hak Akses Terbatas", "error")
return super(ViewCompany, self).view_add()
########
......@@ -199,3 +200,10 @@ class ViewCompany(BaseView):
row = self.save(values, self.req.user, row)
return row
def query_id(self):
q = DBSession.query(self.table).filter_by(
id=self.req.matchdict['id'])
if self.req.user.company_id:
q = q.filter_by(id=self.req.user.company_id)
return q
\ No newline at end of file
......@@ -7,7 +7,6 @@ from datetime import datetime
import colander
from deform import (Form, widget, ValidationFailure, )
from deform.widget import AutocompleteInputWidget
# from opensipkd.base.models import DepartemenUser
from pyramid.httpexceptions import (HTTPFound, )
from pyramid.view import (view_config, )
from sqlalchemy import func
......@@ -15,9 +14,10 @@ from sqlalchemy.orm import aliased
from opensipkd.tools import (get_ext, get_random_string, get_settings)
from opensipkd.tools.buttons import btn_cancel, btn_save, btn_delete, btn_close
from .company import company_widget
from .upload import AddSchema as UploadSchema
from .. import renderer
from ..models import DBSession, Departemen, Partner, PartnerDepartemen
from ..models import DBSession, Departemen, Partner, PartnerDepartemen, ResCompany
from ..views import ColumnDT, DataTables, BaseView
SESS_ADD_FAILED = 'Tambah departemen gagal'
......@@ -63,6 +63,10 @@ class AddSchema(colander.Schema):
alamat = colander.SchemaNode(colander.String(), missing=colander.drop,
oid="alamat")
company_id = colander.SchemaNode(colander.Integer(),
widget=company_widget,
missing=colander.drop,
oid="company_id")
status = colander.SchemaNode(colander.Boolean(), oid="status")
......@@ -74,6 +78,9 @@ class AddSchema(colander.Schema):
values=f"{request._host}/departemen/hon/act"),
oid="parent_nm",
title="Induk", )
if request.user.company_id:
self["company_id"].widget = widget.HiddenWidget()
self["company_id"].default = request.user.company_id
class EditSchema(AddSchema):
......@@ -124,6 +131,7 @@ class ViewDepartemen(BaseView):
self.form_params = dict(scripts="")
self.list_url = 'departemen'
self.list_route = 'departemen'
self.table = Departemen
########
# List #
......@@ -142,21 +150,22 @@ class ViewDepartemen(BaseView):
if 'id' in form.request.matchdict:
uid = form.request.matchdict['id']
q = DBSession.query(Departemen).filter_by(id=uid)
urusan = q.first()
current = q.first()
else:
urusan = None
current = None
q = Departemen.query_kode(value['kode'])
found = q.first()
if urusan:
if found and found.id != urusan.id:
found = Departemen.query_kode(value['kode']). \
filter_by(company_id=value["company_id"]).first()
if current:
if found and found.id != current.id:
err_kode()
elif found:
err_kode()
found = Departemen.query_nama(value['nama']).first()
if urusan:
if found and found.id != urusan.id:
found = Departemen.query_nama(value['nama']). \
filter_by(company_id=value["company_id"]).first()
if current:
if found and found.id != current.id:
err_nama()
elif found:
err_nama()
......@@ -200,16 +209,18 @@ class ViewDepartemen(BaseView):
request = self.req
if 'id' in request.matchdict:
values['id'] = request.matchdict['id']
values["company_id"] = request.user.company_id
row = self.save(values, request.user, row)
request.session.flash(
"Departemen {nama} sudah disimpan.".format(nama=row.nama))
def route_list(self, ):
return HTTPFound(location=self.req.route_url(self.list_route))
# def route_list(self, ):
# return HTTPFound(location=self.req.route_url(self.list_route))
def get_form(self, class_form, row=None, buttons=(btn_save, btn_cancel)):
schema = class_form(validator=self.form_validator)
schema = schema.bind(request=self.req)
schema = schema.bind(request=self.req,
company_list=ResCompany.get_list())
schema.request = self.req
if row:
schema.deserialize(row)
......@@ -220,14 +231,14 @@ class ViewDepartemen(BaseView):
del self.req.session[session_name]
return r
def query_id(self):
return DBSession.query(Departemen).filter_by(
id=self.req.matchdict['id'])
# def query_id(self):
# return DBSession.query(Departemen).filter_by(
# id=self.req.matchdict['id'])
def id_not_found(self):
msg = 'Departemen ID %s Tidak Ditemukan.' % self.req.matchdict['id']
self.req.session.flash(msg, 'error')
return self.route_list()
# def id_not_found(self):
# msg = 'Departemen ID %s Tidak Ditemukan.' % self.req.matchdict['id']
# self.req.session.flash(msg, 'error')
# return self.route_list()
@view_config(route_name='departemen-view',
renderer='templates/form_input.pt', permission='departemen')
......@@ -270,6 +281,8 @@ class ViewDepartemen(BaseView):
ColumnDT(Departemen.level_id, mData='level_id'), ]
query = DBSession.query().select_from(Departemen).outerjoin(
dep_alias, Departemen.parent_id == dep_alias.id)
if self.req.user.company_id:
query = query.filter(Departemen.company_id == self.req.user.company_id)
row_table = DataTables(request.GET, query, columns)
return row_table.output_result()
......@@ -280,6 +293,8 @@ class ViewDepartemen(BaseView):
Departemen.nama.ilike('%%%s%%' % term)) \
.order_by(
Departemen.nama)
if self.req.user.company_id:
q = q.filter(Departemen.company_id == self.req.user.company_id)
rows = q.all()
r = []
for k in rows:
......@@ -296,6 +311,8 @@ class ViewDepartemen(BaseView):
Departemen.kode) \
.ilike('%%%s%%' % term)) \
.order_by(Departemen.nama)
if self.req.user.company_id:
q = q.filter(Departemen.company_id == self.req.user.company_id)
rows = q.all()
r = []
for k in rows:
......@@ -314,6 +331,8 @@ class ViewDepartemen(BaseView):
'%%%s%%' %
term)).order_by(
Departemen.nama)
if self.req.user.company_id:
q = q.filter(Departemen.company_id == self.req.user.company_id)
if int(level_id) > 0:
q = q.filter(Departemen.level_id == int(level_id))
if request.user.id > 1 and not request.has_permission(
......@@ -349,6 +368,8 @@ class ViewDepartemen(BaseView):
'%%%s%%' %
term)).order_by(
Departemen.nama)
if self.req.user.company_id:
q = q.filter(Departemen.company_id == self.req.user.company_id)
if int(level_id) > 0:
q = q.filter(Departemen.level_id == int(level_id))
......
# from ..tools import row2dict, xls_reader
from datetime import datetime
import colander
......@@ -7,26 +6,22 @@ from deform import (
widget,
ValidationFailure,
)
from opensipkd.base.models.common import ResCompany
from opensipkd.base.models import User, ResProvinsi, ResDati2, ResKecamatan, ResDesa
from opensipkd.tools.buttons import btn_save, btn_cancel, btn_delete
from pyramid.httpexceptions import (
HTTPFound,
)
from pyramid.view import (
view_config,
)
from opensipkd.tools.buttons import btn_save, btn_cancel, btn_delete
from .dati2 import dati2_widget
from .desa import desa_widget
from .kecamatan import kecamatan_widget
from opensipkd.base.models import (
User, ResProvinsi, ResDati2, ResKecamatan, ResDesa)
from opensipkd.base.models.common import ResCompany
from .company import company_widget
from .partner_base import PartnerSchema
from .provinsi import provinsi_widget
from ..models import DBSession
from ..models import Partner
from ..views import ColumnDT, DataTables, BaseView
from .company import company_widget
SESS_ADD_FAILED = 'Tambah partner gagal'
SESS_EDIT_FAILED = 'Edit partner gagal'
......@@ -47,6 +42,12 @@ class AddSchema(PartnerSchema):
oid="company_id",
title="Company")
def after_bind(self, schema, kwargs):
request = kwargs["request"]
if request.user.company_id:
self["company_id"].widget = widget.HiddenWidget()
self["company_id"].default = request.user.company_id
class EditSchema(AddSchema):
id = colander.SchemaNode(colander.String(),
......@@ -81,6 +82,8 @@ class ViewPartner(BaseView):
ColumnDT(Partner.status, mData='status'),
]
query = DBSession.query().select_from(Partner)
if self.req.user.company_id:
query = query.filter(Partner.company_id == self.req.user.company_id)
row_table = DataTables(request.GET, query, columns)
return row_table.output_result()
......
......@@ -6,7 +6,7 @@ from pyramid.view import (view_config, )
from sqlalchemy import or_
from sqlalchemy.orm import aliased
from ..models import DBSession as PartnerDBSession, DBSession
from ..models import DBSession as PartnerDBSession, DBSession, ResCompany
from ..models import Departemen, Jabatan
from ..models import Partner, PartnerDepartemen
from opensipkd.tools import dmy, date_from_str
......@@ -169,7 +169,7 @@ class ViewPartner(BaseView):
{'title': "Nama", 'data': "nama"},
{'title': "Unit Kerja", 'data': "departemen"},
{'title': "Jabatan", 'data': "jabatan"},
{'title': "Jenis Jabatan", 'data': "jenis"},
{'title': "Pemda", 'data': "jenis"},
{'title': "Mulai", 'data': "mulai"},
{'title': "Selesai", 'data': "selesai"}, ]
self.list_buttons = 'btn_view, btn_add, btn_edit, btn_delete, ' \
......@@ -277,19 +277,22 @@ class ViewPartner(BaseView):
ColumnDT(Partner.nama, mData='nama'),
ColumnDT(Departemen.nama, mData='departemen'),
ColumnDT(Jabatan.nama, mData='jabatan'),
ColumnDT(Jabatan.jenis, mData='jenis'),
ColumnDT(ResCompany.nama, mData='jenis'),
ColumnDT(struktural.nama, mData='struktural_nm'),
ColumnDT(PartnerDepartemen.mulai, mData='mulai'),
ColumnDT(PartnerDepartemen.selesai, mData='selesai'),
]
query = PartnerDBSession.query().select_from(PartnerDepartemen) \
.outerjoin(Departemen, PartnerDepartemen.departemen_id == Departemen.id) \
q = PartnerDBSession.query().select_from(PartnerDepartemen) \
.join(Departemen, PartnerDepartemen.departemen_id == Departemen.id) \
.outerjoin(ResCompany, Departemen.company_id == ResCompany.id) \
.outerjoin(Partner, Partner.id == PartnerDepartemen.partner_id) \
.outerjoin(Jabatan, (PartnerDepartemen.jabatan_id == Jabatan.id)) \
.outerjoin(struktural, (PartnerDepartemen.jabatan_id == struktural.id)) \
.order_by(Partner.nama)
if self.req.user.company_id:
q = q.filter(Departemen.company_id == self.req.user.company_id)
row_table = DataTables(request.GET, q, columns)
row_table = DataTables(request.GET, query, columns)
return row_table.output_result()
elif url_dict['act'] == 'hon_departemen':
......@@ -305,6 +308,9 @@ class ViewPartner(BaseView):
filter(PartnerDepartemen.departemen_id == ses['departemen_id']). \
filter(or_(Jabatan.kode == '101', Jabatan.kode == '102')). \
order_by(Partner.nama)
if self.req.user.company_id:
q = q.filter(Departemen.company_id == self.req.user.company_id)
rows = q.all()
r = []
keys = ('id', 'value', 'nik', 'nama', 'jabatan_id', 'jabatan_nm')
......@@ -327,6 +333,8 @@ class ViewPartner(BaseView):
filter(Partner.nama.ilike('%%%s%%' % term)). \
filter(PartnerDepartemen.departemen_id == ses['departemen_id']). \
order_by(Partner.nama)
if self.req.user.company_id:
q = q.filter(Departemen.company_id == self.req.user.company_id)
rows = q.all()
r = []
keys = ('id', 'value', 'nik', 'nama', 'jabatan_id', 'jabatan_nm')
......@@ -349,6 +357,8 @@ class ViewPartner(BaseView):
filter(or_(Jabatan.kode == '101', Jabatan.kode == '102', Jabatan.kode == '103', Jabatan.kode ==
'104')). \
order_by(Partner.nama)
if self.req.user.company_id:
q = q.filter(Departemen.company_id == self.req.user.company_id)
rows = q.all()
r = []
keys = ('id', 'value', 'nik', 'nama', 'jabatan_id', 'jabatan_nm')
......@@ -362,6 +372,8 @@ class ViewPartner(BaseView):
q = DBSession.query(Jabatan.id, Jabatan.kode, Jabatan.nama, Jabatan.jenis). \
filter(Jabatan.nama.ilike('%%%s%%' % term)). \
order_by(Jabatan.nama)
if self.req.user.company_id:
q = q.filter(Departemen.company_id == self.req.user.company_id)
rows = q.all()
r = []
for k in rows:
......
......@@ -4,18 +4,19 @@ import re
import colander
from datatables import (ColumnDT, DataTables, )
from deform import (Form, widget, ValidationFailure, Button, )
from opensipkd.tools import create_now
from opensipkd.tools.buttons import btn_cancel, btn_save, btn_close
from opensipkd.tools.report import open_rml_row, csv_response, open_rml_pdf, pdf_response
from pyramid.httpexceptions import (HTTPFound, HTTPNotFound, )
from pyramid.i18n import TranslationStringFactory
from pyramid.view import view_config
from sqlalchemy import (func, or_, )
from ziggurat_foundations.models.services.user import UserService
from .company import company_widget
from .user_login import (
regenerate_security_code, send_email_security_code, generate_api_key, )
from ..models import (DBSession, User, Group, UserGroup, )
from opensipkd.tools import create_now
from opensipkd.tools.buttons import btn_cancel, btn_save, btn_view, btn_close
from opensipkd.tools.report import open_rml_row, csv_response, open_rml_pdf, pdf_response
from ..models import (DBSession, User, Group, UserGroup, ResCompany, )
_ = TranslationStringFactory('user')
......@@ -130,7 +131,6 @@ def form_validator(form, value):
pass
# save_user ngambil dari base lama
def save_user(values, user, row=None):
if not row:
row = User()
......@@ -158,21 +158,10 @@ class AddSchema(colander.Schema):
password = colander.SchemaNode(
colander.String(), widget=widget.CheckedPasswordWidget(),
missing=colander.drop)
# retype_password = colander.SchemaNode(
# colander.String(), widget=widget.PasswordWidget(),
# missing=colander.drop, title=_('Ulangi kata kunci'))
# class AddSchema2(AddSchema):
# id_dept_asal = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('ID Dept Asal'), oid='id_dept_asal',
# widget=widget.HiddenWidget())
# dept_asal = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('Departemen Asal'), oid='dept_asal')
# id_dept_pad = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('ID Dept PAD'), oid='id_dept_pad', widget=widget.HiddenWidget())
# dept_pad = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('Departemen PAD'), oid='dept_pad')
company_id = colander.SchemaNode(
colander.Integer(), widget=company_widget,
title="Company",
missing=colander.drop)
class EditSchema(AddSchema):
......@@ -180,18 +169,6 @@ class EditSchema(AddSchema):
colander.String(), widget=status_widget, title=_('Status'))
# class EditSchema2(EditSchema):
# id_dept_asal = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('ID Dept Asal'), oid='id_dept_asal',
# widget=widget.HiddenWidget())
# dept_asal = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('Departemen Asal'), oid='dept_asal')
# id_dept_pad = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('ID Dept PAD'), oid='id_dept_pad', widget=widget.HiddenWidget())
# dept_pad = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('Departemen PAD'), oid='dept_pad')
def get_group_list():
r = []
q = DBSession.query(Group).order_by(Group.group_name)
......@@ -204,7 +181,7 @@ def get_group_list():
def get_form(request, class_form, user=None, buttons=(btn_save, btn_cancel)):
status_list = (
('1', _('Active')),
('0', _('Inactive')))
('0', _('Archived')))
if user and user.api_key:
api_key_list = (
('', _(user.api_key)),
......@@ -217,7 +194,9 @@ def get_form(request, class_form, user=None, buttons=(btn_save, btn_cancel)):
group_list = get_group_list()
schema = schema.bind(
status_list=status_list, group_list=group_list, user=user,
api_key_list=api_key_list)
api_key_list=api_key_list,
company_list=ResCompany.get_list()
)
return Form(schema, buttons=buttons)
......@@ -241,6 +220,8 @@ def insert(request, values):
user.email = values['email'].lower()
user.user_name = re.sub(' ', '', values['user_name']) # .lower()
user.security_code_date = create_now()
company_id = request.user.company_id or values["company_id"]
user.company_id = company_id
remain = regenerate_security_code(user)
if 'is_api_key' in values:
user.api_key = generate_api_key()
......@@ -255,12 +236,6 @@ def insert(request, values):
ug.group_id = gid
DBSession.add(ug)
add_member_count(gid)
# if 'opensipkd.webr.models' in get_modules():
# from opensipkd.webr.models import UserWebr
# userwebr = UserWebr()
# userwebr.from_dict(values)
# DBSession.add(userwebr)
# DBSession.flush()
return user, remain
......@@ -305,9 +280,6 @@ def view_add(request):
return HTTPFound(location=request.route_url('user'))
########
# Edit #
########
def user_group_set(user):
q = DBSession.query(UserGroup).filter_by(user_id=user.id)
r = []
......@@ -317,7 +289,6 @@ def user_group_set(user):
def update(request, user, values):
fnames = ['email', 'user_name']
user.email = values['email'].lower()
user.user_name = re.sub(' ', '', values['user_name']) # .lower())
if user.id != request.user.id:
......@@ -329,6 +300,8 @@ def update(request, user, values):
user.api_key = generate_api_key()
if 'password' in values:
UserService.set_password(user, values['password'])
company_id = request.user.company_id or values["company_id"]
user.company_id = company_id
DBSession.add(user)
existing = user_group_set(user)
unused = existing - values['groups']
......@@ -345,15 +318,6 @@ def update(request, user, values):
ug.group_id = gid
DBSession.add(ug)
add_member_count(gid)
# if 'opensipkd.webr.models' in get_modules():
# from opensipkd.webr.models import UserWebr
# q_webr = DBSession.query(UserWebr).filter_by(user_id=user.id).first()
# if q_webr:
# userwebr = UserWebr()
# values['id'] = q_webr.id
# userwebr.from_dict(values)
# DBSession.add(userwebr)
# DBSession.flush()
@view_config(
......@@ -361,13 +325,12 @@ def update(request, user, values):
permission='user-edit')
def view_edit(request):
q = DBSession.query(User).filter_by(id=request.matchdict['id'])
if request.user.company_id:
q = q.filter_by(company_id=request.user.company_id)
user = q.first()
if not user:
return HTTPNotFound()
if user.id == request.user.id:
# if 'opensipkd.webr.models' in get_modules():
# form = get_form(request, AddSchema2, user)
# else:
form = get_form(request, AddSchema, user)
else:
# if 'opensipkd.webr.models' in get_modules():
......@@ -401,6 +364,8 @@ def view_edit(request):
permission='user-view')
def view_view(request):
q = DBSession.query(User).filter_by(id=request.matchdict['id'])
if request.user.company_id:
q = q.filter_by(company_id=request.user.company_id)
user = q.first()
if not user:
return HTTPNotFound()
......@@ -415,29 +380,16 @@ def view_view(request):
d['groups'] = user_group_set(user)
resp['form'] = form.render(appstruct=d, readonly=True)
return resp
# if 'save' not in request.POST:
# return HTTPFound(location=request.route_url('user'))
# items = request.POST.items()
# try:
# c = form.validate(items)
# except ValidationFailure:
# resp['form'] = form.render()
# return resp
# update(request, user, dict(c.items()))
# data = dict(username=user.user_name)
# ts = _('user-updated', default='${username} profile updated', mapping=data)
# request.session.flash(ts)
return HTTPFound(location=request.route_url('user'))
##########
# Delete #
##########
@view_config(
route_name='user-delete', renderer='templates/user/delete.pt',
permission='user-edit')
def view_delete(request):
q = DBSession.query(User).filter_by(id=request.matchdict['id'])
if request.user.company_id:
q = q.filter_by(company_id=request.user.company_id)
user = q.first()
if not user:
return HTTPNotFound()
......@@ -458,25 +410,14 @@ def view_delete(request):
default='User ${email} ID ${uid} has been deleted',
mapping=data)
q.delete()
# if 'opensipkd.webr.models' in get_modules():
# from opensipkd.webr.models import UserWebr
# q_webr = DBSession.query(UserWebr).filter_by(user_id=user.id)
# userwebr = q_webr.first()
# if userwebr:
# q_webr.delete()
request.session.flash(ts)
return HTTPFound(location=request.route_url('user'))
##########
# Action #
##########
@view_config(
route_name='user-act', renderer='json', permission='user-view')
def view_act(request):
ses = request.session
req = request
params = req.params
url_dict = req.matchdict
if url_dict['act'] == 'grid':
columns = [
......@@ -490,38 +431,11 @@ def view_act(request):
mData='registered'),
]
query = DBSession.query().select_from(User)
rowTable = DataTables(req.GET, query, columns)
return rowTable.output_result()
elif url_dict['act'] == 'hon':
term = 'term' in params and params['term'] or ''
rows = DBSession.query(User.id, User.user_name, User.email.label('value')) \
.filter(User.id > 1,
or_(User.email.ilike('%%%s%%' % term),
User.user_name.ilike('%%%s%%' % term))
).all()
r = []
for k in rows:
d = dict(id=k[0],
value=k[1] + '(' + k[2] + ')')
r.append(d)
return r
elif url_dict['act'] == 'hom':
term = 'term' in params and params['term'] or ''
rows = DBSession.query(User.id, User.email
).filter(User.id != '1',
User.id != '2',
User.email.ilike('%%%s%%' % term)
).all()
r = []
for k in rows:
d = dict(id=k[0],
value=k[1],
kode=k[1],
nama=k[2])
r.append(d)
return r
if request.user.company_id:
query = query.filter(User.company_id == request.user.company_id)
row_table = DataTables(req.GET, query, columns)
return row_table.output_result()
elif url_dict['act'] == 'csv':
query = query_register()
......@@ -538,6 +452,7 @@ def view_act(request):
}
return csv_response(request, value, filename)
elif url_dict['act'] == 'pdf':
# todo ganti rml jadi openoffice
query = query_register()
_here = os.path.dirname(__file__) # get current folder -> views
path = os.path.dirname(_here) # mundur 1 level
......@@ -554,29 +469,7 @@ def view_act(request):
address=request.address)
return pdf_response(request, pdf, filename)
# elif url_dict['act'] == 'hon_dept':
# term = 'term' in params and params['term'] or ''
# id_dept_asal = 'id_dept_asal' in params and params['id_dept_asal'] or 0
# q = DBSession.query(Departemen.id, Departemen.nama). \
# filter(Departemen.status == 1,
# # Departemen.level_id==4,
# Departemen.nama.ilike('%%%s%%' % term))
# rows = q.all()
# r = []
# for k in rows:
# d = dict(id=k.id,
# value=k.nama,
# # kode = k.kode,
# nama=k.nama,
# # level_id = k.level_id
# )
# r.append(d)
# return r
#######
# RPT #
#######
def query_register():
return DBSession.query(User.user_name, User.email,
func.to_char(User.registered_date, "DD-MM-YYYY").label("registered_date")).order_by(
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!