mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
0f445ea6e4
* Add settings to control upcoming stocktake features * Adds migration for "cost range" when performing stocktake * Add cost data to PartStocktakeSerializer Implement a new custom serializer for currency data type * Refactor existing currency serializers * Update stocktake table and forms * Prevent trailing zeroes in forms * Calculate cost range when adding manual stocktake entry * Display interactive chart for part stocktake history * Ensure chart data are converted to common currency * Adds new model for building stocktake reports * Add admin integration for new model * Adds API endpoint to expose list of stocktake reports available for download - No ability to edit or delete via API * Add setting to control automated deletion of old stocktake reports * Updates for settings page - Load part stocktake report table - Refactor function to render a downloadable media file - Fix bug with forcing files to be downloaded - Split js code into separate templates - Make use of onPanelLoad functionalitty * Fix conflicting migration files * Adds API endpoint for manual generation of stocktake report * Offload task to generate new stocktake report * Adds python function to perform stocktake on a single part instance * Small bug fixes * Various tweaks - Prevent new stocktake models from triggering plugin events when created - Construct a simple csv dataset * Generate new report * Updates for report generation - Prefetch related data - Add extra columns - Keep track of stocktake instances (for saving to database later on) * Updates: - Add confirmation message - Serializer validation checks * Ensure that background worker is running before manually scheduling a new stocktake report * Add extra fields to stocktake models Also move code from part/models.py to part/tasks.py * Add 'part_count' to PartStocktakeReport table * Updates for stocktake generation - remove old performStocktake javascript code - Now handled by automated server-side calculation - Generate report for a single part * Add a new "role" for stocktake - Allows fine-grained control on viewing / creating / deleting stocktake data - More in-line with existing permission controls - Remove STOCKTAKE_OWNER setting * Add serializer field to limit stocktake report to particular locations * Use location restriction when generating a stocktake report * Add UI buttons to perform stocktake for a whole category tree * Add button to perform stocktake report for a location tree * Adds a background tasks to handle periodic generation of stocktake reports - Reports are generated at fixed intervals - Deletes old reports after certain number of days * Implement notifications for new stocktake reports - If manually requested by a user, notify that user - Cleanup notification table - Amend PartStocktakeModel for better notification rendering * Hide buttons on location and category page if stocktake is not enabled * Cleanup log messages during server start * Extend functionality of RoleRequired permission mixin - Allow 'role_required' attribute to be added to an API view - Useful when using a serializer class that does not have a model defined * Add boolean option to toggle whether a report will be generated * Update generateStocktake function * Improve location filtering - Don't limit the actual stock items - Instead, select only parts which exist within a given location tree * Update API version * String tweaks * Fix permissions for PartStocktake API * More unit testing for stocktake functionality * QoL fix * Fix for assigning inherited permissions
54 lines
1.6 KiB
Bash
54 lines
1.6 KiB
Bash
#!/bin/bash
|
|
# exit when any command fails
|
|
set -e
|
|
|
|
# Required to suppress some git errors further down the line
|
|
git config --global --add safe.directory /home/***
|
|
|
|
# Create required directory structure (if it does not already exist)
|
|
if [[ ! -d "$INVENTREE_STATIC_ROOT" ]]; then
|
|
echo "Creating directory $INVENTREE_STATIC_ROOT"
|
|
mkdir -p $INVENTREE_STATIC_ROOT
|
|
fi
|
|
|
|
if [[ ! -d "$INVENTREE_MEDIA_ROOT" ]]; then
|
|
echo "Creating directory $INVENTREE_MEDIA_ROOT"
|
|
mkdir -p $INVENTREE_MEDIA_ROOT
|
|
fi
|
|
|
|
if [[ ! -d "$INVENTREE_BACKUP_DIR" ]]; then
|
|
echo "Creating directory $INVENTREE_BACKUP_DIR"
|
|
mkdir -p $INVENTREE_BACKUP_DIR
|
|
fi
|
|
|
|
# Check if "config.yaml" has been copied into the correct location
|
|
if test -f "$INVENTREE_CONFIG_FILE"; then
|
|
echo "Loading config file : $INVENTREE_CONFIG_FILE"
|
|
else
|
|
echo "Copying config file to $INVENTREE_CONFIG_FILE"
|
|
cp $INVENTREE_HOME/InvenTree/config_template.yaml $INVENTREE_CONFIG_FILE
|
|
fi
|
|
|
|
# Setup a python virtual environment
|
|
# This should be done on the *mounted* filesystem,
|
|
# so that the installed modules persist!
|
|
if [[ -n "$INVENTREE_PY_ENV" ]]; then
|
|
|
|
if test -d "$INVENTREE_PY_ENV"; then
|
|
# venv already exists
|
|
echo "Using Python virtual environment: ${INVENTREE_PY_ENV}"
|
|
else
|
|
# Setup a virtual environment (within the "data/env" directory)
|
|
echo "Running first time setup for python environment"
|
|
python3 -m venv ${INVENTREE_PY_ENV} --system-site-packages --upgrade-deps
|
|
fi
|
|
|
|
# Now activate the venv
|
|
source ${INVENTREE_PY_ENV}/bin/activate
|
|
fi
|
|
|
|
cd ${INVENTREE_HOME}
|
|
|
|
# Launch the CMD *after* the ENTRYPOINT completes
|
|
exec "$@"
|