Skip to content

Commit 48d9756

Browse files
committed
blob funciona
Signed-off-by: lucasew <[email protected]>
1 parent 0384c52 commit 48d9756

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

piton/flask-app-builder/app/models.py

+3
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ class VersionedFileStorage(Model):
6161
blob_id = Column(ForeignKey(DataBlob.hash))
6262
blob: Mapped['DataBlob'] = relationship('DataBlob', back_populates='usages')
6363

64+
def size(self):
65+
return len(self.blob.data)
66+
6467
def download(self):
6568
return Markup(
6669
'<a target="_blank" href="'

piton/flask-app-builder/app/views.py

+14-10
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,16 @@ class VersionedFileStorage(ModelView):
2828
'name': "Nome do arquivo",
2929
'version': 'Versão do arquivo',
3030
'blob': 'Arquivo',
31+
'size': 'Tamanho',
3132
'blob_id': 'SHA256'
3233
}
3334

3435

3536
add_columns = ['file']
3637
edit_columns = ['name', 'file']
37-
list_columns = ['name', 'version', 'download']
38+
list_columns = ['name', 'version', 'size', 'download']
3839
show_fieldsets = [
39-
('Dados do arquivo', {'fields': ['name', 'version', 'download', 'blob_id']})
40+
('Dados do arquivo', {'fields': ['name', 'version', 'size', 'download', 'blob_id']})
4041
]
4142

4243
@expose("/download/<pk>")
@@ -47,6 +48,15 @@ def download(self, pk):
4748
response.headers['Content-Disposition'] = f"attachment; filename={item.name}"
4849
return response
4950

51+
def _get_blob(self, data):
52+
item = models.DataBlob(data=data)
53+
try:
54+
self.datamodel.add(item)
55+
self.datamodel.commit()
56+
except Exception as e:
57+
print(e)
58+
return self.datamodel.session.get(models.DataBlob, item.hash)
59+
5060
def _add(self): # https://github.com/dpgaspar/Flask-AppBuilder/blob/fab9013003a41c4e80da04f072201a8c7cc99187/flask_appbuilder/baseviews.py#L1208
5161
is_valid_form = True
5262
get_filter_args(self._filters, disallow_if_not_in_search=False)
@@ -68,14 +78,10 @@ def _add(self): # https://github.com/dpgaspar/Flask-AppBuilder/blob/fab9013003a4
6878
# print('data', dir(data))
6979
# print('data', data.filename)
7080
# print('data', data.stream, type(data.stream))
71-
7281
item.name = "" if 'name' not in form else form.name.data
7382
if item.name == "":
7483
item.name = file.filename
75-
item.blob = models.DataBlob(
76-
data=file
77-
)
78-
84+
item.blob = self._get_blob(file)
7985
self.pre_add(item)
8086
except Exception as e:
8187
flash(str(e), "danger")
@@ -114,9 +120,7 @@ def _edit(self, pk): # https://github.com/dpgaspar/Flask-AppBuilder/blob/fab9013
114120
print('item_id a', item.id)
115121
item = self.datamodel.obj()
116122
print('item_id b', item.id)
117-
item.blob = models.DataBlob(
118-
data=file
119-
)
123+
item.blob = self._get_blob(file)
120124
old_name = item.name
121125
item.name = "" if 'name' not in form else form.name.data
122126
if item.name == "":

0 commit comments

Comments
 (0)