Add getting started self guided help system for missing user setup

This commit is contained in:
Roberto Rosario
2015-03-31 04:10:15 -04:00
parent 847d2ad821
commit 41531364d2
7 changed files with 48 additions and 6 deletions
@@ -15,6 +15,26 @@
<div class="row"> <div class="row">
<div class="col-xs-12"> <div class="col-xs-12">
{% if missing_list %}
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">{% trans 'Getting started' %}</h3>
</div>
<div class="panel-body">
{% trans 'Before you can fully use Mayan EDMS you need the following:' %}
<div class="list-group">
{% for missing in missing_list %}
<a href="{% url missing.view %}" class="list-group-item">
<h4 class="list-group-item-heading">{{ missing.label }}</h4>
<p class="list-group-item-text">{{ missing.description }}</p>
</a>
{% endfor %}
</div>
</div>
</div>
{% endif %}
<div class="well center-block"> <div class="well center-block">
<div class="row"> <div class="row">
{% with 'navigation/large_button_link.html' as link_template %} {% with 'navigation/large_button_link.html' as link_template %}
@@ -34,7 +54,7 @@
<input class="form-control" name="q" placeholder="{% trans 'Space separated terms' %}" type="text"> <input class="form-control" name="q" placeholder="{% trans 'Space separated terms' %}" type="text">
<span class="input-group-btn"> <span class="input-group-btn">
<button class="btn btn-default" type="submit">{% trans 'Search' %}</button> <button class="btn btn-default" type="submit">{% trans 'Search' %}</button>
<a class="btn btn-primary" href="{% url 'search:search_advanced' %}">{% trans 'Advanced search' %}</a> <a class="btn btn-primary" href="{% url 'search:search_advanced' %}">{% trans 'Advanced' %}</a>
</span> </span>
</div> </div>
</form> </form>
+3 -1
View File
@@ -12,7 +12,7 @@ from common.classes import ModelAttribute
from common.utils import encapsulate, validate_path from common.utils import encapsulate, validate_path
from dynamic_search.classes import SearchModel from dynamic_search.classes import SearchModel
from events.permissions import PERMISSION_EVENTS_VIEW from events.permissions import PERMISSION_EVENTS_VIEW
from main import FrontPageButton from main import FrontPageButton, MissingItem
from main.api import register_maintenance_links from main.api import register_maintenance_links
from navigation.api import register_links, register_model_list_columns from navigation.api import register_links, register_model_list_columns
from navigation.links import link_spacer from navigation.links import link_spacer
@@ -149,3 +149,5 @@ class DocumentsApp(apps.AppConfig):
registry.register(Document) registry.register(Document)
DocumentPage.add_to_class('get_transformation_list', lambda document_page: DocumentPageTransformation.objects.get_for_document_page_as_list(document_page)) DocumentPage.add_to_class('get_transformation_list', lambda document_page: DocumentPageTransformation.objects.get_for_document_page_as_list(document_page))
MissingItem(label=_('Create a document type'), description=_('Every uploaded document must be assigned a document type, it is the basic way Mayan EDMS categorizes documents.'), condition=lambda: not DocumentType.objects.exists(), view='documents:document_type_list')
+1 -1
View File
@@ -1 +1 @@
from .classes import FrontPageButton # NOQA from .classes import FrontPageButton, MissingItem # NOQA
+16
View File
@@ -8,3 +8,19 @@ class FrontPageButton(object):
def __init__(self, link): def __init__(self, link):
self.link = link self.link = link
self.__class__._registry.append(link) self.__class__._registry.append(link)
class MissingItem(object):
_registry = []
@classmethod
def get_all(cls):
return cls._registry
def __init__(self, label, condition, description, view):
self.label = label
self.condition = condition
self.description = description
self.view = view
self.__class__._registry.append(self)
+2 -1
View File
@@ -9,7 +9,7 @@ from dynamic_search.classes import SearchModel
from permissions.models import Permission from permissions.models import Permission
from .api import diagnostics, tools from .api import diagnostics, tools
from .classes import FrontPageButton from .classes import FrontPageButton, MissingItem
def home(request): def home(request):
@@ -20,6 +20,7 @@ def home(request):
'query_string': request.GET, 'query_string': request.GET,
'hide_links': True, 'hide_links': True,
'search_results_limit': 100, 'search_results_limit': 100,
'missing_list': [item for item in MissingItem.get_all() if item.condition()],
} }
if request.GET: if request.GET:
+3 -1
View File
@@ -6,7 +6,7 @@ from django.utils.translation import ugettext_lazy as _
from common.utils import encapsulate from common.utils import encapsulate
from documents.links import document_list_recent, document_list from documents.links import document_list_recent, document_list
from documents.models import Document from documents.models import Document
from main import FrontPageButton from main import FrontPageButton, MissingItem
from navigation.api import register_links, register_model_list_columns from navigation.api import register_links, register_model_list_columns
from project_setup.api import register_setup from project_setup.api import register_setup
from rest_api.classes import APIEndPoint from rest_api.classes import APIEndPoint
@@ -50,3 +50,5 @@ class SourcesApp(apps.AppConfig):
APIEndPoint('sources') APIEndPoint('sources')
FrontPageButton(link=document_create_multiple) FrontPageButton(link=document_create_multiple)
MissingItem(label=_('Create a document source'), description=_('Document sources are the way in which new documents are feed to Mayan EDMS, create at least a web form source to be able to upload documents from a browser.'), condition=lambda: not Source.objects.exists(), view='sources:setup_source_list')
+2 -1
View File
@@ -37,6 +37,8 @@ ALLOWED_HOSTS = []
# Application definition # Application definition
INSTALLED_APPS = ( INSTALLED_APPS = (
# Placed at the top so it can override any template
'appearance.apps.AppearanceApp',
# 3rd party # 3rd party
'suit', 'suit',
# Django # Django
@@ -75,7 +77,6 @@ INSTALLED_APPS = (
'smart_settings.apps.SmartSettingsApp', 'smart_settings.apps.SmartSettingsApp',
'user_management.apps.UserManagementApp', 'user_management.apps.UserManagementApp',
# Mayan EDMS # Mayan EDMS
'appearance.apps.AppearanceApp',
'checkouts.apps.CheckoutsApp', 'checkouts.apps.CheckoutsApp',
'document_acls.apps.DocumentACLsApp', 'document_acls.apps.DocumentACLsApp',
'document_comments.apps.DocumentCommentsApp', 'document_comments.apps.DocumentCommentsApp',