1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2025-02-19 13:54:25 +01:00

Ability to parametrize machines order on the booking page

This commit is contained in:
Sylvain 2018-09-18 15:30:54 +02:00
parent a26e8edf19
commit 1e3066f6f4
12 changed files with 87 additions and 3 deletions

View File

@ -2,10 +2,12 @@
## next release
- Ability to parametrize machines order on the booking page
- Fix a bug: rake task fablab:fix:categories_slugs bash interpretation error
- Fix a bug: file inputs filled with long filenames render improperly with an overflow
- Fix a bug: title concordance radio buttons render improperly on smaller screens
- [TODO DEPLOY] `rake fablab:fix:categories_slugs`
- [TODO DEPLOY] `rake db:seed`
## v2.6.5 2018 July 24

View File

@ -53,6 +53,7 @@ Application.Controllers.controller "SettingsController", ["$scope", 'Setting', '
$scope.secondColorSetting = { name: 'secondary_color', value: settingsPromise.secondary_color }
$scope.fablabName = { name: 'fablab_name', value: settingsPromise.fablab_name }
$scope.nameGenre = { name: 'name_genre', value: settingsPromise.name_genre }
$scope.machinesSortBy = { name: 'machines_sort_by', value: settingsPromise.machines_sort_by }
$scope.cguFile = cguFile.custom_asset
$scope.cgvFile = cgvFile.custom_asset
$scope.customLogo = logoFile.custom_asset

View File

@ -1159,7 +1159,8 @@ angular.module('application.router', ['ui.router']).
'reminder_delay',
'visibility_yearly',
'visibility_others',
'display_name_enable'
'display_name_enable',
'machines_sort_by'
]").$promise
]
cguFile: ['CustomAsset', (CustomAsset) ->

View File

@ -314,4 +314,29 @@
</div>
</div>
</div>
</div>
<div class="panel panel-default m-t-lg">
<div class="panel-heading">
<span class="font-sbold" translate>{{ 'settings.elements_ordering' }}</span>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-4">
<h3 class="m-l" translate>{{ 'settings.machines_order' }}</h3>
<div class="form-group m-l">
<label for="machinesSortBy" class="control-label m-r" translate>{{ 'settings.display_machines_sorted_by' }}</label>
<select id="machinesSortBy"
class="form-control"
ng-model="machinesSortBy.value">
<option value="default" translate>{{ 'settings.sort_by.default' }}</option>
<option value="name" translate>{{ 'settings.sort_by.name' }}</option>
<option value="created_at" translate>{{ 'settings.sort_by.created_at' }}</option>
<option value="updated_at" translate>{{ 'settings.sort_by.updated_at' }}</option>
</select>
<button name="button" class="btn btn-warning m-t" ng-click="save(machinesSortBy)" translate>{{ 'save' }}</button>
</div>
<div class="col-md-4">
</div>
</div>
</div>

View File

@ -4,7 +4,12 @@ class API::MachinesController < API::ApiController
respond_to :json
def index
@machines = Machine.includes(:machine_image, :plans)
sort_by = Setting.find_by(name: 'machines_sort_by').value || 'default'
if sort_by === 'default'
@machines = Machine.includes(:machine_image, :plans)
else
@machines = Machine.includes(:machine_image, :plans).order(sort_by)
end
end
def show

View File

@ -35,7 +35,8 @@ class Setting < ActiveRecord::Base
space_explications_alert
visibility_yearly
visibility_others
display_name_enable )
display_name_enable
machines_sort_by )
}
after_update :update_stylesheet if :value_changed?

View File

@ -661,6 +661,15 @@ en:
display_machine_reservation_user_name: "Display the full name of the user who booked a machine slot"
display_name: "Display the name"
display_name_enable: "name display"
machines_sort_by: "machines display order"
elements_ordering: "Elements ordering"
machines_order: "Machines order"
display_machines_sorted_by: "Display machines sorted by"
sort_by:
default: "Default"
name: "Name"
created_at: "Creation date"
updated_at: "Last update date"
open_api_clients:
add_new_client: "Create new API client"

View File

@ -661,6 +661,15 @@ es:
display_machine_reservation_user_name: "Mostrar el nombre del usuario que ha reservado una maquina"
display_name: "Mostrar el nombre"
display_name_enable: "la visualización del nombre"
machines_sort_by: "del orden de visualización de las máquinas"
elements_ordering: "Orden de visualización de los elementos"
machines_order: "Orden de las máquinas"
display_machines_sorted_by: "Ver máquinas ordenadas por"
sort_by:
default: "Defecto"
name: "Nombre"
created_at: "Fecha de creación"
updated_at: "Fecha de actualización"
open_api_clients:
add_new_client: "Crear un nuevo cliente de API"

View File

@ -661,6 +661,15 @@ fr:
display_machine_reservation_user_name: "Afficher le nom de l'utilisateur ayant réservé une machine"
display_name: "Afficher le nom"
display_name_enable: "l'affichage du nom"
machines_sort_by: "l'odre d'affichage des machines"
elements_ordering: "Ordre d'affichage des éléments"
machines_order: "Ordre des machines"
display_machines_sorted_by: "Afficher les machines triées par"
sort_by:
default: "Défaut"
name: "Nom"
created_at: "Date de création"
updated_at: "Date de mise à jour"
open_api_clients:
add_new_client: "Créer un compte client"

View File

@ -661,6 +661,15 @@ pt:
display_machine_reservation_user_name: "TODO"
display_name: "TODO"
display_name_enable: "TODO"
machines_sort_by: "TODO"
elements_ordering: "TODO"
machines_order: "TODO"
display_machines_sorted_by: "TODO"
sort_by:
default: "TODO"
name: "Nome"
created_at: "TODO"
updated_at: "TODO"
open_api_clients:
add_new_client: "Criar novo cliente de API"

View File

@ -419,6 +419,12 @@ unless Setting.find_by(name: 'display_name_enable').try(:value)
setting.save
end
unless Setting.find_by(name: 'machines_sort_by').try(:value)
setting = Setting.find_or_initialize_by(name: 'machines_sort_by')
setting.value = 'default'
setting.save
end
if StatisticCustomAggregation.count == 0
# available reservations hours for machines
machine_hours = StatisticType.find_by(key: 'hour', statistic_index_id: 2)

View File

@ -246,3 +246,10 @@ setting_32:
value: false
created_at: 2018-07-24 11:45:31.512710000 Z
updated_at: 2018-07-24 11:45:31.512710000 Z
setting_33:
id: 33
name: machines_sort_by
value: default
created_at: 2018-09-18 15:09:48.176240000 Z
updated_at: 2018-09-18 15:09:48.176240000 Z