コード例 #1
0
from common.utils import encapsulate
from dynamic_search.classes import SearchModel
from navigation.api import register_top_menu, register_model_list_columns
from navigation.classes import Link

from .links import (link_projects, link_project_edit, link_project_view,
    link_project_delete, link_project_create, link_agency_project_list,
    #link_project_info_view, link_project_info_edit, link_project_info_delete,
    #link_project_budget_view, link_project_view_basic, link_project_budget_edit, link_project_budget_delete,
    #link_project_details_view, link_project_details_edit, link_project_details_delete,
    link_project_file_list, link_project_file_upload, link_project_file_delete, link_project_file_download)
from .models import (Project, ProjectInfo, ProjectBudget, ProjectFile)
from .permissions import (PERMISSION_PROJECT_EDIT, PERMISSION_PROJECT_DELETE,
        PERMISSION_PROJECT_VIEW, PERMISSION_PROJECT_CREATE)

Link.bind_links([Agency], [link_agency_project_list])

Link.bind_links([Project, 'agency_infrastructure_project_list', 'infrastructure_project_create'], [link_project_create], menu_name='secondary_menu')
Link.bind_links([Project], [link_project_view, link_project_edit, link_project_delete])
#Link.bind_links([Project], [link_project_info_view, link_project_budget_view, link_project_details_view, link_project_opportunities_view, link_project_file_list, link_project_workflow_instance_list], menu_name='form_header')
Link.bind_links([Project], [link_project_view, link_project_file_list], menu_name='form_header')

#Link.bind_links([ProjectInfo], [link_project_info_edit, link_project_info_delete])
#Link.bind_links([ProjectBudget], [link_project_budget_edit, link_project_budget_delete])
#Link.bind_links([ProjectDetails], [link_project_details_edit, link_project_details_delete])
Link.bind_links([ProjectFile, 'infrastructure_project_file_upload', 'infrastructure_project_file_list'], [link_project_file_upload], menu_name='secondary_menu')
Link.bind_links([ProjectFile], [link_project_file_download, link_project_file_delete])

register_model_list_columns(Project, [
    {'name': _(u'name'), 'attribute': 'label'},
#    {'name': _(u'completion (%)'), 'attribute': encapsulate(lambda x: x.get_completion())},
コード例 #2
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from navigation.classes import Link

from .icons import (icon_tools_profile_create, icon_tools_profile_delete,
                    icon_tools_profile_edit, icon_tools_profile_view,
                    icon_agency_tools_profile)
from .permissions import (PERMISSION_TOOLS_PROFILE_EDIT,
                          PERMISSION_TOOLS_PROFILE_DELETE,
                          PERMISSION_TOOLS_PROFILE_VIEW)

link_tools_profile_create = Link(
    text=_(u'add tool profile'),
    view='tools_profile_create',
    args='agency.pk',
    icon=icon_tools_profile_create
)  #, permissions=[PERMISSION_TOOLS_PROFILE_EDIT])
link_tools_profile_delete = Link(
    text=_(u'delete'),
    view='tools_profile_delete',
    args='resolved_object.pk',
    icon=icon_tools_profile_delete
)  #, permissions=[PERMISSION_TOOLS_PROFILE_DELETE])
link_tools_profile_edit = Link(
    text=_(u'edit'),
    view='tools_profile_edit',
    args='resolved_object.pk',
    icon=icon_tools_profile_edit
)  #, permissions=[PERMISSION_TOOLS_PROFILE_EDIT])
link_tools_profile_view = Link(
コード例 #3
0
from agencies.models import Agency
from common.utils import encapsulate
from navigation.api import register_top_menu, register_model_list_columns
from navigation.classes import Link

from .links import (link_agency_software_list, link_agency_software_create,
                    link_agency_software_delete, link_agency_software_edit,
                    link_agency_software_view)
from .models import Agency, AgencySoftware
from .permissions import (PERMISSION_AGENCY_SOFTWARE_CREATE,
                          PERMISSION_AGENCY_SOFTWARE_DELETE,
                          PERMISSION_AGENCY_SOFTWARE_EDIT,
                          PERMISSION_AGENCY_SOFTWARE_VIEW)

Link.bind_links(['agency_software_list', 'data_create', AgencySoftware],
                [link_agency_software_create],
                menu_name='secondary_menu')
Link.bind_links([Agency], [link_agency_software_list])
Link.bind_links([AgencySoftware], [
    link_agency_software_view, link_agency_software_edit,
    link_agency_software_delete
])

register_model_list_columns(AgencySoftware, [
    {
        'name': _(u'type'),
        'attribute': 'software.software_type'
    },
    {
        'name': _(u'label'),
        'attribute': 'software.label'
コード例 #4
0
from navigation.classes import Link

from .icons import (icon_projects, icon_project_edit, icon_project_delete,
                    icon_project_view, icon_agency_projects,
                    icon_project_create, icon_project_info_edit,
                    icon_project_info_view, icon_project_info_delete,
                    icon_project_budget_edit, icon_project_budget_view,
                    icon_project_budget_delete, icon_project_details_edit,
                    icon_project_details_view, icon_project_details_delete,
                    icon_project_file_list, icon_project_file_upload,
                    icon_project_file_delete, icon_project_file_download)
from .permissions import (PERMISSION_PROJECT_EDIT, PERMISSION_PROJECT_DELETE,
                          PERMISSION_PROJECT_VIEW)

link_projects = Link(text=_(u'projects'),
                     view='infrastructure_project_list',
                     icon=icon_projects)

link_project_edit = Link(text=_(u'edit'),
                         view='infrastructure_project_edit',
                         args='resolved_object.pk',
                         icon=icon_project_edit)
link_project_delete = Link(text=_(u'delete'),
                           view='infrastructure_project_delete',
                           args='resolved_object.pk',
                           icon=icon_project_delete)
link_project_view = Link(text=_(u'view'),
                         view='infrastructure_project_view',
                         args='resolved_object.pk',
                         icon=icon_project_view)
link_project_view_basic = Link(text=_(u'basic'),
コード例 #5
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from navigation.classes import Link

from .icons import (icon_user, icon_user_add, icon_user_edit, icon_user_delete,
                    icon_group, icon_group_add, icon_group_edit,
                    icon_group_delete, icon_set_password, icon_group_members)
from .permissions import (PERMISSION_USER_CREATE, PERMISSION_USER_EDIT,
                          PERMISSION_USER_VIEW, PERMISSION_USER_DELETE,
                          PERMISSION_GROUP_CREATE, PERMISSION_GROUP_EDIT,
                          PERMISSION_GROUP_VIEW, PERMISSION_GROUP_DELETE)

user_list = Link(text=_(u'user list'),
                 view='user_list',
                 icon=icon_user,
                 permissions=[PERMISSION_USER_VIEW])
user_setup = Link(text=_(u'users'),
                  view='user_list',
                  icon=icon_user,
                  permissions=[PERMISSION_USER_VIEW],
                  children_view_regex=[r'^user_'])
user_add = Link(text=_(u'create new user'),
                view='user_add',
                icon=icon_user_add,
                permissions=[PERMISSION_USER_CREATE])
user_edit = Link(text=_(u'edit'),
                 view='user_edit',
                 args='object.id',
                 icon=icon_user_edit,
                 permissions=[PERMISSION_USER_EDIT])
コード例 #6
0
ファイル: __init__.py プロジェクト: cericoda/rua
    user_add,
    user_delete,
    user_multiple_delete,
    user_set_password,
    user_multiple_set_password,
    user_groups,
    group_list,
    group_setup,
    group_edit,
    group_add,
    group_delete,
    group_multiple_delete,
    group_members,
)

Link.bind_links([User], [user_edit, user_set_password, user_groups, user_delete])
Link.bind_links(
    [User, "user_multiple_set_password", "user_multiple_delete", "user_list", "user_add"],
    [user_list, user_add],
    menu_name=u"secondary_menu",
)
register_multi_item_links(["user_list"], [user_multiple_set_password, user_multiple_delete])

Link.bind_links([Group], [group_edit, group_members, group_delete])
Link.bind_links(
    ["group_multiple_delete", "group_delete", "group_edit", "group_list", "group_add", "group_members"],
    [group_list, group_add],
    menu_name=u"secondary_menu",
)
register_multi_item_links(["group_list"], [group_multiple_delete])
コード例 #7
0
ファイル: __init__.py プロジェクト: Budet94/lean
from navigation.classes import Link
from navigation.api import register_top_menu
from project_setup.api import register_setup
from project_tools.api import register_tool

from .links import (link_password_change, link_current_user_details,
    link_current_user_edit, link_about, link_license, link_admin_site,
    link_sentry)
from .models import AutoAdminSingleton
import common.settings as common_settings
from .settings import (AUTO_CREATE_ADMIN, AUTO_ADMIN_USERNAME,
    AUTO_ADMIN_PASSWORD, TEMPORARY_DIRECTORY)
from .utils import validate_path

Link.bind_links(['current_user_details', 'current_user_edit', 'password_change_view'], [link_current_user_details, link_current_user_edit, link_password_change], menu_name='secondary_menu')
Link.bind_links(['about_view', 'license_view'], [link_about, link_license], menu_name='secondary_menu')

register_top_menu('about', link=link_about, position=-1)


@receiver(post_migrate, dispatch_uid='create_superuser')
def create_superuser(sender, **kwargs):
    """
    From https://github.com/lambdalisue/django-qwert/blob/master/qwert/autoscript/__init__.py
    From http://stackoverflow.com/questions/1466827/ --

    Prevent interactive question about wanting a superuser created. (This code
    has to go in this otherwise empty "models" module so that it gets processed by
    the "syncdb" command during database creation.)
コード例 #8
0
from .icons import (icon_password_change, icon_current_user_details,
                    icon_current_user_edit, icon_about, icon_license,
                    icon_admin_site, icon_bug)


def has_usable_password(context):
    return context['request'].user.has_usable_password


def is_superuser(context):
    return context['request'].user.is_staff or context[
        'request'].user.is_superuser


link_password_change = Link(text=_(u'change password'),
                            view='password_change_view',
                            icon=icon_password_change,
                            condition=has_usable_password)
link_current_user_details = Link(text=_(u'user details'),
                                 view='current_user_details',
                                 icon=icon_current_user_details)
link_current_user_edit = Link(text=_(u'edit details'),
                              view='current_user_edit',
                              icon=icon_current_user_edit)
link_about = Link(text=_('about'), view='about_view', icon=icon_about)
link_license = Link(text=_('license'), view='license_view', icon=icon_license)
link_admin_site = Link(text=_(u'admin site'),
                       view='admin:index',
                       icon=icon_admin_site,
                       condition=is_superuser)
link_sentry = Link(text=_(u'sentry'),
                   view='sentry',
コード例 #9
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from navigation.classes import Link

from .icons import icon_home

home_link = Link(text=_(u'home'), view='home', icon=icon_home)
コード例 #10
0
ファイル: __init__.py プロジェクト: Budet94/lean
from __future__ import absolute_import

from django.contrib.auth.models import User, Group

from navigation.api import register_multi_item_links
from navigation.classes import Link
from project_setup.api import register_setup

from .links import (user_list, user_setup, user_edit, user_add, user_delete,
    user_multiple_delete, user_set_password, user_multiple_set_password,
    user_groups, group_list, group_setup, group_edit, group_add,
    group_delete, group_multiple_delete, group_members)

Link.bind_links([User], [user_edit, user_set_password, user_groups, user_delete])
Link.bind_links([User, 'user_multiple_set_password', 'user_multiple_delete', 'user_list', 'user_add'], [user_list, user_add], menu_name=u'secondary_menu')
register_multi_item_links(['user_list'], [user_multiple_set_password, user_multiple_delete])

Link.bind_links([Group], [group_edit, group_members, group_delete])
Link.bind_links(['group_multiple_delete', 'group_delete', 'group_edit', 'group_list', 'group_add', 'group_members'], [group_list, group_add], menu_name=u'secondary_menu')
register_multi_item_links(['group_list'], [group_multiple_delete])

user_management_views = [
    'user_list', 'user_edit', 'user_add', 'user_delete',
    'user_multiple_delete', 'user_set_password',
    'user_multiple_set_password', 'group_list', 'group_edit', 'group_add',
    'group_delete', 'group_multiple_delete', 'group_members'
]

register_setup(user_setup)
register_setup(group_setup)
コード例 #11
0
from __future__ import absolute_import

from navigation.api import register_multi_item_links
from navigation.classes import Link
from project_setup.api import register_setup

from .classes import (AccessHolder, AccessObjectClass, ClassAccessHolder,
    AccessObject)
from .links import (acl_detail, acl_grant, acl_revoke, acl_holder_new,
    acl_setup_valid_classes, acl_class_list, acl_class_acl_list, acl_class_acl_detail,
    acl_class_new_holder_for, acl_class_grant, acl_class_revoke)


Link.bind_links([AccessHolder], [acl_detail])
register_multi_item_links(['acl_detail'], [acl_grant, acl_revoke])

Link.bind_links([AccessObject], [acl_holder_new], menu_name='sidebar')

register_setup(acl_setup_valid_classes)
Link.bind_links(['acl_setup_valid_classes', 'acl_class_acl_list', 'acl_class_new_holder_for', 'acl_class_acl_detail', 'acl_class_multiple_grant', 'acl_class_multiple_revoke'], [acl_class_list], menu_name='secondary_menu')

Link.bind_links([ClassAccessHolder], [acl_class_acl_detail])

Link.bind_links([AccessObjectClass], [acl_class_acl_list, acl_class_new_holder_for])
register_multi_item_links(['acl_class_acl_detail'], [acl_class_grant, acl_class_revoke])
コード例 #12
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from navigation.classes import Link

from .permissions import (PERMISSION_ROLE_VIEW, PERMISSION_ROLE_EDIT,
    PERMISSION_ROLE_CREATE, PERMISSION_ROLE_DELETE,
    PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE)
from .icons import (icon_role, icon_role_add, icon_role_delete, icon_role_edit,
    icon_permissions, icon_permission_grant, icon_permission_revoke, icon_role_members)

role_list = Link(text=_(u'roles'), view='role_list', icon=icon_role, permissions=[PERMISSION_ROLE_VIEW])
role_create = Link(text=_(u'create new role'), view='role_create', icon=icon_role_add, permissions=[PERMISSION_ROLE_CREATE])
role_edit = Link(text=_(u'edit'), view='role_edit', args='object.id', icon=icon_role_edit, permissions=[PERMISSION_ROLE_EDIT])
role_members = Link(text=_(u'members'), view='role_members', args='object.id', icon=icon_role_members, permissions=[PERMISSION_ROLE_EDIT])
role_permissions = Link(text=_(u'role permissions'), view='role_permissions', args='object.id', icon=icon_permissions, permissions=[PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE])
role_delete = Link(text=_(u'delete'), view='role_delete', args='object.id', icon=icon_role_delete, permissions=[PERMISSION_ROLE_DELETE])

permission_grant = Link(text=_(u'grant'), view='permission_multiple_grant', icon=icon_permission_grant, permissions=[PERMISSION_PERMISSION_GRANT])
permission_revoke = Link(text=_(u'revoke'), view='permission_multiple_revoke', icon=icon_permission_revoke, permissions=[PERMISSION_PERMISSION_REVOKE])
コード例 #13
0
    link_project_budget_delete, link_project_details_view,
    link_project_details_edit, link_project_details_delete,
    link_project_opportunities_view, link_project_opportunities_edit,
    link_project_opportunities_delete, link_project_file_list,
    link_project_file_upload, link_project_file_delete,
    link_project_file_download, link_project_workflow_instance_list,
    link_project_workflow_instance_history_list,
    link_project_workflow_instance_action_submit, link_project_reports_view)
from .models import (Project, ProjectInfo, ProjectBudget, ProjectDetails,
                     ProjectOpportunities, ProjectFile)
# prime workflow permissions
from .permissions import PERMISSION_PROJECT_SUBMIT
from .permissions import (PERMISSION_PROJECT_EDIT, PERMISSION_PROJECT_DELETE,
                          PERMISSION_PROJECT_VIEW, PERMISSION_PROJECT_CREATE)

Link.bind_links([Agency], [link_agency_project_list])

Link.bind_links([Project, 'agency_project_list', 'project_create'],
                [link_project_create],
                menu_name='secondary_menu')
Link.bind_links([Project],
                [link_project_view, link_project_edit, link_project_delete])
Link.bind_links([Project], [
    link_project_view_basic, link_project_info_view, link_project_budget_view,
    link_project_details_view, link_project_opportunities_view,
    link_project_file_list, link_project_workflow_instance_list,
    link_project_reports_view
],
                menu_name='form_header')

Link.bind_links([ProjectInfo],
コード例 #14
0
from acls.api import class_permissions
#from agencies.classes import AgencyElement
from agencies.models import Agency
from common.utils import encapsulate
from navigation.api import register_top_menu, register_model_list_columns
from navigation.classes import Link

from .links import (link_data_create, link_data_delete, link_data_edit,
                    link_data_view, link_agency_data_list)
from .models import AgencyData
from .permissions import (PERMISSION_DATA_CREATE, PERMISSION_DATA_DELETE,
                          PERMISSION_DATA_EDIT, PERMISSION_DATA_VIEW)

#Link.bind_links(['data_list'], [link_data_list], menu_name='secondary_menu')
Link.bind_links(['agency_data_list', 'data_create', AgencyData],
                [link_data_create],
                menu_name='secondary_menu')
Link.bind_links([Agency], [link_agency_data_list])
Link.bind_links([AgencyData],
                [link_data_view, link_data_edit, link_data_delete])

register_model_list_columns(AgencyData, [
    {
        'name': _(u'name'),
        'attribute': 'label'
    },
    {
        'name': _(u'data type'),
        'attribute': 'data_type'
    },
    {
コード例 #15
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from navigation.classes import Link

from .icons import (icon_agency_software_create, icon_agency_software_delete,
                    icon_agency_software_edit, icon_agency_software_view,
                    icon_agency_software)
from .permissions import (PERMISSION_AGENCY_SOFTWARE_EDIT,
                          PERMISSION_AGENCY_SOFTWARE_DELETE,
                          PERMISSION_AGENCY_SOFTWARE_VIEW)

link_agency_software_create = Link(
    text=_(u'add software'),
    view='agency_software_create',
    args='agency.pk',
    icon=icon_agency_software_create
)  #, permissions=[PERMISSION_AGENCY_SOFTWARE_EDIT])
link_agency_software_delete = Link(
    text=_(u'delete'),
    view='agency_software_delete',
    args='resolved_object.pk',
    icon=icon_agency_software_delete
)  #, permissions=[PERMISSION_AGENCY_SOFTWARE_DELETE])
link_agency_software_edit = Link(
    text=_(u'edit'),
    view='agency_software_edit',
    args='resolved_object.pk',
    icon=icon_agency_software_edit
)  #, permissions=[PERMISSION_AGENCY_SOFTWARE_EDIT])
link_agency_software_view = Link(
コード例 #16
0
from agencies.models import Agency
from common.utils import encapsulate
from navigation.api import register_top_menu, register_model_list_columns
from navigation.classes import Link

from .links import (link_agency_tools_profile_list, link_tools_profile_create,
                    link_tools_profile_delete, link_tools_profile_edit,
                    link_tools_profile_view)
from .models import ToolsProfile
from .permissions import (PERMISSION_TOOLS_PROFILE_CREATE,
                          PERMISSION_TOOLS_PROFILE_DELETE,
                          PERMISSION_TOOLS_PROFILE_EDIT,
                          PERMISSION_TOOLS_PROFILE_VIEW)

Link.bind_links(
    [ToolsProfile, 'agency_tools_profile_list', 'tools_profile_create'],
    [link_tools_profile_create],
    menu_name='secondary_menu')
Link.bind_links([Agency], [link_agency_tools_profile_list])

Link.bind_links([ToolsProfile], [
    link_tools_profile_view, link_tools_profile_edit, link_tools_profile_delete
])

register_model_list_columns(ToolsProfile, [
    {
        'name': _(u'creation date and time'),
        'attribute': encapsulate(lambda x: x.datetime_created)
    },
])

#AgencyElement(link_agency_tools_profile_list)
コード例 #17
0
from __future__ import absolute_import

from navigation.api import register_sidebar_template, register_top_menu
from navigation.classes import Link

from .links import search, search_advanced, search_again

register_sidebar_template(['search', 'search_advanced'], 'search_help.html')

#Link.bind_links(['search', 'search_advanced', 'results'], [search, search_advanced], menu_name='form_header')
Link.bind_links(['search', 'search_advanced', 'results'], [search], menu_name='form_header')
Link.bind_links(['results'], [search_again], menu_name='sidebar')

register_sidebar_template(['search', 'search_advanced', 'results'], 'recent_searches.html')

#register_top_menu('search', link=search)
コード例 #18
0
ファイル: __init__.py プロジェクト: Budet94/lean
from acls.api import class_permissions
#from agencies.classes import AgencyElement
from agencies.models import Agency
from common.utils import encapsulate
from navigation.api import register_top_menu, register_model_list_columns
from navigation.classes import Link

from .links import (link_data_create, link_data_delete, link_data_edit,
    link_data_view, link_agency_data_list)
from .models import AgencyData
from .permissions import (PERMISSION_DATA_CREATE, PERMISSION_DATA_DELETE,
    PERMISSION_DATA_EDIT, PERMISSION_DATA_VIEW)

#Link.bind_links(['data_list'], [link_data_list], menu_name='secondary_menu')
Link.bind_links(['agency_data_list', 'data_create', AgencyData], [link_data_create], menu_name='secondary_menu')
Link.bind_links([Agency], [link_agency_data_list])
Link.bind_links([AgencyData], [link_data_view, link_data_edit, link_data_delete])

register_model_list_columns(AgencyData, [
    {'name': _(u'name'), 'attribute': 'label'},
    {'name': _(u'data type'), 'attribute': 'data_type'},
    {'name': _(u'description'), 'attribute': 'description'},
])

#AgencyElement(link_agency_data_list)
class_permissions(Agency, [
        PERMISSION_DATA_CREATE, PERMISSION_DATA_DELETE,
        PERMISSION_DATA_EDIT, PERMISSION_DATA_VIEW
    ]
)
コード例 #19
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from navigation.classes import Link

from .permissions import (ACLS_EDIT_ACL, ACLS_VIEW_ACL,
    ACLS_CLASS_EDIT_ACL, ACLS_CLASS_VIEW_ACL)
from .icons import (icon_acls, icon_acl_detail, icon_acl_grant, icon_acl_revoke,
    icon_acl_holder_new, icon_acl_class_list, icon_acl_class_acl_list,
    icon_acl_class_acl_list, icon_acl_class_acl_detail, icon_acl_class_new_holder_for,
    icon_acl_class_grant, icon_acl_class_revoke)

acl_list = Link(text=_(u'ACLs'), view='acl_list', icon=icon_acls, permissions=[ACLS_VIEW_ACL])
acl_detail = Link(text=_(u'details'), view='acl_detail', args=['access_object.gid', 'object.gid'], icon=icon_acl_detail, permissions=[ACLS_VIEW_ACL])
acl_grant = Link(text=_(u'grant'), view='acl_multiple_grant', icon=icon_acl_grant, permissions=[ACLS_EDIT_ACL])
acl_revoke = Link(text=_(u'revoke'), view='acl_multiple_revoke', icon=icon_acl_revoke, permissions=[ACLS_EDIT_ACL])
acl_holder_new = Link(text=_(u'new holder'), view='acl_holder_new', args='access_object.gid', icon=icon_acl_holder_new, permissions=[ACLS_EDIT_ACL])

acl_setup_valid_classes = Link(text=_(u'Default ACLs'), view='acl_setup_valid_classes', icon=icon_acl_class_list, permissions=[ACLS_CLASS_VIEW_ACL], children_view_regex=[r'^acl_class', r'^acl_setup'])
acl_class_list = Link(text=_(u'List of classes'), view='acl_setup_valid_classes', icon=icon_acl_class_list, permissions=[ACLS_CLASS_VIEW_ACL])
acl_class_acl_list = Link(text=_(u'ACLs for class'), view='acl_class_acl_list', args='object.gid', icon=icon_acl_class_acl_list, permissions=[ACLS_CLASS_VIEW_ACL])
acl_class_acl_detail = Link(text=_(u'details'), view='acl_class_acl_detail', args=['access_object_class.gid', 'object.gid'], icon=icon_acl_class_acl_detail, permissions=[ACLS_CLASS_VIEW_ACL])
acl_class_new_holder_for = Link(text=_(u'New holder'), view='acl_class_new_holder_for', args='object.gid', icon=icon_acl_class_new_holder_for, permissions=[ACLS_CLASS_EDIT_ACL])
acl_class_grant = Link(text=_(u'grant'), view='acl_class_multiple_grant', icon=icon_acl_class_grant, permissions=[ACLS_CLASS_EDIT_ACL])
acl_class_revoke = Link(text=_(u'revoke'), view='acl_class_multiple_revoke', icon=icon_acl_class_revoke, permissions=[ACLS_CLASS_EDIT_ACL])




def get_app_label(context):
コード例 #20
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from agencies.permissions import PERMISSION_AGENCY_EDIT, PERMISSION_AGENCY_VIEW
from navigation.classes import Link

from .icons import (icon_project_reports_view)
from .permissions import (PERMISSION_PROJECT_VIEW)

link_project_reports_view = Link(text=_(u'reports'), view='agency_search_report', icon=icon_project_reports_view)
コード例 #21
0
from django.contrib.auth.models import User
from django.core.exceptions import ObjectDoesNotExist
from django.db.models.signals import post_save

from navigation.api import register_multi_item_links
from navigation.classes import Link
from project_setup.api import register_setup

from .links import (role_list, role_create, role_edit, role_members,
                    role_permissions, role_delete, permission_grant,
                    permission_revoke)
from .models import Role
from .settings import DEFAULT_ROLES

Link.bind_links([Role],
                [role_edit, role_delete, role_permissions, role_members])
Link.bind_links([Role, 'role_list', 'role_create'], [role_list, role_create],
                menu_name='secondary_menu')
register_multi_item_links(['role_permissions'],
                          [permission_grant, permission_revoke])

permission_views = [
    'role_list', 'role_create', 'role_edit', 'role_members',
    'role_permissions', 'role_delete'
]


def user_post_save(sender, instance, **kwargs):
    if kwargs.get('created', False):
        for default_role in DEFAULT_ROLES:
            if isinstance(default_role, Role):
コード例 #22
0
from navigation.classes import Link
from navigation.api import register_top_menu
from project_setup.api import register_setup
from project_tools.api import register_tool

from .links import (link_password_change, link_current_user_details,
                    link_current_user_edit, link_about, link_license,
                    link_admin_site, link_sentry)
from .models import AutoAdminSingleton
import common.settings as common_settings
from .settings import (AUTO_CREATE_ADMIN, AUTO_ADMIN_USERNAME,
                       AUTO_ADMIN_PASSWORD, TEMPORARY_DIRECTORY)
from .utils import validate_path

Link.bind_links(
    ['current_user_details', 'current_user_edit', 'password_change_view'],
    [link_current_user_details, link_current_user_edit, link_password_change],
    menu_name='secondary_menu')
Link.bind_links(['about_view', 'license_view'], [link_about, link_license],
                menu_name='secondary_menu')

register_top_menu('about', link=link_about, position=-1)


@receiver(post_migrate, dispatch_uid='create_superuser')
def create_superuser(sender, **kwargs):
    """
    From https://github.com/lambdalisue/django-qwert/blob/master/qwert/autoscript/__init__.py
    From http://stackoverflow.com/questions/1466827/ --

    Prevent interactive question about wanting a superuser created. (This code
    has to go in this otherwise empty "models" module so that it gets processed by
コード例 #23
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from navigation.classes import Link

from .icons import (icon_agencies, icon_agency_edit, icon_agency_delete,
                    icon_agency_details, icon_agency_view, icon_agency_acls)
from .permissions import (PERMISSION_AGENCY_EDIT, PERMISSION_AGENCY_DELETE,
                          PERMISSION_AGENCY_VIEW)

link_agency_list = Link(text=_(u'all agencies'),
                        view='agency_list',
                        icon=icon_agencies)
link_agencies = Link(text=_(u'agencies'),
                     view='agency_list',
                     icon=icon_agencies)
link_agency_edit = Link(text=_(u'edit'),
                        view='agency_edit',
                        args='resolved_object.pk',
                        icon=icon_agency_edit,
                        permissions=[PERMISSION_AGENCY_EDIT])
link_agency_delete = Link(text=_(u'delete'),
                          view='agency_delete',
                          args='resolved_object.pk',
                          icon=icon_agency_delete,
                          permissions=[PERMISSION_AGENCY_DELETE])
link_agency_details = Link(text=_(u'forms'),
                           view='agency_details',
                           args='resolved_object.pk',
                           icon=icon_agency_details,
コード例 #24
0
#from agencies.classes import AgencyElement
from agencies.models import Agency
from common.utils import encapsulate
from navigation.api import register_top_menu, register_model_list_columns
from navigation.classes import Link

from .links import (link_circuit_create, link_circuit_delete, link_circuit_edit,
    link_circuit_view, link_agency_circuit_list, link_equipment_create,
    link_equipment_delete, link_equipment_edit, link_equipment_view, link_agency_equipment_list)
from .models import Circuit, Equipment
from .permissions import (PERMISSION_CIRCUIT_CREATE, PERMISSION_CIRCUIT_DELETE,
    PERMISSION_CIRCUIT_EDIT, PERMISSION_CIRCUIT_VIEW, PERMISSION_EQUIPMENT_CREATE,
    PERMISSION_EQUIPMENT_DELETE, PERMISSION_EQUIPMENT_EDIT, PERMISSION_EQUIPMENT_VIEW)

#Link.bind_links(['equipment_list'], [link_equipment_list], menu_name='secondary_menu')
Link.bind_links(['agency_equipment_list', 'equipment_create', Equipment], [link_equipment_create], menu_name='secondary_menu')
Link.bind_links([Agency], [link_agency_equipment_list])
Link.bind_links([Equipment], [link_equipment_view, link_equipment_edit, link_equipment_delete])

Link.bind_links(['agency_circuit_list', 'circuit_create', Circuit], [link_circuit_create], menu_name='secondary_menu')
Link.bind_links([Agency], [link_agency_circuit_list])
Link.bind_links([Circuit], [link_circuit_view, link_circuit_edit, link_circuit_delete])

register_model_list_columns(Equipment, [
    {'name': _(u'name'), 'attribute': 'label'},
])

register_model_list_columns(Circuit, [
    {'name': _(u'purpose'), 'attribute': 'purpose'},
    {'name': _(u'provider'), 'attribute': 'provider'},
    {'name': _(u'technology'), 'attribute': 'technology'},
コード例 #25
0
ファイル: __init__.py プロジェクト: Budet94/lean
from __future__ import absolute_import

from django.contrib.auth.models import User
from django.core.exceptions import ObjectDoesNotExist
from django.db.models.signals import post_save

from navigation.api import register_multi_item_links
from navigation.classes import Link
from project_setup.api import register_setup

from .links import (role_list, role_create, role_edit, role_members,
    role_permissions, role_delete, permission_grant, permission_revoke)
from .models import Role
from .settings import DEFAULT_ROLES

Link.bind_links([Role], [role_edit, role_delete, role_permissions, role_members])
Link.bind_links([Role, 'role_list', 'role_create'], [role_list, role_create], menu_name='secondary_menu')
register_multi_item_links(['role_permissions'], [permission_grant, permission_revoke])

permission_views = ['role_list', 'role_create', 'role_edit', 'role_members', 'role_permissions', 'role_delete']


def user_post_save(sender, instance, **kwargs):
    if kwargs.get('created', False):
        for default_role in DEFAULT_ROLES:
            if isinstance(default_role, Role):
                #If a model is passed, execute method
                default_role.add_member(instance)
            else:
                #If a role name is passed, lookup the corresponding model
                try:
コード例 #26
0
from django.contrib.auth.models import User, Group
from django.utils.translation import ugettext_lazy as _

from common.utils import encapsulate
from common.widgets import two_state_template
from navigation.api import register_multi_item_links, register_model_list_columns
from navigation.classes import Link
from project_setup.api import register_setup

from .links import (user_list, user_setup, user_edit, user_add, user_delete,
                    user_multiple_delete, user_set_password,
                    user_multiple_set_password, user_groups, group_list,
                    group_setup, group_edit, group_add, group_delete,
                    group_multiple_delete, group_members)

Link.bind_links([User],
                [user_edit, user_set_password, user_groups, user_delete])
Link.bind_links([
    User, 'user_multiple_set_password', 'user_multiple_delete', 'user_list',
    'user_add'
], [user_list, user_add],
                menu_name=u'secondary_menu')
register_multi_item_links(['user_list'],
                          [user_multiple_set_password, user_multiple_delete])

Link.bind_links([Group], [group_edit, group_members, group_delete])
Link.bind_links([
    'group_multiple_delete', 'group_delete', 'group_edit', 'group_list',
    'group_add', 'group_members'
], [group_list, group_add],
                menu_name=u'secondary_menu')
register_multi_item_links(['group_list'], [group_multiple_delete])
コード例 #27
0
ファイル: __init__.py プロジェクト: Code4PuertoRico/rua
from django.contrib.auth.models import User, Group
from django.utils.translation import ugettext_lazy as _

from common.utils import encapsulate
from common.widgets import two_state_template
from navigation.api import (register_multi_item_links, register_model_list_columns,
    register_top_menu)
from navigation.classes import Link

from .links import (link_agencies_menu, link_agency_list, link_agency_add,
    link_agency_edit, link_agency_delete, link_position_add, link_position_delete,
    link_position_edit, link_position_list, link_department_add, link_department_delete,
    link_department_edit, link_department_list)
from .models import Agency, AgencyPosition, AgencyDepartment

Link.bind_links([Agency], [link_agency_edit, link_agency_delete, link_position_list, link_department_list])
Link.bind_links([Agency, 'agency_list', 'agency_add'], [link_agency_list, link_agency_add], menu_name=u'secondary_menu')

Link.bind_links([AgencyPosition, 'position_add', 'position_list'], [link_position_add], menu_name=u'sidebar')
Link.bind_links([AgencyPosition], [link_position_edit, link_position_delete])

Link.bind_links([AgencyDepartment, 'department_add', 'department_list'], [link_department_add], menu_name=u'sidebar')
Link.bind_links([AgencyDepartment], [link_department_edit, link_department_delete])

register_top_menu('agencies_menu', link=link_agencies_menu, position=2)

register_model_list_columns(AgencyDepartment, [
    {
        'name': _(u'main department?'),
        'attribute': encapsulate(lambda x: two_state_template(x.main_department).display_small())
    },
コード例 #28
0
ファイル: __init__.py プロジェクト: giangonz/lean
from navigation.classes import Link

from .links import (
    link_agency_list,
    link_agencies,
    link_agency_edit,
    link_agency_delete,
    link_agency_details,
    link_agency_view,
    link_agency_acl_details,
)
from .models import Agency
from .permissions import PERMISSION_AGENCY_VIEW, PERMISSION_AGENCY_EDIT


Link.bind_links([Agency, "agency_list"], [link_agency_list], menu_name="secondary_menu")
# Link.bind_links([Agency], [link_agency_details, link_agency_view, link_agency_edit, link_agency_delete])
Link.bind_links([Agency], [link_agency_acl_details])  # , link_agency_view, link_agency_edit])#, link_agency_delete])

register_model_list_columns(
    Agency,
    [
        # {'name': _(u'registration'), 'attribute': 'registration'},
        {"name": _(u"name"), "attribute": "name"}
    ],
)

register_top_menu("agencies", link=link_agencies, position=1)

class_permissions(Agency, [PERMISSION_AGENCY_VIEW, PERMISSION_AGENCY_EDIT, ACLS_VIEW_ACL, ACLS_EDIT_ACL])
コード例 #29
0
from common.utils import encapsulate
from common.widgets import two_state_template
from navigation.api import (register_multi_item_links,
                            register_model_list_columns, register_top_menu)
from navigation.classes import Link

from .links import (link_agencies_menu, link_agency_list, link_agency_add,
                    link_agency_edit, link_agency_delete, link_position_add,
                    link_position_delete, link_position_edit,
                    link_position_list, link_department_add,
                    link_department_delete, link_department_edit,
                    link_department_list)
from .models import Agency, AgencyPosition, AgencyDepartment

Link.bind_links([Agency], [
    link_agency_edit, link_agency_delete, link_position_list,
    link_department_list
])
Link.bind_links([Agency, 'agency_list', 'agency_add'],
                [link_agency_list, link_agency_add],
                menu_name=u'secondary_menu')

Link.bind_links([AgencyPosition, 'position_add', 'position_list'],
                [link_position_add],
                menu_name=u'sidebar')
Link.bind_links([AgencyPosition], [link_position_edit, link_position_delete])

Link.bind_links([AgencyDepartment, 'department_add', 'department_list'],
                [link_department_add],
                menu_name=u'sidebar')
Link.bind_links([AgencyDepartment],
                [link_department_edit, link_department_delete])
コード例 #30
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from navigation.classes import Link

from .icons import icon_search, icon_advanced_search, icon_search_again

search = Link(text=_(u'search'),
              view='search',
              icon=icon_search,
              children_view_regex=[r'^search', r'^result'])
search_advanced = Link(text=_(u'advanced search'),
                       view='search_advanced',
                       icon=icon_advanced_search)
search_again = Link(text=_(u'search again'),
                    view='search_again',
                    icon=icon_search_again)
コード例 #31
0
ファイル: __init__.py プロジェクト: Budet94/lean
from django.utils.translation import ugettext_lazy as _

from acls.api import class_permissions
#from agencies.classes import AgencyElement
from agencies.models import Agency
from common.utils import encapsulate
from navigation.api import register_top_menu, register_model_list_columns
from navigation.classes import Link

from .links import (link_agency_software_list, link_agency_software_create,
    link_agency_software_delete, link_agency_software_edit, link_agency_software_view)
from .models import Agency, AgencySoftware
from .permissions import (PERMISSION_AGENCY_SOFTWARE_CREATE, PERMISSION_AGENCY_SOFTWARE_DELETE,
    PERMISSION_AGENCY_SOFTWARE_EDIT, PERMISSION_AGENCY_SOFTWARE_VIEW)

Link.bind_links(['agency_software_list', 'data_create', AgencySoftware], [link_agency_software_create], menu_name='secondary_menu')
Link.bind_links([Agency], [link_agency_software_list])
Link.bind_links([AgencySoftware], [link_agency_software_view, link_agency_software_edit, link_agency_software_delete])

register_model_list_columns(AgencySoftware, [
    {'name': _(u'type'), 'attribute': 'software.software_type'},
    {'name': _(u'label'), 'attribute': 'software.label'},
    {'name': _(u'amount'), 'attribute': 'amount'},
])

#AgencyElement(link_agency_tools_profile_list)
class_permissions(Agency, [
        PERMISSION_AGENCY_SOFTWARE_CREATE, PERMISSION_AGENCY_SOFTWARE_DELETE,
        PERMISSION_AGENCY_SOFTWARE_EDIT, PERMISSION_AGENCY_SOFTWARE_VIEW
    ]
)
コード例 #32
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from navigation.classes import Link

from .icons import icon_setup

link_setup_menu = Link(text=_(u'setup'), view='setup_list', icon=icon_setup)
コード例 #33
0
    icon_projects, icon_project_edit, icon_project_delete, icon_project_view,
    icon_agency_projects, icon_project_create, icon_project_info_edit,
    icon_project_info_view, icon_project_info_delete, icon_project_budget_edit,
    icon_project_budget_view, icon_project_budget_delete,
    icon_project_details_edit, icon_project_details_view,
    icon_project_details_delete, icon_project_opportunities_edit,
    icon_project_opportunities_view, icon_project_opportunities_delete,
    icon_project_file_list, icon_project_file_upload, icon_project_file_delete,
    icon_project_file_download, icon_project_workflow_instance_list,
    icon_project_workflow_instance_history,
    icon_project_workflow_instance_action_submit, icon_project_reports_view)
from .permissions import (PERMISSION_PROJECT_EDIT, PERMISSION_PROJECT_DELETE,
                          PERMISSION_PROJECT_VIEW)

link_projects = Link(text=_(u'projects'),
                     view='project_list',
                     icon=icon_projects)

link_project_edit = Link(text=_(u'edit'),
                         view='project_edit',
                         args='resolved_object.pk',
                         icon=icon_project_edit)
link_project_delete = Link(text=_(u'delete'),
                           view='project_delete',
                           args='resolved_object.pk',
                           icon=icon_project_delete)
link_project_view = Link(text=_(u'view'),
                         view='project_view',
                         args='resolved_object.pk',
                         icon=icon_project_view)
link_project_view_basic = Link(text=_(u'basic'),
コード例 #34
0
ファイル: __init__.py プロジェクト: Budet94/lean
    link_project_delete, link_project_create, link_agency_project_list,
    link_project_info_view, link_project_info_edit, link_project_info_delete,
    link_project_budget_view, link_project_view_basic, link_project_budget_edit, link_project_budget_delete,
    link_project_details_view, link_project_details_edit, link_project_details_delete,
    link_project_opportunities_view, link_project_opportunities_edit, link_project_opportunities_delete,
    link_project_file_list, link_project_file_upload, link_project_file_delete, link_project_file_download,
    link_project_workflow_instance_list, link_project_workflow_instance_history_list,
    link_project_workflow_instance_action_submit,link_project_reports_view)
from .models import (Project, ProjectInfo, ProjectBudget, ProjectDetails,
    ProjectOpportunities, ProjectFile)
# prime workflow permissions
from .permissions import PERMISSION_PROJECT_SUBMIT
from .permissions import (PERMISSION_PROJECT_EDIT, PERMISSION_PROJECT_DELETE,
        PERMISSION_PROJECT_VIEW, PERMISSION_PROJECT_CREATE)

Link.bind_links([Agency], [link_agency_project_list])

Link.bind_links([Project, 'agency_project_list', 'project_create'], [link_project_create], menu_name='secondary_menu')
Link.bind_links([Project], [link_project_view, link_project_edit, link_project_delete])
Link.bind_links([Project], [link_project_view_basic, link_project_info_view, link_project_budget_view, link_project_details_view, link_project_opportunities_view, link_project_file_list, link_project_workflow_instance_list, link_project_reports_view], menu_name='form_header')

Link.bind_links([ProjectInfo], [link_project_info_edit, link_project_info_delete])
Link.bind_links([ProjectBudget], [link_project_budget_edit, link_project_budget_delete])
Link.bind_links([ProjectDetails], [link_project_details_edit, link_project_details_delete])
Link.bind_links([ProjectOpportunities], [link_project_opportunities_edit, link_project_opportunities_delete])
Link.bind_links([ProjectFile, 'project_file_upload', 'project_file_list'], [link_project_file_upload], menu_name='secondary_menu')
Link.bind_links([ProjectFile], [link_project_file_download, link_project_file_delete])

Link.bind_links([WorkflowInstance], [link_project_workflow_instance_history_list, link_project_workflow_instance_action_submit])
#p = ProgressBar()
コード例 #35
0
ファイル: __init__.py プロジェクト: Budet94/lean
from django.utils.translation import ugettext_lazy as _

from acls.api import class_permissions
#from agencies.classes import AgencyElement
from agencies.models import Agency
from common.utils import encapsulate
from navigation.api import register_top_menu, register_model_list_columns
from navigation.classes import Link

from .links import (link_agency_tools_profile_list, link_tools_profile_create,
    link_tools_profile_delete, link_tools_profile_edit, link_tools_profile_view)
from .models import ToolsProfile
from .permissions import (PERMISSION_TOOLS_PROFILE_CREATE, PERMISSION_TOOLS_PROFILE_DELETE,
    PERMISSION_TOOLS_PROFILE_EDIT, PERMISSION_TOOLS_PROFILE_VIEW)

Link.bind_links([ToolsProfile, 'agency_tools_profile_list', 'tools_profile_create'], [link_tools_profile_create], menu_name='secondary_menu')
Link.bind_links([Agency], [link_agency_tools_profile_list])

Link.bind_links([ToolsProfile], [link_tools_profile_view, link_tools_profile_edit, link_tools_profile_delete])

register_model_list_columns(ToolsProfile, [
    {'name': _(u'creation date and time'), 'attribute': encapsulate(lambda x: x.datetime_created)},
])

#AgencyElement(link_agency_tools_profile_list)
class_permissions(Agency, [
        PERMISSION_TOOLS_PROFILE_CREATE, PERMISSION_TOOLS_PROFILE_DELETE,
        PERMISSION_TOOLS_PROFILE_EDIT, PERMISSION_TOOLS_PROFILE_VIEW
    ]
)
コード例 #36
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from navigation.classes import Link

from .icons import (icon_data_create, icon_data_edit, icon_data_delete,
                    icon_data_view, icon_agency_data)
from .permissions import (PERMISSION_DATA_EDIT, PERMISSION_DATA_DELETE,
                          PERMISSION_DATA_VIEW)

link_data_create = Link(
    text=_(u'add data'),
    view='data_create',
    args='agency.pk',
    icon=icon_data_create)  #, permissions=[PERMISSION_EQUIPMENT_EDIT])
link_data_edit = Link(
    text=_(u'edit'),
    view='data_edit',
    args='resolved_object.pk',
    icon=icon_data_edit)  #, permissions=[PERMISSION_EQUIPMENT_EDIT])
link_data_delete = Link(
    text=_(u'delete'),
    view='data_delete',
    args='resolved_object.pk',
    icon=icon_data_delete)  #, permissions=[PERMISSION_EQUIPMENT_DELETE])
link_data_view = Link(
    text=_(u'view'),
    view='data_view',
    args='resolved_object.pk',
    icon=icon_data_view)  #, permissions=[PERMISSION_EQUIPMENT_VIEW])
コード例 #37
0
from __future__ import absolute_import

from django.utils.translation import ugettext_lazy as _

from navigation.classes import Link

from .icons import icon_tool

link_tools_menu = Link(text=_(u'tools'), view='tools_list', icon=icon_tool)
コード例 #38
0
from django.utils.translation import ugettext_lazy as _

from acls.api import class_permissions
from acls.permissions import ACLS_EDIT_ACL, ACLS_VIEW_ACL
from common.utils import encapsulate
from dynamic_search.classes import SearchModel
from navigation.api import register_top_menu, register_model_list_columns
from navigation.classes import Link

from .links import (link_agency_list, link_agencies, link_agency_edit,
                    link_agency_delete, link_agency_details, link_agency_view,
                    link_agency_acl_details)
from .models import Agency
from .permissions import PERMISSION_AGENCY_VIEW, PERMISSION_AGENCY_EDIT

Link.bind_links([Agency, 'agency_list'], [link_agency_list],
                menu_name='secondary_menu')
#Link.bind_links([Agency], [link_agency_details, link_agency_view, link_agency_edit, link_agency_delete])
Link.bind_links(
    [Agency],
    [link_agency_acl_details
     ])  #, link_agency_view, link_agency_edit])#, link_agency_delete])

register_model_list_columns(
    Agency,
    [
        #{'name': _(u'registration'), 'attribute': 'registration'},
        {
            'name': _(u'name'),
            'attribute': 'name'
        },
    ])
コード例 #39
0
from navigation.classes import Link

from .icons import (icon_circuit_create, icon_circuit_edit,
                    icon_circuit_delete, icon_circuit_view,
                    icon_agency_circuits, icon_equipment_create,
                    icon_equipment_edit, icon_equipment_delete,
                    icon_equipment_view, icon_agency_equipment)
from .permissions import (PERMISSION_CIRCUIT_EDIT, PERMISSION_CIRCUIT_DELETE,
                          PERMISSION_CIRCUIT_VIEW, PERMISSION_EQUIPMENT_EDIT,
                          PERMISSION_EQUIPMENT_DELETE,
                          PERMISSION_EQUIPMENT_VIEW)

link_equipment_create = Link(
    text=_(u'add equipment'),
    view='equipment_create',
    args='agency.pk',
    icon=icon_equipment_create)  #, permissions=[PERMISSION_EQUIPMENT_EDIT])
link_equipment_edit = Link(
    text=_(u'edit'),
    view='equipment_edit',
    args='resolved_object.pk',
    icon=icon_equipment_edit)  #, permissions=[PERMISSION_EQUIPMENT_EDIT])
link_equipment_delete = Link(
    text=_(u'delete'),
    view='equipment_delete',
    args='resolved_object.pk',
    icon=icon_equipment_delete)  #, permissions=[PERMISSION_EQUIPMENT_DELETE])
link_equipment_view = Link(
    text=_(u'view'),
    view='equipment_view',