download link for task order summary
This commit is contained in:
@@ -57,9 +57,13 @@ class TaskOrder(Base, mixins.TimestampsMixin):
|
||||
self.number, self.budget, self.end_date, self.id
|
||||
)
|
||||
|
||||
@property
|
||||
def portfolio_name(self):
|
||||
return self.workspace.name
|
||||
|
||||
def to_dictionary(self):
|
||||
return {
|
||||
"portfolio_name": self.workspace.name,
|
||||
"portfolio_name": self.portfolio_name,
|
||||
**{
|
||||
c.name: getattr(self, c.name)
|
||||
for c in self.__table__.columns
|
||||
|
@@ -3,3 +3,4 @@ from flask import Blueprint
|
||||
task_orders_bp = Blueprint("task_orders", __name__)
|
||||
|
||||
from . import new
|
||||
from . import index
|
||||
|
17
atst/routes/task_orders/index.py
Normal file
17
atst/routes/task_orders/index.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from flask import Response
|
||||
|
||||
from . import task_orders_bp
|
||||
from atst.domain.task_orders import TaskOrders
|
||||
from atst.utils.docx import Docx
|
||||
|
||||
|
||||
@task_orders_bp.route("/task_orders/download_summary/<task_order_id>")
|
||||
def download_summary(task_order_id):
|
||||
task_order = TaskOrders.get(task_order_id)
|
||||
byte_str = Docx.render(data=task_order.to_dictionary())
|
||||
filename = "{}.docx".format(task_order.portfolio_name)
|
||||
return Response(
|
||||
byte_str,
|
||||
headers={"Content-Disposition": "attachment; filename={}".format(filename)},
|
||||
mimetype="application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
)
|
@@ -42,4 +42,4 @@ class Docx:
|
||||
Docx._write(docx_template, docx_file, document)
|
||||
docx_file.close()
|
||||
byte_str.seek(0)
|
||||
return byte_str.read()
|
||||
return byte_str
|
||||
|
Reference in New Issue
Block a user