- Feb 28, 2018
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
-
- Feb 26, 2018
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
Fix error: User instance is not bound to a Session; attribute refresh operation cannot proceed
-
- Feb 23, 2018
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
-
- Feb 20, 2018
-
-
Benjamin Bertrand authored
If we scroll to the submit button, we can't see the "Submit" QRCode
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
The QRCode content doesn't matter. It's only there to trigger a CR to submit the form. Scanning a serial number will focus on the submit button so that scanning the QRCode doesn't enter text in any form input field.
-
Benjamin Bertrand authored
-
- Feb 15, 2018
-
-
Benjamin Bertrand authored
- Remove QRcodes page - Add Status to attributes page (only allow admin to add new statuses) Actions QR Codes not visible anymore. Required ones shall be put on the page where they are used.
-
- Feb 14, 2018
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
Add a last modified query parameter to static resource. This will force the browser to re-load resources (css, js...) after a new deploy.
-
- Feb 12, 2018
-
-
Benjamin Bertrand authored
This reverts commit 4ddde36f. This broke the loading of fonts. Fonts directory should be excluded.
-
Benjamin Bertrand authored
The browser caches the static files (js, css...). Flask-CacheBust adds a hash to the URL of each static file to force clients to redownload the files when changed.
-
Benjamin Bertrand authored
The network range defines the IP to be allocated. This is to reserve some specific addresses (for gateway for example). An admin user should be able to define an interface outside the network range. The IP address select field was replaced with a string field (initialized to the first available IP). Fixes INFRA-200
-
- Feb 09, 2018
-
-
Benjamin Bertrand authored
Fixes INFRA-197
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
The interface name shall start with the hostname of the host it is associated to. Note that this is only enforced via the UI (from which most users will interact), not from the API. Fixes INFRA-195
-
Benjamin Bertrand authored
- add domain_id on NetworkScope table to define a default domain - add domain_id on Network (default to the Network Scope one) Fixes INFRA-194
-
Benjamin Bertrand authored
We don't want to submit the form when scanning a code bar or ICS id. In keyboard mode, the scanner sends a CR as last character.
-
Benjamin Bertrand authored
-
- Feb 06, 2018
-
-
Benjamin Bertrand authored
Allow to use a scanner configured as keyboard to register items via the web UI. 1. The attributes should be selected manually 2. Focus set manually on ICS id 3. Scan an ICS id -> prefix removed and focus set to serial number 4. Scan serial number 5. Click on submit 6. Focus set automatically on ICS id 7. Repeat from 3
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
-
- Feb 02, 2018
-
-
Benjamin Bertrand authored
-
- Jan 29, 2018
-
-
Benjamin Bertrand authored
Let alembic handle the database creation and migration
-
- Jan 18, 2018
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
Allow to keep track of batches of small parts.
-
- Jan 16, 2018
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
Command shall be run every night to keep the users in the database in sync with the LDAP server. If a user is not found: - set its groups to [] - revoke all its tokens
-
- Jan 12, 2018
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
The string representation of a Network is the vlan_name. This is what we should allow to pass as string to create an interface. Note that if we pass network_id instead of network when creating and interface, the validate_interfaces method from the Network class is not called.
-
Benjamin Bertrand authored
The user_id is stored in the flask session. On every page load, we query the database to get: - the user objet (user_account table) - the user's groups (group table) to know what the user can access If we try to cache the user_load function, the following error is raised when retrieving the groups: sqlalchemy.orm.exc.DetachedInstanceError: Parent instance <User at 0x7f51e050a940> is not bound to a Session; lazy load operation of attribute 'grp' cannot proceed The groups from AD are only stored to map them with CSENTRY_LDAP_GROUPS. We don't do any query on them (get all users from one group). As we always query them with one user, it's more efficient to store them in the user_account table as an array than in a separate table. This allows to easily cache the load_user function. Note that we have to remember to add the current_user to the sqlalchemy session if we want to modify it or access a relationship (like tokens)! The load_user function is now cached for 30 minutes. This decreases a lot the number of database queries. Fix INFRA-156
-
- Jan 11, 2018
-
-
Benjamin Bertrand authored
-
- Jan 10, 2018
-
-
Benjamin Bertrand authored
All endpoints are plural
-
- Jan 08, 2018
-
-
Benjamin Bertrand authored
Pagination information (next, prev, first, last) is included in the Link HTTP header. The total number of entries is provided in the X-Total-Count HTTP header.
-
- Jan 05, 2018
-
-
Benjamin Bertrand authored
gateway tag shall be admin_only
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
-