Commit 362ea986 by aa.gusti

perbaikan tools dan initiaize

1 parent 7ef21837
...@@ -35,7 +35,7 @@ def run_migrations_offline(): ...@@ -35,7 +35,7 @@ def run_migrations_offline():
""" """
context.configure(url=settings['sqlalchemy.url'], context.configure(url=settings['sqlalchemy.url'],
version_table='alembic_pbb_pelayanan') version_table='alembic_base')
with context.begin_transaction(): with context.begin_transaction():
context.run_migrations() context.run_migrations()
...@@ -54,8 +54,8 @@ def run_migrations_online(): ...@@ -54,8 +54,8 @@ def run_migrations_online():
connection=connection, connection=connection,
target_metadata=target_metadata, target_metadata=target_metadata,
helpers=helpers, helpers=helpers,
version_table='alembic_pbb_pelayanan', version_table='alembic_base',
version_table_schema='pbb' version_table_schema='public'
) )
try: try:
with context.begin_transaction(): with context.begin_transaction():
......
...@@ -2,7 +2,8 @@ from datetime import datetime ...@@ -2,7 +2,8 @@ from datetime import datetime
import sqlalchemy as sa import sqlalchemy as sa
import ziggurat_foundations.models import ziggurat_foundations.models
from pyramid.security import (Allow, Authenticated, ALL_PERMISSIONS) # from pyramid.security import (Allow, Authenticated, ALL_PERMISSIONS)
from pyramid.authorization import (Allow, Authenticated, ALL_PERMISSIONS)
from sqlalchemy import ( from sqlalchemy import (
Column, Integer, DateTime, ForeignKey, String, SmallInteger, func) Column, Integer, DateTime, ForeignKey, String, SmallInteger, func)
from sqlalchemy.ext.hybrid import hybrid_property from sqlalchemy.ext.hybrid import hybrid_property
......
...@@ -116,13 +116,13 @@ def restore_csv(table, filename, get_file_func=get_file, db_session=None): ...@@ -116,13 +116,13 @@ def restore_csv(table, filename, get_file_func=get_file, db_session=None):
# sperti salah route url asalkan kode msh sama # sperti salah route url asalkan kode msh sama
def append_csv(table, filename, keys, get_file_func=get_file, def append_csv(table, filename, keys, get_file_func=get_file,
db_session=DBSession, update_exist=False): db_session=DBSession, update_exist=False):
print(table, filename)
with get_file_func(filename) as f: with get_file_func(filename) as f:
reader = csv.DictReader(f) reader = csv.DictReader(f)
filter_ = dict() filter_ = dict()
foreigns = dict() foreigns = dict()
is_first = True is_first = True
fmap = dict() fmap = dict()
print(f, reader)
for cf in reader: for cf in reader:
if is_first: if is_first:
is_first = False is_first = False
...@@ -136,9 +136,19 @@ def append_csv(table, filename, keys, get_file_func=get_file, ...@@ -136,9 +136,19 @@ def append_csv(table, filename, keys, get_file_func=get_file,
raise e raise e
fname_orig = t[0] fname_orig = t[0]
schema="public"
if t[1:]: if t[1:]:
foreign_table, foreign_field = t[1].split('.') t_array = t[1].split('.')
foreign_table = Table(foreign_table, Base.metadata, autoload=True) if len(t_array)==2:
foreign_table=t_array[0]
foreign_field = t_array[1]
else:
schema=t_array[0]
foreign_table=t_array[1]
foreign_field = t_array[2]
foreign_table = Table(foreign_table, Base.metadata, autoload=True,
schema=schema)
foreign_field = getattr(foreign_table.c, foreign_field) foreign_field = getattr(foreign_table.c, foreign_field)
foreigns[fname] = (foreign_table, foreign_field) foreigns[fname] = (foreign_table, foreign_field)
...@@ -151,7 +161,6 @@ def append_csv(table, filename, keys, get_file_func=get_file, ...@@ -151,7 +161,6 @@ def append_csv(table, filename, keys, get_file_func=get_file,
if fname in foreigns: if fname in foreigns:
foreign_table, foreign_field = foreigns[fname] foreign_table, foreign_field = foreigns[fname]
value = cf[fname] value = cf[fname]
vala = value
sql = select([foreign_table]).where(foreign_field == value) sql = select([foreign_table]).where(foreign_field == value)
q = Base.metadata.bind.execute(sql) q = Base.metadata.bind.execute(sql)
row = q.fetchone() row = q.fetchone()
...@@ -174,7 +183,6 @@ def append_csv(table, filename, keys, get_file_func=get_file, ...@@ -174,7 +183,6 @@ def append_csv(table, filename, keys, get_file_func=get_file,
for fname in cf: for fname in cf:
if not fname: if not fname:
continue continue
fname_orig = fmap[fname] fname_orig = fmap[fname]
val = data[fname_orig] val = data[fname_orig]
if not val: if not val:
...@@ -183,7 +191,6 @@ def append_csv(table, filename, keys, get_file_func=get_file, ...@@ -183,7 +191,6 @@ def append_csv(table, filename, keys, get_file_func=get_file,
user = True user = True
password = val password = val
else: else:
print(fname_orig)
setattr(row, fname_orig, val) setattr(row, fname_orig, val)
db_session.add(row) db_session.add(row)
...@@ -195,10 +202,8 @@ def append_csv(table, filename, keys, get_file_func=get_file, ...@@ -195,10 +202,8 @@ def append_csv(table, filename, keys, get_file_func=get_file,
db_session.add(row) db_session.add(row)
db_session.flush() db_session.flush()
transaction.commit() # diperlukan commit per record khususnya untuk yang internal link transaction.commit() # diperlukan commit per record khususnya untuk yang internal link
def ask_password(name): def ask_password(name):
while True: while True:
pass1 = getpass('Tulis password untuk {}: '.format(name)) pass1 = getpass('Tulis password untuk {}: '.format(name))
......
...@@ -55,11 +55,11 @@ def renew_token(user_device): ...@@ -55,11 +55,11 @@ def renew_token(user_device):
def get_user_device(request, user): def get_user_device(request, user):
user_device = UserDeviceModel.query() \ user_device = UserDeviceModel.query() \
.filter_by(user_id=user.id, .filter_by(user_id=user.id,
kode=request.headers.environ["HTTP_USER_AGENT"]).first() kode=request.environ["HTTP_USER_AGENT"]).first()
if not user_device: if not user_device:
user_device = UserDeviceModel() user_device = UserDeviceModel()
user_device.user_id = user.id user_device.user_id = user.id
user_device.kode = request.headers.environ["HTTP_USER_AGENT"] user_device.kode = request.environ["HTTP_USER_AGENT"]
user_device.token = get_random_string(32) user_device.token = get_random_string(32)
DBSession.add(user_device) DBSession.add(user_device)
DBSession.flush() DBSession.flush()
......
from .. import log from .. import log
log.warning("opensipkd.base.buttons depreciated use opensipkd.tools.buttons")
from opensipkd.tools.buttons import * from opensipkd.tools.buttons import *
log.warning("opensipkd.base.buttons depreciated use opensipkd.tools.buttons")
from .. import log from .. import log
from opensipkd.tools.captcha import *
log.warning("opensipkd.base.captcha depreciated use opensipkd.tools.captcha") log.warning("opensipkd.base.captcha depreciated use opensipkd.tools.captcha")
# from ...tools.captcha import * # from ...tools.captcha import *
\ No newline at end of file \ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!