Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • caosdb/src/caosdb-webui
1 result
Show changes
Commits on Source (20)
......@@ -66,12 +66,12 @@ test-server-side-scripting:
# Build a docker image in which tests for this repository can run
build-testenv:
tags: [ cached-dind ]
image: docker:19.03
image: docker:27.3.1
stage: setup
timeout: 3 h
only:
- web
- schedules
# only:
# - web
# - schedules
script:
- cd test/docker
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
......@@ -93,7 +93,8 @@ pages_prepare: &pages_prepare
refs:
- /^release-.*$/i
script:
- npm install jsdoc jsdoc-sphinx
- npm install -g jsdoc
- npm install @indiscale/jsdoc-sphinx
- echo "Deploying"
- make doc
- rm -r public || true ; cp -r build/doc/html public
......
......@@ -20,6 +20,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Documentation ###
## [0.15.1] - 2014-12-20 ##
### Fixed ###
- [#254](https://gitlab.com/linkahead/linkahead-webui/-/issues/254) "Download files referenced in the table" failed
- [#230](https://gitlab.com/linkahead/linkahead-webui/-/issues/230)
`make doc` is now compatible with npm >= 9.0.0.
## [0.15.0] - 2024-10-01 ##
### Added ###
......
......@@ -80,13 +80,16 @@ See `build.properties.d/00_default.properties` for more information.
## Build the documentation #
Build documentation in `build/` with `make doc`.
Install the below requirements and build documentation in `build/`
with `make doc`. You may need to set the environment variables used in
`src/doc/Makefile`, especially `JSDOC_BIN` in case you didn't install
jsdoc globally.
### Requirements ##
- sphinx
- sphinx-autoapi
- jsdoc (`npm install jsdoc`)
- jsdoc-sphinx (`npm install jsdoc-sphinx`)
- @indiscale/jsdoc-sphinx (`npm install @indiscale/jsdoc-sphinx`)
- sphinx-js
- recommonmark
......@@ -24,16 +24,15 @@
# It is based upon the autocreated makefile for Sphinx documentation.
# You can set these variables from the command line, and also
# from the environment for the first two.
# from the environment for the first four.
SPHINXOPTS ?= -a
SPHINXBUILD ?= sphinx-build
NPM_PREFIX ?= ../..
JSDOC_BIN ?= jsdoc
# SPHINXAPIDOC ?= javasphinx-apidoc
SOURCEDIR = .
BUILDDIR = ../../build/doc
# npm is not always in the global PATH
NPM_PATH = $(shell npm bin)
NPM_PREFIX = $(shell npm prefix)
.PHONY: doc-help Makefile api
......@@ -44,8 +43,8 @@ doc-help:
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile api
PATH=$(NPM_PATH):$$PATH $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
# sphinx-build -M html . ../../build/doc
api:
PATH=$(NPM_PATH):$$PATH jsdoc -t $(NPM_PREFIX)/node_modules/jsdoc-sphinx/template -d $@ -r "../../src/core"
$(JSDOC_BIN) -t $(NPM_PREFIX)/node_modules/@indiscale/jsdoc-sphinx/template -d $@ -r "../../src/core"
......@@ -26,9 +26,9 @@ copyright = '2022 - 2024, IndiScale GmbH'
author = 'Daniel Hornung'
# The short X.Y version
version = '0.15.1'
version = '0.15.2'
# The full version, including alpha/beta/rc tags
release = '0.15.1-SNAPSHOT'
release = '0.15.2-SNAPSHOT'
# -- General configuration ---------------------------------------------------
......@@ -196,7 +196,7 @@ primary_domain = 'js' # Not strictly necessary?
# -- Options for intersphinx extension ---------------------------------------
# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {'https://docs.python.org/': None}
intersphinx_mapping = {}
# TODO Which options do we want?
autodoc_default_options = {
......
......@@ -28,5 +28,4 @@ the most important concepts and offers a range of
Indices and tables
==================
* :ref:`genindex`
* :ref:`search`
......@@ -32,7 +32,7 @@ from zipfile import ZipFile
import linkahead as db
import pandas as pd
from linkaheadadvancedtools.serverside import helper
from caosadvancedtools.serverside import helper
from linkahead import LinkAheadException, ConsistencyError, EntityDoesNotExistError
......@@ -71,9 +71,7 @@ def collect_files_in_zip(ids, table):
# download and add all files
for file_id in ids:
try:
tmp = db.execute_query("FIND FILE WITH ID={a:}".format(
a=file_id),
unique=True)
tmp = db.get_entity_by_id(file_id, role="FILE")
except EntityDoesNotExistError as e:
# TODO
# Current behavior: script terminates with error if just one
......@@ -81,14 +79,14 @@ def collect_files_in_zip(ids, table):
# Desired behavior: The script should go on with the other
# ids, but the user should be informed about the missing files.
# How should we do this?
logger = logging.getLogger("linkaheadadvancedtools")
logger.error("Did not find Entity with ID={}.".format(
logger = logging.getLogger("caosadvancedtools")
logger.error("Did not find File with ID={}.".format(
file_id))
raise e
savename = nc.get_unique_savename(os.path.basename(tmp.path))
val_file = helper.get_file_via_download(
tmp, logger=logging.getLogger("linkaheadadvancedtools"))
tmp, logger=logging.getLogger("caosadvancedtools"))
zf.write(val_file, savename)
......
......@@ -35,8 +35,8 @@ from datetime import datetime
import linkahead as db
import pandas as pd
from linkaheadadvancedtools.serverside.helper import get_argument_parser
from linkaheadadvancedtools.serverside.logging import configure_server_side_logging
from caosadvancedtools.serverside.helper import get_argument_parser
from caosadvancedtools.serverside.logging import configure_server_side_logging
MAXIMUMFILESIZE = 1e8
VALID_ENDINGS = [".csv", ".tsv", ".xls", ".xlsx"]
......@@ -135,7 +135,7 @@ if __name__ == "__main__":
args = parser.parse_args()
debug_file = configure_server_side_logging()
logger = logging.getLogger("linkaheadadvancedtools")
logger = logging.getLogger("caosadvancedtools")
db.configure_connection(auth_token=args.auth_token)
entity_id = args.filename
......
FROM debian:11
FROM debian:12
ADD node_gpg.asc /etc/apt/
RUN apt-get update \
&& apt-get install -y gnupg ca-certificates\
......@@ -12,14 +12,15 @@ RUN apt-get update \
nodejs npm \
&& 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
# RUN pip3 install caosdb>=0.7.4
RUN pip3 install git+https://gitlab.com/caosdb/caosdb-pylib.git@f-linkahead-rename
RUN pip3 install pandas
RUN pip3 install --break-system-packages git+https://gitlab.com/caosdb/caosdb-pylib.git@dev
# 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
# RUN npm install -g jsdoc
# 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
caosdb
caosadvancedtools
pandas