1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2025-02-18 12:54:27 +01:00

Merge branch 'dev' for release 4.6.2

This commit is contained in:
Sylvain 2020-10-23 16:06:53 +02:00
commit 7619cffcd2
9 changed files with 38 additions and 8 deletions

View File

@ -1,5 +1,15 @@
# Changelog Fab-manager
## v4.6.2 2020 October 23
- Add intermediate step version for upgrades: v4.4.6. This will prevent issues with FootprintDebug if a regeneration is needed
- Check postgreSQL status before compiling assets
- Improved documentation about the upgrade process
- Fix a bug: unable to set libraries locales to their default values (en-us)
- Fix a bug: unable to display details about a closed period
- Fix a bug: members cannot view available trainings slots
- Fix a bug: availabilities not created at the same DST than the target date may be shifted in time
## v4.6.1 2020 October 21
- Reduced down time during upgrades

View File

@ -134,3 +134,5 @@ gem 'sha3'
gem 'repost'
gem 'icalendar'
gem 'tzinfo-data'

View File

@ -386,6 +386,8 @@ GEM
tzinfo
tzinfo (1.2.7)
thread_safe (~> 0.1)
tzinfo-data (1.2020.4)
tzinfo (>= 1.0.0)
unicode-display_width (1.4.1)
vcr (3.0.1)
virtus (1.0.5)
@ -483,6 +485,7 @@ DEPENDENCIES
spring-watcher-listen (~> 2.0.0)
stripe (= 5.1.1)
sys-filesystem
tzinfo-data
vcr (= 3.0.1)
web-console (>= 3.3.0)
webmock

View File

@ -6,7 +6,9 @@ import {} from 'jquery-ujs';
import 'bootstrap-sass';
import '../src/javascript/lib/polyfill';
import 'angular';
<% unless Rails.application.secrets.angular_locale == 'en-us' %>
import 'angular-i18n/angular-locale_<%= Rails.application.secrets.angular_locale %>.js';
<% end %>
import 'angular-cookies';
import 'angular-resource';
import 'angular-sanitize';
@ -15,11 +17,15 @@ import '@uirouter/angularjs';
import 'angular-ui-bootstrap';
import 'ui-select';
import 'moment';
<% unless Rails.application.secrets.moment_locale == 'en' %>
import 'moment/locale/<%= Rails.application.secrets.moment_locale %>.js';
<% end %>
import 'moment-timezone';
import 'angular-ui-calendar';
import 'fullcalendar';
<% unless Rails.application.secrets.fullcalendar_locale == 'en' %>
import 'fullcalendar/dist/locale/<%= Rails.application.secrets.fullcalendar_locale %>.js';
<% end %>
import 'angular-moment';
import 'ngUpload';
import 'jasny-bootstrap/js/fileinput';
@ -46,7 +52,9 @@ import 'bootstrap-switch/dist/js/bootstrap-switch';
import 'angular-bootstrap-switch/dist/angular-bootstrap-switch';
import 'angular-base64-upload/dist/angular-base64-upload.min';
import 'summernote';
<% unless Rails.application.secrets.summernote_locale == 'en-US' %>
import 'summernote/lang/summernote-<%= Rails.application.secrets.summernote_locale %>.js';
<% end %>
import 'angular-summernote/dist/angular-summernote';
import '../src/javascript/lib/summernote-ext-nugget';
import '@claviska/jquery-minicolors/jquery.minicolors.js';

View File

@ -374,7 +374,7 @@ Application.Controllers.controller('ReserveTrainingController', ['$scope', '$sta
*/
const initialize = function () {
if ($scope.currentUser.role !== 'admin') {
return Member.get({ id: $scope.currentUser.id }, function (member) { $scope.ctrl.member = member; });
Member.get({ id: $scope.currentUser.id }, function (member) { $scope.ctrl.member = member; });
}
// we load the availabilities from a callback function of the $scope.eventSources, instead of resolving a promise
// in the router because this allows to refetchEvents from fullCalendar API.

View File

@ -65,7 +65,7 @@
<td>{{period.start_at | amDateFormat:'L'}}</td>
<td>{{period.end_at | amDateFormat:'L'}}</td>
<td class="actions">
<span class="show-more" uib-popover-template="'admin/invoices/_period.html'"><i class="fa fa-info-circle"></i></span>
<span class="show-more" uib-popover-template="'/admin/invoices/_period.html'"><i class="fa fa-info-circle"></i></span>
<span class="download-archive" ng-click="downloadArchive(period)" ng-show="period.archive_ready"><i class="fa fa-archive"></i></span>
<span class="no-pointer" ng-hide="period.archive_ready"><i class="fa fa-spinner fa-pulse"></i></span>
</td>

View File

@ -157,7 +157,7 @@ Then, you'll need to perform the upgrade with the following command:
*This procedure updates Fab-manager to the most recent version by default.*
> ⚠ If you are upgrading from a very outdated version, you must first upgrade to v2.8.3, then to v3.1.2, then to 4.0.4 and finally to the last version
> ⚠ If you are upgrading from a very outdated version, you must first upgrade to v2.8.3, then to v3.1.2, then to 4.0.4, then to 4.4.6 and finally to the last version
> ⚠ With versions < 4.3.3, you must replace `bundle exec rails` with `bundle exec rake` in all the commands above
@ -194,7 +194,8 @@ You can subscribe to [this atom feed](https://github.com/sleede/fab-manager/rele
They are also present in the [releases page](https://github.com/sleede/fab-manager/releases).
Those commands execute specific tasks and have to be run by hand.
Using docker, you must prefix these commands with `docker-compose run --rm fabmanager bundle exec`.
Using docker, you must prefix the commands starting by `rails...` or `rake...` with: `docker-compose run --rm fabmanager bundle exec`.
In any other cases, the other commands (like those invoking curl `\curl -sSL... | bash`) must not be prefixed.
You can also ignore commands only applicable to development environnement, which are prefixed by `(dev)` in the CHANGELOG.
7. restart all containers

View File

@ -1,6 +1,6 @@
{
"name": "fab-manager",
"version": "4.6.1",
"version": "4.6.2",
"description": "Fab-manager is the FabLab management solution. It provides a comprehensive, web-based, open-source tool to simplify your administrative tasks and your marker's projects.",
"keywords": [
"fablab",

View File

@ -86,6 +86,8 @@ version_check()
version_error "v3.1.2"
elif verlt "$VERSION" 4.0.4; then
version_error "v4.0.4"
elif verlt "$VERSION" 4.4.6; then
version_error "v4.4.6"
fi
}
@ -100,17 +102,20 @@ add_environments()
done
}
compile_assets_and_migrate()
compile_assets()
{
IMAGE=$(yq r docker-compose.yml 'services.*(.==sleede/fab-manager*)')
mapfile -t COMPOSE_ENVS < <(yq r docker-compose.yml "services.$SERVICE.environment")
ENV_ARGS=$(for i in "${COMPOSE_ENVS[@]}"; do sed 's/: /=/g;s/^/-e /g' <<< "$i"; done)
PG_ID=$(docker-compose ps -q postgres)
if [[ "$PG_ID" = "" ]]; then
printf "PostgreSQL container is not running, unable to compile the assets\nExiting..."
exit 1
fi
PG_NET_ID=$(docker inspect "$PG_ID" -f "{{json .NetworkSettings.Networks }}" | jq -r '.[] .NetworkID')
# shellcheck disable=SC2068
docker run --rm --env-file ./config/env ${ENV_ARGS[@]} --link "$PG_ID" --net "$PG_NET_ID" -v "${PWD}/public/new_packs:/usr/src/app/public/packs" "$IMAGE" bundle exec rake assets:precompile
docker-compose down
docker-compose run --rm "$SERVICE" bundle exec rake db:migrate
rm -rf public/packs
mv public/new_packs public/packs
}
@ -134,7 +139,8 @@ upgrade()
\curl -sSL "https://raw.githubusercontent.com/sleede/fab-manager/$BRANCH/scripts/$SCRIPT.sh" | bash
fi
done
compile_assets_and_migrate
compile_assets
docker-compose run --rm "$SERVICE" bundle exec rake db:migrate
for COMMAND in "${COMMANDS[@]}"; do
docker-compose run --rm "$SERVICE" bundle exec "$COMMAND"
done