Updated all (I think functions using try / catch to user the decorator.

This commit is contained in:
Tanshu committed 2012-12-17 15:08:12 +05:30
1 parent 211b8cee2a
commit f9bd95733b
14 files changed
+59 -144

No files matched your search

@@ -1,3 +1,6 @@
from pyramid.response import Response
import transaction
class ValidationError(Exception):
def __init__(self, message, Errors=None):
self.message = message
@@ -8,3 +11,15 @@ class ValidationError(Exception):
self.Errors = Errors
def __str__(self):
return self.message
def TryCatchFunction(f):
def _decorator(self, *args, **kwargs):
try:
return f(self, *args, **kwargs)
except (ValidationError, ValueError, KeyError, AttributeError, TypeError) as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(str(ex)))
response.status_int = 500
return response
return _decorator
+3 -13
View File
@@ -6,7 +6,7 @@ import transaction
from brewman.models import DBSession
from brewman.models.master import CostCenter, Ledger, LedgerType, LedgerBase
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='account_list', renderer='brewman:templates/angular_base.mako', permission='Accounts')
@view_config(request_method='GET', route_name='account_id', renderer='brewman:templates/angular_base.mako',
@@ -18,23 +18,18 @@ def html(request):
@view_config(request_method='POST', route_name='api_account', renderer='json', permission='Accounts')
@TryCatchFunction
def save(request):
try:
item = Ledger(code=0, name=request.json_body['Name'], type=int(request.json_body['Type']),
is_active=request.json_body['IsActive'], is_reconcilable=request.json_body['IsReconcilable'],
costcenter_id=uuid.UUID(request.json_body['CostCenter']['CostCenterID'])).create()
transaction.commit()
return account_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_account_id', renderer='json', permission='Accounts')
@TryCatchFunction
def update(request):
try:
item = Ledger.by_id(uuid.UUID(request.matchdict['id']))
new_type = int(request.json_body['Type'])
if not item.type == new_type:
@@ -46,11 +41,6 @@ def update(request):
item.costcenter_id = uuid.UUID(request.json_body['CostCenter']['CostCenterID'])
transaction.commit()
return account_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='DELETE', route_name='api_account_id', renderer='json', permission='Accounts')
+3 -13
View File
@@ -7,7 +7,7 @@ from sqlalchemy import or_
import transaction
from brewman.models import DBSession
from brewman.models.master import AttendanceType, Employee
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
from brewman.models.voucher import Attendance
from brewman.views.fingerprint import get_prints
from brewman.views.services.session import session_period_start, session_period_finish, session_current_date
@@ -66,8 +66,8 @@ def attendance_date_report(date):
@view_config(request_method='POST', route_name='api_attendance_date', renderer='json', permission='Attendance')
@TryCatchFunction
def save(request):
try:
user_id = uuid.UUID(authenticated_userid(request))
date = request.matchdict.get('date', None)
date_object = datetime.datetime.strptime(date, '%d-%b-%Y')
@@ -81,11 +81,6 @@ def save(request):
attendance.create()
transaction.commit()
return attendance_date_report(date)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='GET', route_name='api_employee_attendance', renderer='json', permission='Attendance')
@@ -131,8 +126,8 @@ def employee_attendance(employee, start_date, finish_date):
@view_config(request_method='POST', route_name='api_employee_attendance_id', renderer='json', permission='Attendance')
@TryCatchFunction
def save_employee_attendance(request):
try:
start_date = None
finish_date = None
user_id = uuid.UUID(authenticated_userid(request))
@@ -152,11 +147,6 @@ def save_employee_attendance(request):
return {'StartDate': start_date, 'FinishDate': finish_date,
'Employee': {'LedgerID': employee.id, 'Name': employee.name},
'Body': employee_attendance(employee, start_date, finish_date)}
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
def daterange(start, stop, step=datetime.timedelta(days=1), inclusive=False):
+2 -7
View File
@@ -9,7 +9,7 @@ import transaction
from brewman.models import DBSession
from brewman.models.auth import User
from brewman.models.master import AttendanceType, Employee, Ledger
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
from brewman.models.voucher import Attendance, Voucher, VoucherType, Journal
from brewman.views.attendance import daterange
from brewman.views.services.session import session_period_start, session_period_finish, get_last_day, get_first_day
@@ -55,8 +55,8 @@ def attendance_record(start_date, finish_date):
@view_config(request_method='POST', route_name='api_credit_salary', renderer='json', permission='Attendance')
@TryCatchFunction
def credit_salary(request):
try:
user = User.by_id(uuid.UUID(authenticated_userid(request)))
month = datetime.datetime.strptime(request.json_body['Month'], '%d-%b-%Y')
@@ -70,11 +70,6 @@ def credit_salary(request):
DBSession.add(item)
transaction.commit()
return {'message': 'Salary Entry created'}
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
def salary_journals(start_date, finish_date):
+2 -7
View File
@@ -5,7 +5,7 @@ from pyramid.view import view_config
import transaction
from brewman.models.auth import Client
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(request_method='GET', route_name='client_list', renderer='brewman:templates/angular_base.mako',
@@ -15,17 +15,12 @@ def html(request):
@view_config(request_method='POST', route_name='api_client_id', renderer='json', permission='Clients')
@TryCatchFunction
def update(request):
try:
item = Client.by_id(uuid.UUID(request.matchdict.get['id']))
item.enabled = request.json_body['Enabled']
transaction.commit()
return {}
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='GET', route_name='api_client', request_param='list', renderer='json', permission='Clients')
+3 -13
View File
@@ -5,7 +5,7 @@ from pyramid.view import view_config
import transaction
from brewman.models import DBSession
from brewman.models.auth import Group, Role
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='group_list', renderer='brewman:templates/angular_base.mako', permission='Users')
@view_config(request_method='GET', route_name='group_id', renderer='brewman:templates/angular_base.mako',
@@ -17,34 +17,24 @@ def html(request):
@view_config(request_method='POST', route_name='api_group', renderer='json', permission='Users')
@TryCatchFunction
def save(request):
try:
group = Group(request.json_body['Name'])
DBSession.add(group)
add_permissions(group, request.json_body['Permissions'])
transaction.commit()
return group_info(group.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_group_id', renderer='json', permission='Users')
@TryCatchFunction
def update(request):
try:
id = request.matchdict.get('id', None)
group = Group.by_id(uuid.UUID(id))
group.name = request.json_body['Name']
add_permissions(group, request.json_body['Permissions'])
transaction.commit()
return group_info(group.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
def add_permissions(group, permissions):
+3 -13
View File
@@ -7,7 +7,7 @@ import transaction
from brewman.models import DBSession
from brewman.models.auth import User, Group
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='user_list', renderer='brewman:templates/angular_base.mako', permission='Users')
@view_config(request_method='GET', route_name='user_id', renderer='brewman:templates/angular_base.mako',
@@ -19,23 +19,18 @@ def html(request):
@view_config(request_method='POST', route_name='api_user', renderer='json', permission='Users')
@TryCatchFunction
def save(request):
try:
user = User(request.json_body['Name'], request.json_body['Password'], request.json_body['LockedOut'])
DBSession.add(user)
add_groups(user, request.json_body['Groups'])
transaction.commit()
return user_info(user.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_user_id', renderer='json', permission='Users')
@TryCatchFunction
def update(request):
try:
id = request.matchdict['id']
p = re.compile('^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$')
if p.match(id):
@@ -49,11 +44,6 @@ def update(request):
add_groups(user, request.json_body['Groups'])
transaction.commit()
return user_info(user.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
def add_groups(user, groups):
+3 -13
View File
@@ -6,7 +6,7 @@ import transaction
from brewman.models import DBSession
from brewman.models.master import CostCenter
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='cost_center_list', renderer='brewman:templates/angular_base.mako', permission='Authenticated')
@@ -19,31 +19,21 @@ def html(request):
@view_config(request_method='POST', route_name='api_cost_center', renderer='json', permission='Cost Centers')
@TryCatchFunction
def save(request):
try:
item = CostCenter(request.json_body['Name'])
DBSession.add(item)
transaction.commit()
return cost_center_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_cost_center_id', renderer='json', permission='Cost Centers')
@TryCatchFunction
def update(request):
try:
item = CostCenter.by_id(uuid.UUID(request.matchdict.get['id']))
item.name = request.json_body['Name']
transaction.commit()
return cost_center_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='DELETE', route_name='api_cost_center_id', renderer='json', permission='Cost Centers')
+3 -13
View File
@@ -6,7 +6,7 @@ from pyramid.view import view_config
import transaction
from brewman.models.master import CostCenter, Employee, LedgerBase
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='employee_list', renderer='brewman:templates/angular_base.mako', permission='Authenticated')
@view_config(request_method='GET', route_name='employee_id', renderer='brewman:templates/angular_base.mako',
@@ -20,8 +20,8 @@ def html(request):
@view_config(request_method='POST', route_name='api_employee', renderer='json', permission='Employees')
@TryCatchFunction
def save(request):
try:
is_active = request.json_body['IsActive']
joining_date = datetime.datetime.strptime(request.json_body['JoiningDate'], '%d-%b-%Y')
leaving_date = None if is_active else datetime.datetime.strptime(request.json_body['LeavingDate'],
@@ -34,16 +34,11 @@ def save(request):
joining_date, leaving_date).create()
transaction.commit()
return employee_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_employee_id', renderer='json', permission='Employees')
@TryCatchFunction
def update(request):
try:
item = Employee.by_id(uuid.UUID(request.matchdict['id']))
item.name = request.json_body['Name']
item.is_active = request.json_body['IsActive']
@@ -56,11 +51,6 @@ def update(request):
'%d-%b-%Y')
transaction.commit()
return employee_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='DELETE', route_name='api_employee_id', renderer='json', permission='Employees')
+5 -14
View File
@@ -6,7 +6,7 @@ from pyramid.view import view_config
import transaction
from brewman.models.master import Product, CostCenter, LedgerType, Ledger
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='product_list', renderer='brewman:templates/angular_base.mako', permission='Authenticated')
@view_config(request_method='GET', route_name='product_id', renderer='brewman:templates/angular_base.mako',
@@ -18,8 +18,8 @@ def html(request):
@view_config(request_method='POST', route_name='api_product', renderer='json', permission='Products')
@TryCatchFunction
def save(request):
try:
item = Product(0, request.json_body['Name'], request.json_body['Units'],
Decimal(request.json_body['Fraction']), request.json_body['FractionUnits'],
Decimal(request.json_body['Yeild']), request.json_body['ShowForPurchase'],
@@ -27,16 +27,11 @@ def save(request):
Decimal(request.json_body['Price']), request.json_body['Discontinued']).create()
transaction.commit()
return product_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_product_id', renderer='json', permission='Products')
@TryCatchFunction
def update(request):
try:
item = Product.by_id(uuid.UUID(request.matchdict.get['id']))
item.name = request.json_body['Name']
item.units = request.json_body['Units']
@@ -50,11 +45,6 @@ def update(request):
item.discontinued = request.json_body['Discontinued']
transaction.commit()
return product_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='DELETE', route_name='api_product_id', renderer='json', permission='Products')
@@ -93,7 +83,8 @@ def show_list(request):
return products
@view_config(request_method='GET', route_name='api_product', renderer='json', request_param='term', permission='Authenticated')
@view_config(request_method='GET', route_name='api_product', renderer='json', request_param='term',
permission='Authenticated')
def show_term(request):
filter = request.GET.get('term', None)
filter = filter if filter is not None and filter is not '' else None
+10 -16
View File
@@ -6,10 +6,11 @@ import transaction
from brewman.models import DBSession
from brewman.models.master import ProductGroup
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='product_group_list', renderer='brewman:templates/angular_base.mako', permission='Authenticated')
@view_config(route_name='product_group_list', renderer='brewman:templates/angular_base.mako',
permission='Authenticated')
@view_config(request_method='GET', route_name='product_group_id', renderer='brewman:templates/angular_base.mako',
permission='Product Groups')
@view_config(request_method='GET', route_name='product_group', renderer='brewman:templates/angular_base.mako',
@@ -19,31 +20,21 @@ def html(request):
@view_config(request_method='POST', route_name='api_product_group', renderer='json', permission='Product Groups')
@TryCatchFunction
def save(request):
try:
item = ProductGroup(request.json_body['Name'])
DBSession.add(item)
transaction.commit()
return product_group_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_product_group_id', renderer='json', permission='Product Groups')
@TryCatchFunction
def update(request):
try:
item = ProductGroup.by_id(uuid.UUID(request.matchdict.get['id']))
item.name = request.json_body['Name']
transaction.commit()
return product_group_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='DELETE', route_name='api_product_group_id', renderer='json', permission='Product Groups')
@@ -58,6 +49,7 @@ def delete(request):
response.status_int = 500
return response
@view_config(request_method='GET', route_name='api_product_group_id', renderer='json', permission='Product Groups')
def show_id(request):
return product_group_info(uuid.UUID(request.matchdict.get('id', None)))
@@ -68,12 +60,14 @@ def show_blank(request):
return product_group_info(None)
@view_config(request_method='GET', route_name='api_product_group', request_param='list', renderer='json', permission='Authenticated')
@view_config(request_method='GET', route_name='api_product_group', request_param='list', renderer='json',
permission='Authenticated')
def show_list(request):
list = ProductGroup.list()
product_groups = []
for item in list:
product_groups.append({'ProductGroupID': item.id, 'Name': item.name, 'Url': request.route_url('product_group_id', id=item.id)})
product_groups.append(
{'ProductGroupID': item.id, 'Name': item.name, 'Url': request.route_url('product_group_id', id=item.id)})
return product_groups
@@ -7,7 +7,7 @@ from brewman import groupfinder
from brewman.models import DBSession
from brewman.models.auth import User
from brewman.models.master import LedgerBase, CostCenter
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
from brewman.models.voucher import Voucher, VoucherType
from brewman.views.services.voucher.issue import issue_create_voucher, issue_update_voucher
from brewman.views.services.voucher.journal import journal_update_voucher, journal_create_voucher
@@ -48,19 +48,14 @@ def journal_get(request):
@view_config(request_method='POST', route_name='api_voucher_id', request_param='post', renderer='json', permission='Post Vouchers')
@TryCatchFunction
def voucher_post(request):
user = User.by_id(uuid.UUID(authenticated_userid(request)))
try:
voucher = Voucher.by_id(uuid.UUID(request.matchdict['id']))
voucher.posted = True
voucher.poster_id = user.id
transaction.commit()
return voucher_info(Voucher.by_id(voucher.id))
except (ValidationError, ValueError, KeyError, AttributeError) as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
def check_delete_permissions(request, voucher):
@@ -4,7 +4,7 @@ from pyramid.security import authenticated_userid
from pyramid.view import view_defaults, view_config
import transaction
from brewman.models.auth import User
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
from brewman.models.voucher import Voucher
from brewman.views.services.session import session_current_date_set
from brewman.views.services.voucher import voucher_info, journal_create_voucher, purchase_create_voucher, issue_create_voucher
@@ -54,8 +54,8 @@ class save_voucher(object):
def salary_deduction(self):
return self.save()
@TryCatchFunction
def save(self):
try:
if self.json['Type'] in ['Journal', 'Payment', 'Receipt']:
voucher = journal_create_voucher(self.json, self.user)
elif self.json['Type'] in ['Purchase']:
@@ -69,8 +69,3 @@ class save_voucher(object):
transaction.commit()
session_current_date_set(self.request, self.json['Date'])
return voucher_info(Voucher.by_id(voucher.id))
except (ValidationError, ValueError, KeyError, AttributeError) as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(str(ex)))
response.status_int = 500
return response
@@ -5,7 +5,7 @@ from pyramid.view import view_defaults, view_config
import transaction
from brewman import groupfinder
from brewman.models.auth import User
from brewman.models.validation_exception import ValidationError
from brewman.models.validation_exception import ValidationError, TryCatchFunction
from brewman.models.voucher import Voucher
from brewman.views.services.session import session_current_date_set
from brewman.views.services.voucher import voucher_info, issue_update_voucher, purchase_update_voucher, journal_update_voucher
@@ -69,10 +69,10 @@ class update_voucher(object):
def salary_deduction(self):
return self.update()
@TryCatchFunction
def update(self):
if self.error is not None:
return self.error
try:
if self.json['Type'] in ['Journal', 'Payment', 'Receipt']:
voucher = journal_update_voucher(self.voucher, self.json, self.user)
elif self.json['Type'] in ['Purchase']:
@@ -84,10 +84,5 @@ class update_voucher(object):
elif self.json['Type'] in ['Salary Deduction']:
voucher = salary_deduction_update_voucher(self.voucher, self.json, self.user)
transaction.commit()
session_current_date_set(self.request,self.json['Date'])
session_current_date_set(self.request, self.json['Date'])
return voucher_info(Voucher.by_id(voucher.id))
except (ValidationError, ValueError, KeyError, AttributeError) as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(str(ex)))
response.status_int = 500
return response