Exemple #1
0
 def course_module(self):
     if self.request.has_permission('perm:Edit', self.context):
         jqueryui.need()
         touchpunch_js.need()
     response = {}
     response['course'] = find_interface(self.context, ICourse)
     response['course_modules'] = response['course'].items()
     response['in_course'] = self.fikaProfile.in_course(response['course'])
     response['course_module_toggle'] = self._render_course_module_toggle
     response['course_pagination'] = render_course_pagination
     response['module_segments'] = self.context.values()
     response['is_assessment'] = {}
     for segment in self.context.values():
         response['is_assessment'][segment.__name__] = isinstance(segment, Assessment)
         if isinstance(segment, ImageSlideshow):
             lightbox_js.need()
             lightbox_css.need()
             break
         for segmentcontent in segment.values():
             if isinstance(segmentcontent, ImageSlideshow):
                 lightbox_js.need()
                 lightbox_css.need()
                 break
     response['addable_types'] = {}
     factories = get_content_factories(self.request.registry)
     for (obj, addable) in get_addable_content(self.request.registry).items():
         if 'Segment' in addable:
             factory = factories.get(obj, None)
             response['addable_types'][obj] = getattr(factory, 'icon', 'file')
     return response
Exemple #2
0
def content_types_panel(context, request, va, **kw):
    response = {
        'content_factories': get_content_factories(request.registry),
        'addable_content': get_addable_content(request.registry),
        'content_views': get_content_views(request.registry),
        'content_schemas': get_content_schemas(request.registry),
        'workflows': get_workflows(request.registry),
        'acl_iface': IContextACL,
        'local_roles_iface': ILocalRoles,
        }
    return render('arche:templates/sysinfo/content_types.pt', response, request = request)
Exemple #3
0
 def addable_content(self, context):
     _marker = object()
     context_type = getattr(context, 'type_name', None)
     factories = get_content_factories(self.request.registry)
     for (name, addable) in get_addable_content(self.request.registry).items():
         if context_type in addable:
             factory = factories.get(name, None)
             if factory is not None:
                 add_perm = getattr(factory, 'add_permission', _marker)
                 if self.request.has_permission(add_perm, context):
                     yield factory
Exemple #4
0
def can_paste(context, request, view):
    paste_data = request.session.get('__paste_data__')
    if not paste_data:
        return False
    if context.uid == paste_data['uid']:
        return False
    if paste_data['move'] == True:
        path = resource_path(context)
        if view.catalog_search(path=path, uid=paste_data['uid']):
            return False
    cut_obj = view.resolve_uid(paste_data['uid'])
    addable = get_addable_content(request.registry).get(cut_obj.type_name, ())
    if context.type_name not in addable:
        return False
    return request.has_permission(cut_obj.add_permission, context)
Exemple #5
0
def can_paste(context, request, view):
    paste_data = request.session.get('__paste_data__')
    if not paste_data:
        return False
    if context.uid == paste_data['uid']:
        return False
    if paste_data['move'] == True:
        path = resource_path(context)
        if view.catalog_search(path = path, uid = paste_data['uid']):
            return False
    cut_obj = view.resolve_uid(paste_data['uid'])
    addable = get_addable_content(request.registry).get(cut_obj.type_name, ())
    if context.type_name not in addable:
        return False
    return request.has_permission(cut_obj.add_permission, context)
Exemple #6
0
def can_paste(context, request, view):
    paste_data = request.session.get('__paste_data__')
    if not paste_data:
        return False
    if context.uid == paste_data['uid']:
        return False
    cut_obj = view.resolve_uid(paste_data['uid'])
    if not cut_obj:
        return False
    if paste_data['move'] == True:
        if context == cut_obj.__parent__:
            return False
    addable = get_addable_content(request.registry).get(cut_obj.type_name, ())
    if context.type_name not in addable:
        return False
    return request.has_permission(cut_obj.add_permission, context)