docs_old/dev-docs/urls.rst
=============
URL structure
=============
This document register the default URLs used in the platform and where to find
them in their corresponding apps.
Users/login (ej_users app)
==========================
Public views controlling authentication and creation of new users.
Both login and register views accept a ?next=<url> tag that controls the
redirect page.
Actions that do not require authentication
------------------------------------------
login/ (auth:login):
Login page.
Implementation :func:`ej_users.routes.login`.
register/ (auth:register):
Register a new user.
Implementation :func:`ej_users.routes.register`.
recover-password/ (auth:recover-password):
Recover user password.
Implementation :func:`ej_users.routes.recover_password`
recover-password/<token> (auth:recover-password-token):
URL sent by e-mail after user request a password reset.
Implementation :func:`ej_users.routes.recover_password_token`.
Actions that require authentication
-----------------------------------
account/ (account:index):
Manage basic account actions such as password reset, e-mail reset, etc.
Implementation :func:`ej_users.routes_account.index`.
account/logout/ (account:logout):
End user session.
Implementation :func:`ej_users.routes_account.logout`.
account/remove/ (account:remove-account):
Remove user account. This is an non-reversible operation that the user
must confirm in order to actually remove the account.
Implementation :func:`ej_users.routes_account.remove`.
account/manage-email/ (account:manage-email):
Allow user to change its e-mail.
Implementation :func:`ej_users.routes_account.manage_email`.
account/change-password/ (account:change-password):
Allow user to change its password.
Implementation :func:`ej_users.routes_account.change_password`.
All views are included in the ``ej_accounts`` app.
Profile views (ej_profiles)
===========================
Users cannot see each other's profiles since EJ is not meant to be a traditional
social network. There is no concept of "friends", "followers",
"private conversations" etc.
profile/ (profile:detail):
Show user profile.
Implementation :func:`ej_profiles.routes.detail`.
profile/edit/ (profile:edit):
Edit profile.
Implementation :func:`ej_profiles.routes.edit`.
profile/contributions/ (profile:comments):
Show statistics and information about all contributions of the user to
conversations in the platform.
Implementation :func:`ej_profiles.routes.contributions`.
Conversations (ej_conversations)
================================
Public views for displaying information about conversations.
conversations/ (conversations:list):
List all available conversations
Implementation :func:`ej_conversations.routes.list_view`.
conversations/<id>/<slug>/ (conversations:conversation-detail):
Detail page for an specific conversation.
Implementation :func:`ej_conversations.routes.detail`.
CRUD (ej_conversations)
-----------------------
All those URLS are only available for users with permission to edit
conversations. This can be applied to staff members or to the owner of the
conversation.
conversations/create/ (conversations:create-conversation):
Add a new conversation.
Implementation :func:`ej_conversations.routes.create`.
conversations/<id>/<slug>/edit/ (conversations:edit-conversation):
Edit conversation.
Implementation :func:`ej_conversations.routes.edit`.
conversations/<id>/<slug>/moderate/ (conversations:moderate-comments):
Can classify all non-moderated comments.
Implementation :func:`ej_conversations.routes.moderate`.
Reports (ej_dataviz)
--------------------
Only staff members and the conversation owner have access to those pages.
conversations/<id>/<slug>/reports/ (reports:index):
Aggregate reports for the given conversation.
conversations/<id>/<slug>/reports/users/ (reports:radar):
Display comments in a 2D layout to show the distribution of opinions and
comments.
Clusters (ej_clusters)
----------------------
Display the clusters associated with a conversation. All those urls require
authentication, but are visible to all users.
conversations/<id>/<slug>/clusters/ (clusters:index):
See cluster information in conversation.
Implementation :func:`ej_clusters.routes.index`.
conversations/<id>/<slug>/clusters/edit/ (clusters:edit):
Edit clusterization configurations.
Implementation :func:`ej_clusters.routes.edit`.
conversations/<id>/<slug>/stereotypes/ (clusters:stereotype-votes):
Cast stereotype votes in conversation.
Implementation :func:`ej_clusters.routes.stereotype_votes`.
Clusters and Stereotypes (ej_clusters)
--------------------------------------
Only staff members and the conversation owner have access to those pages.
conversations/<id>/<slug>/stereotypes/ (clusters:stereotype-list):
List of all stereotypes showing information about the assigned cluster and
statistics.
conversations/<id>/<slug>/stereotypes/<id>/ (clusters:stereotype-vote):
Allow the given stereotype to vote in conversation.
Help
====
Urls with the intention of explaining how to use the platform. Most of those
urls are implemented as flat pages and are stored as HTML or markdown under
either local/pages or lib/pages/.
/start/ (home):
Landing-page broadly explaining what is EJ and how to use the platform.
/faq/ (faq):
Frequently asked questions.
/about-us/ (about):
About EJ or the organization deploying an instance.
/usage/ (usage):
Usage terms for the platform.
/contact/ (contact):
Contact information
All URLs are implemented as flat pages in the Django Admin. The content
of those URLs can be editable at ``/admin/flatpages/flatpage/``.
Administrative URLs
===================
All views in this section require staff permissions.
admin/:
Django admin page. Users must be staff members.
/info/ (info):
Show basic debug information about the server
Implementation :func:`ej.routes.info`.
/info/styles/ (info-styles):
Exhibit the main design elements like colors and typography applied in the
current theme.
Implementation :func:`ej.routes.info_styles`.
/info/ (info-django-settings):
Display current Django settings. Only the admin user can see this page.
Implementation :func:`ej.routes.info_django_settings`.