示例#1
0
def get_unique_media_list(node, idevice=None):
    '''Returns a list of media which is used only by this idevice'''
    block = block_factory(idevice.as_child())
    media = block.media._js + block.media._css.get('all', [])
    # compressor is always loaded per default
    compressor_url = reverse('tinymce-compressor')
    if compressor_url in media:
        media.remove(compressor_url)
    for idevice in node.idevices.exclude(id=idevice.id):
        block = block_factory(idevice.as_child())
        for js in block.media._js + block.media._css.get('all', []):
            if js in media:
                media.remove(js)
    return media
示例#2
0
def get_unique_media_list(node, idevice=None):
    """Returns a list of media which is used only by this idevice"""
    block = block_factory(idevice.as_child())
    media = block.media._js + block.media._css.get("all", [])
    # compressor is always loaded per default
    compressor_url = reverse("tinymce-compressor")
    if compressor_url in media:
        media.remove(compressor_url)
    for idevice in node.idevices.exclude(id=idevice.id):
        block = block_factory(idevice.as_child())
        for js in block.media._js + block.media._css.get("all", []):
            if js in media:
                media.remove(js)
    return media
示例#3
0
 def test_idevice_factory(self):
     IDEVICE_ID = 1
     
     self.root.add_idevice(self.IDEVICE_TYPE)
     test_idevice = Idevice.objects.get(id=IDEVICE_ID).as_child()
     block = block_factory(test_idevice)
     self.assertTrue("<textarea" in block.renderEdit()) 
示例#4
0
def get_unique_media_list(node, idevice):
    """Returns a list of media which is used only by this idevice"""
    block = block_factory(idevice.as_child())
    media = block.media
    js_modules = block.js_modules
    return {
        'js': media._js,
        'css': media._css,
        'js_modules': js_modules
    }
示例#5
0
 def test_export_resource_substitution(self):
     RESOURCE = 'test.jpg'
     CONTENT = 'src="/exeapp/media/uploads/%s/%s"' % (self.package.user.username,
                                               RESOURCE)
     IDEVICE_ID = 1
     
     self.root.add_idevice(self.IDEVICE_TYPE)
     test_idevice = Idevice.objects.get(id=IDEVICE_ID).as_child()
     test_idevice.content = CONTENT
     test_block = block_factory(test_idevice)
     self.assertTrue(RESOURCE in test_block.renderView())
示例#6
0
 def handle_action(self, idevice_id, action, data):
     '''Removes an iDevice or delegates action to it'''
     idevice = self.idevices.get(pk=idevice_id).as_child()
     from exeapp.views.blocks.blockfactory import block_factory
     block = block_factory(idevice)
     if action == 'delete':
         idevice.delete()
         return ""
     else:
         response = block.process(action, data)
         block.idevice.save()
         return response
示例#7
0
def view_media(page, full_url):
    if full_url:
        return get_media_list(page.node)
    else:
        js = set()
        css = set()
        for idevice in page.node.idevices.all():
            block = block_factory(idevice.as_child())
            for each in block.media._js:
                js.add("<script src='{}'></script>".format(each.split('/')[-1]))
            for each in block.media._css.get('all', []):
                css.add("<link rel='stylesheet' href='{}' />".format(
                                                each.split('/')[-1]))
        return "\n".join(css) + "\n" + "\n".join(js)
示例#8
0
def get_media_list(node, ajax=False):
    '''Returns the idevice-specific media list for a given node. Always
includes tinymce compressor, since it can't be loaded dynamically'''
    # always load tinymce compressor
    media = forms.Media(js=[reverse('tinymce-compressor')])
    for idevice in node.idevices.all():
        idevice = idevice.as_child()
        block = block_factory(idevice)
        media += block.media
        #print "#" * 10
        #print media._js
    if ajax:
        media._js.remove(reverse('tinymce-compressor'))
        return simplejson.dumps(media._js + media._css.get('all', []))
    else:
        return str(media)
示例#9
0
def get_media_list(node, ajax=False):
    """Returns the idevice-specific media list for a given node. Always
includes tinymce compressor, since it can't be loaded dynamically"""
    # always load tinymce compressor
    media = forms.Media(js=[reverse("tinymce-compressor")])
    for idevice in node.idevices.all():
        idevice = idevice.as_child()
        block = block_factory(idevice)
        media += block.media
        # print "#" * 10
        # print media._js
    if ajax:
        media._js.remove(reverse("tinymce-compressor"))
        return simplejson.dumps(media._js + media._css.get("all", []))
    else:
        return str(media)
示例#10
0
 def __init__(self, node, depth, exporter, prev_page=None, next_page=None,
              has_children=False):
     """
     Initialize
     """
     self.depth = depth
     self.node = node
     self.exporter = exporter
     self.prev_page = prev_page
     self.next_page = next_page
     self.has_children = has_children
     self.name = self._generate_name()
     self.view_media = forms.Media()
     for idevice in node.idevices.all():
         block = block_factory(idevice.as_child())
         self.view_media += block.media
示例#11
0
 def __init__(self,
              node,
              depth,
              exporter,
              prev_page=None,
              next_page=None,
              has_children=False):
     """
     Initialize
     """
     self.depth = depth
     self.node = node
     self.exporter = exporter
     self.prev_page = prev_page
     self.next_page = next_page
     self.has_children = has_children
     self.name = self._generate_name()
     self.view_media = forms.Media()
     for idevice in node.idevices.all():
         block = block_factory(idevice.as_child())
         self.view_media += block.media
示例#12
0
def get_media_list(node, ajax=False):
    """Returns the idevice-specific media list for a given node. Always
    includes tinymce compressor, since it can't be loaded dynamically"""
    media = forms.Media(js=[
        "/static/ckeditor/ckeditor/ckeditor.js",
        "/static/filebrowser/js/FB_CKEditor.js"
    ])
    js_modules = set()
    for idevice in node.idevices.all():
        idevice = idevice.as_child()
        block = block_factory(idevice)
        media += block.media
        js_modules = js_modules.union(block.js_modules)
    if ajax:
        return simplejson.dumps({
            "js": media._js,
            "css": media._css.get('all', []),
            "js_modules": list(js_modules)
        })

    else:
        return str(media)
示例#13
0
def get_media_list(node, ajax=False):
    """Returns the idevice-specific media list for a given node. Always
    includes tinymce compressor, since it can't be loaded dynamically"""
    media = forms.Media(
        js=["/static/ckeditor/ckeditor/ckeditor.js",
            "/static/filebrowser/js/FB_CKEditor.js"])
    js_modules = set()
    for idevice in node.idevices.all():
        idevice = idevice.as_child()
        block = block_factory(idevice)
        media += block.media
        js_modules = js_modules.union(block.js_modules)
    if ajax:
        return simplejson.dumps(
            {
                "js": media._js,
                "css": media._css.get('all', []),
                "js_modules": list(js_modules)
            }
        )

    else:
        return str(media)
示例#14
0
def export_idevice(idevice):
    '''Convinience filter, just renders calls render function of a
block'''

    block = block_factory(idevice.as_child())
    return block.renderView()
示例#15
0
def get_unique_media_list(node, idevice):
    """Returns a list of media which is used only by this idevice"""
    block = block_factory(idevice.as_child())
    media = block.media
    js_modules = block.js_modules
    return {'js': media._js, 'css': media._css, 'js_modules': js_modules}
示例#16
0
def render_idevice(idevice):
    """Finds the leaf idevice and renders it"""
    leaf_idevice = idevice.as_child()
    block = block_factory(leaf_idevice)
    return render_to_string("exe/authoring_idevice_form.html",
                            {'block' : block})
示例#17
0
def render_idevice(idevice):
    """Finds the leaf idevice and renders it"""
    leaf_idevice = idevice.as_child()
    block = block_factory(leaf_idevice)
    return render_to_string("exe/authoring_idevice_form.html",
                            {'block': block})
示例#18
0
def export_idevice(idevice):
    '''Convinience filter, just renders calls render function of a
block'''
    
    block = block_factory(idevice.as_child())
    return block.renderView()