#______________model__________________#
def get_download_url(file):
return f"download/{file}"
db.define_table('documents',
Field('document_date', type='date', label='Document Date', required=True),
Field('document_title', type='string', label='Document Title', required=True),
Field('document_file', 'upload', label='Document', autodelete=True,
required=True, uploadfolder=settings.UPLOAD_PATH, download_url=get_download_url),
Field('document_file_name', type='string', label='Document File Name', required=True),
Field('memo', type='text', label='Memo'),
auth.signature,
)
#________________controller_____________#
#API to Add or Update a document record
@action("add_edit_document/<id:int>", method="POST")
@action.uses(session)
@action.requires(user_in(session))
@action.uses(db)
def add_edit_document(id):
updated=0
inserted_id=-1
status="error"
code=500
message="<p>Problem encountered.</p>"
try:
table = db.documents
if id and id>0:
updated=db(
table.id==id).update(**request.json)
status="success"
message= "<p>Document record updated successfully.</p>"
db.commit()
code=200
else:
inserted_id = table.insert(**request.json)
if inserted_id and inserted_id>0:
status="success"
message= "<p>Document record created successfully.</p>"
code=200
db.commit()
else:
message += '<p>Unable to create a new document record</p>'
db.rollback()
except Exception as e:
print(e)
message += str(os.sys.exc_info()[:2])
return dict(status=status, code=code, message=message, inserted_id=inserted_id, updated=updated)