Skip to content
Snippets Groups Projects
Commit a80ba140 authored by Florian Spreckelsen's avatar Florian Spreckelsen
Browse files

Merge branch 'f-fix-zip-files' into 'dev'

Fix zip file export

See merge request !146
parents 15fb9792 5c67ca28
No related branches found
No related tags found
2 merge requests!147Release 0.15.1,!146Fix zip file export
Pipeline #59156 passed
...@@ -66,12 +66,12 @@ test-server-side-scripting: ...@@ -66,12 +66,12 @@ test-server-side-scripting:
# Build a docker image in which tests for this repository can run # Build a docker image in which tests for this repository can run
build-testenv: build-testenv:
tags: [ cached-dind ] tags: [ cached-dind ]
image: docker:19.03 image: docker:27.3.1
stage: setup stage: setup
timeout: 3 h timeout: 3 h
only: # only:
- web # - web
- schedules # - schedules
script: script:
- cd test/docker - cd test/docker
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
......
...@@ -16,6 +16,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ...@@ -16,6 +16,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### ### Fixed ###
- [#254](https://gitlab.com/linkahead/linkahead-webui/-/issues/254) "Download files referenced in the table" failed
### Security ### ### Security ###
### Documentation ### ### Documentation ###
......
...@@ -32,7 +32,7 @@ from zipfile import ZipFile ...@@ -32,7 +32,7 @@ from zipfile import ZipFile
import linkahead as db import linkahead as db
import pandas as pd import pandas as pd
from linkaheadadvancedtools.serverside import helper from caosadvancedtools.serverside import helper
from linkahead import LinkAheadException, ConsistencyError, EntityDoesNotExistError from linkahead import LinkAheadException, ConsistencyError, EntityDoesNotExistError
...@@ -71,9 +71,7 @@ def collect_files_in_zip(ids, table): ...@@ -71,9 +71,7 @@ def collect_files_in_zip(ids, table):
# download and add all files # download and add all files
for file_id in ids: for file_id in ids:
try: try:
tmp = db.execute_query("FIND FILE WITH ID={a:}".format( tmp = db.get_entity_by_id(file_id, role="FILE")
a=file_id),
unique=True)
except EntityDoesNotExistError as e: except EntityDoesNotExistError as e:
# TODO # TODO
# Current behavior: script terminates with error if just one # Current behavior: script terminates with error if just one
...@@ -81,14 +79,14 @@ def collect_files_in_zip(ids, table): ...@@ -81,14 +79,14 @@ def collect_files_in_zip(ids, table):
# Desired behavior: The script should go on with the other # Desired behavior: The script should go on with the other
# ids, but the user should be informed about the missing files. # ids, but the user should be informed about the missing files.
# How should we do this? # How should we do this?
logger = logging.getLogger("linkaheadadvancedtools") logger = logging.getLogger("caosadvancedtools")
logger.error("Did not find Entity with ID={}.".format( logger.error("Did not find File with ID={}.".format(
file_id)) file_id))
raise e raise e
savename = nc.get_unique_savename(os.path.basename(tmp.path)) savename = nc.get_unique_savename(os.path.basename(tmp.path))
val_file = helper.get_file_via_download( val_file = helper.get_file_via_download(
tmp, logger=logging.getLogger("linkaheadadvancedtools")) tmp, logger=logging.getLogger("caosadvancedtools"))
zf.write(val_file, savename) zf.write(val_file, savename)
......
...@@ -35,8 +35,8 @@ from datetime import datetime ...@@ -35,8 +35,8 @@ from datetime import datetime
import linkahead as db import linkahead as db
import pandas as pd import pandas as pd
from linkaheadadvancedtools.serverside.helper import get_argument_parser from caosadvancedtools.serverside.helper import get_argument_parser
from linkaheadadvancedtools.serverside.logging import configure_server_side_logging from caosadvancedtools.serverside.logging import configure_server_side_logging
MAXIMUMFILESIZE = 1e8 MAXIMUMFILESIZE = 1e8
VALID_ENDINGS = [".csv", ".tsv", ".xls", ".xlsx"] VALID_ENDINGS = [".csv", ".tsv", ".xls", ".xlsx"]
...@@ -135,7 +135,7 @@ if __name__ == "__main__": ...@@ -135,7 +135,7 @@ if __name__ == "__main__":
args = parser.parse_args() args = parser.parse_args()
debug_file = configure_server_side_logging() debug_file = configure_server_side_logging()
logger = logging.getLogger("linkaheadadvancedtools") logger = logging.getLogger("caosadvancedtools")
db.configure_connection(auth_token=args.auth_token) db.configure_connection(auth_token=args.auth_token)
entity_id = args.filename entity_id = args.filename
......
FROM debian:11 FROM debian:12
ADD node_gpg.asc /etc/apt/ ADD node_gpg.asc /etc/apt/
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y gnupg ca-certificates\ && apt-get install -y gnupg ca-certificates\
...@@ -12,14 +12,15 @@ RUN apt-get update \ ...@@ -12,14 +12,15 @@ RUN apt-get update \
nodejs npm \ nodejs npm \
&& apt-get install -f && apt-get install -f
RUN pip3 install pylint pytest RUN pip3 install --break-system-packages pylint pytest
RUN pip3 install --break-system-packages sphinx-js sphinx-autoapi recommonmark sphinx-rtd-theme
RUN pip3 install --break-system-packages pandas
# TODO rename to linkahead # TODO rename to linkahead
# RUN pip3 install caosdb>=0.7.4 RUN pip3 install --break-system-packages git+https://gitlab.com/caosdb/caosdb-pylib.git@dev
RUN pip3 install git+https://gitlab.com/caosdb/caosdb-pylib.git@f-linkahead-rename
RUN pip3 install pandas
# TODO rename to linkahead # TODO rename to linkahead
RUN pip3 install git+https://gitlab.com/caosdb/caosdb-advanced-user-tools.git@f-linkahead-rename RUN pip3 install --break-system-packages git+https://gitlab.com/caosdb/caosdb-advanced-user-tools.git@dev
# For automatic documentation # For automatic documentation
# RUN npm install -g jsdoc # RUN npm install -g jsdoc
# RUN npm install -g jsdoc-sphinx # RUN npm install -g jsdoc-sphinx
RUN pip3 install sphinx-js sphinx-autoapi recommonmark sphinx-rtd-theme
#!/usr/bin/env python3
# encoding: utf-8
#
# This file is a part of the LinkAhead Project.
#
# Copyright (C) 2024 IndiScale GmbH <info@indiscale.com>
# Copyright (C) 2024 Daniel Hornung <d.hornung@indiscale.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
import os
import unittest
import linkahead as db
from linkahead.common.models import _parse_single_xml_element
from lxml import etree
from zip_files import (collect_files_in_zip)
class ZipTest(unittest.TestCase):
pass
../../../src/server_side_scripting/ext_file_download/zip_files.py
\ No newline at end of file
linkahead
# TODO rename to linkahead # TODO rename to linkahead
caosdb
caosadvancedtools caosadvancedtools
pandas pandas
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment