### Arches 4.1.0 release notes January 22, 2018 The Arches team has been busy trying to improve Arches and fix a several bugs as well. Below you'll find a listing of all the changes that are included in the latest release. Some of the highlights: - Upgraded django to 1.11 (LTS) - Added the ability for users to self signup to Arches - Added a page for users to manage their profile - Improved the loading speed of reports and forms - Added the node-value datatype - Many other small improvements #### Upgrading Arches Users are encouraged to update at their earliest convenience. Completely re-installing Arches is the easiest way to accomplish this. If you can't completely re-install Arches (because you have data in the system that you want to preserve) then you'll need to upgrade by running the following commands in your activated virtual environment: ``` pip install arches --upgrade --no-binary :all: python manage.py migrate ``` As always the documentation can be found at http://arches4.readthedocs.io/en/stable/ #### Upgrading an Arches project If you already have a project created with Arches 4.0 and you want to continue using that project, you will need to make a few changes so that it is compatible with 4.1. When making changes, be sure to replace 'your_projects_name' in the code examples below with your project's actual name. Required Changes: 1. Add the following lines to the bottom of your projects 'wsgi.py' file: ``` from arches.app.models.system_settings import settings settings.update_from_db() ``` 2. The following changes were made to the 'urls.py' file: - These imports have been added: ``` from django.conf import settings from django.conf.urls.static import static ``` - The media urls are concatenated to the list of urls: ```+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)``` - The admin import line was removed: ```from django.contrib import admin``` - The admin urls line was removed: ```url(r'^admin/', admin.site.urls),``` - Assuming that you haven't made any changes to the urls.py file your 4.1 urls.py file should look like this: ``` from django.conf.urls import include, url from django.conf import settings from django.conf.urls.static import static urlpatterns = [ url(r'^', include('arches.urls')), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ``` 3. You must add the following setting to your project's 'settings.py' file: ```ROOT_URLCONF = 'your_projects_name.urls'``` 4. In your index.htm file you will need to change the following lines: This line: ``` {% trans "Welcome" %} {{ user.username }} ``` ... should be changed to this: ``` {% trans "Welcome" %} {{ user.first_name|default:user.username }} ``` This line: ```
  • {% trans 'Change Password' %}
  • ``` ... should be changed to this: ```
  • {% trans 'User Profile' %}
  • ``` Optional: 1. Add the following settings to your 'settings_local.py' file. These are commented out and only listed in your 'settings_local.py' file so that you can easily find them if you want to modify their values: ``` #ELASTICSEARCH_PREFIX = '' #INSTALLED_APPS = ( # django.contrib.admin, # django.contrib.auth, # django.contrib.contenttypes, # django.contrib.sessions, # django.contrib.messages, # django.contrib.staticfiles, # django.contrib.gis, # arches, # arches.app.models, # arches.management, # guardian, # captcha, #) #EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' #EMAIL_HOST = 'localhost' #EMAIL_HOST_PASSWORD = '' #EMAIL_HOST_USER = '' #EMAIL_PORT = 25 #EMAIL_USE_TLS = False #AUTH_PASSWORD_VALIDATORS = [ # { # "NAME": "arches.app.utils.password_validation.NumericPasswordValidator" # }, # { # "NAME": "arches.app.utils.password_validation.SpecialCharacterValidator", # "OPTIONS": { # "special_characters": [ # "!", # "@", # "#", # ")", # "(", # "*", # "&", # "^", # "%", # "$" # ] # } # }, # { # "NAME": "arches.app.utils.password_validation.HasNumericCharacterValidator" # }, # { # "NAME": "arches.app.utils.password_validation.HasUpperAndLowerCaseValidator" # }, # { # "NAME": "arches.app.utils.password_validation.MinLengthValidator", # "OPTIONS": { # "min_length": 9 # } # } #] ``` #### Changes - Fixed automatic loading of system settings local - Change in which custom arches projects are initialzed (at same level as arches root, instead of within), re #2547 (#2550) - Making related resources readable by guest users, re #2376 - Added esri vector tiles example - Added user profile manager , re #2452 - Added password validators to settings.py including custom validators for requiring upper and lower case characters, numeric characters and special characters, re #2454 - Added the ability for users to self signup, re #2453 - Add ability to export multiple graphs at once re #1361 - Upgrade to django 1.11.6, re #2355 - Allow users to use their email or username to login, re #2453 - Email users that their profile settings have changed, re #2453 - Improve display of filtered nodes in graph manager, re #2593 - Update CSS to better display nodes in related resources - Standardize access to app settings in templates - Add ability to create concepts on import for the `concept` and `concept-list` datatype, re #2427 - Add support for domain-value and domain-value-list datatypes, re #2427 - Add the ability to prefix elasticsearch index names, re #2612 - Improve styling and UX for Map Manager layer type selector links - Improve UX for Arches Designer Models/Branches buttons - Bump psycopg2 from 2.7.3.1 to 2.7.3.2 in /arches/install - Improved removal of duplicate parent cards from flat card list, #2580 - Adds card container name as a card name prefix in cases when a card has a container. re #2580 - Add tests for required node import, re #2732 - Fix to prevent duplicate elements appearing after dragging and dropping. re #2580 - Improves JSONSerializer performance. - Streamline installation steps, and reference the wiki for repo installation - Added ability to import functions and widgets with functionids and widgetids respectively. - Added the ability to disable input for a node/widget/datatype - Added the ability to set a default value for a node/widget/datatype - Added the ability to authenticate based on a token, re #2773 - Added configs to the number widget allowing a graph editor to define units (as a prefix or suffix), specify the increment, and set the max number of values behind the decimal place. re #2591 - Added ability to reorder values in domain widget, re #2806 - Added ability to have single quotes in concept labels, re #2830 - Added the node-value datatype - Scrolls a form back to its top when a user switches menus, re #2600 - Replace all pyshp and shapely operations with django.contrib.gis.gdal, re #2689 - Adds migration to change geocoder from mapzen to mapbox where cards use mapzen. re #2901 - Add the user who signs up via the web ui to a default group, re #2936