Example #1
0
def test_site_config_success(config, get_csrf_request_with_db, dbsession):
    from autonomie.views.admin.main.site import (
        AdminSiteView,
        MAIN_SITE_ROUTE,
    )
    from autonomie.models.config import ConfigFiles
    config.add_route(MAIN_SITE_ROUTE, MAIN_SITE_ROUTE)
    image = file(os.path.join(DATASDIR, 'entete5_1.png'), 'r')
    datas = image.read()
    size = len(datas)
    image.seek(0)
    appstruct = {
        'welcome': 'testvalue',
        'logo': {
            'fp': image,
            'mimetype': 'image/png',
            'uid': '1',
            'name': 'F.png',
            'filename': 'F.png',
            'data': image,
            'size': size
        }
    }
    view = AdminSiteView(get_csrf_request_with_db())
    view.submit_success(appstruct)
    dbsession.flush()
    assert get_config()['welcome'] == u'testvalue'
    assert ConfigFiles.get('logo.png').name == 'F.png'
    assert ConfigFiles.get('logo.png').getvalue() == datas
Example #2
0
 def before(self, form):
     """
         Add the appstruct to the form
     """
     config_dict = self.request.config
     logo = ConfigFiles.get('logo.png')
     appstruct = get_config_appstruct(self.request, config_dict, logo)
     form.set_appstruct(appstruct)
     tinymce.need()
Example #3
0
 def before(self, form):
     """
         Add the appstruct to the form
     """
     config_dict = self.request.config
     logo = ConfigFiles.get('logo.png')
     appstruct = get_config_appstruct(self.request, config_dict, logo)
     form.set_appstruct(appstruct)
     tinymce.need()
Example #4
0
 def before(self, form):
     """
         Add the appstruct to the form
     """
     config_dict = self.request.config
     logo = ConfigFiles.get('logo.png')
     appstruct = {}
     if logo is not None:
         appstruct["logo"] = public_file_appstruct(self.request, 'logo.png',
                                                   logo)
     appstruct['welcome'] = config_dict.get('welcome', '')
     form.set_appstruct(appstruct)
Example #5
0
 def _add_pdf_img_to_appstruct(self, data_type, appstruct):
     for file_type in ("header_img", "footer_img"):
         file_name = "%s_%s.png" % (data_type, file_type)
         file_model = ConfigFiles.get(file_name)
         if file_model is not None:
             appstruct[file_type] = {
                 'uid': file_model.id,
                 'filename': file_model.name,
                 'preview_url': self.request.route_url(
                     'public',
                     name=file_name,
                 )
             }
Example #6
0
def test_site_config_success(config, get_csrf_request_with_db, dbsession):
    from autonomie.views.admin.main.site import (
        AdminSiteView,
        MAIN_SITE_ROUTE,
    )
    from autonomie.models.config import ConfigFiles
    config.add_route(MAIN_SITE_ROUTE, MAIN_SITE_ROUTE)
    image = file(os.path.join(DATASDIR, 'entete5_1.png'), 'r')
    datas = image.read()
    size = len(datas)
    image.seek(0)
    appstruct = {
        'welcome': 'testvalue',
        'logo': {'fp': image, 'mimetype': 'image/png', 'uid': '1',
                 'name': 'F.png', 'filename': 'F.png', 'data': image,
                 'size': size}
    }
    view = AdminSiteView(get_csrf_request_with_db())
    view.submit_success(appstruct)
    dbsession.flush()
    assert get_config()['welcome'] == u'testvalue'
    assert ConfigFiles.get('logo.png').name == 'F.png'
    assert ConfigFiles.get('logo.png').getvalue() == datas
Example #7
0
    def before(self, form):
        appstruct = {}

        file_name = u"competence_header.png"
        file_model = ConfigFiles.get(file_name)
        if file_model is not None:
            appstruct['header_img'] = {
                'uid': file_model.id,
                'filename': file_model.name,
                'preview_url': self.request.route_url(
                    'public',
                    name=file_name,
                )
            }
        form.set_appstruct(appstruct)
Example #8
0
    def before(self, form):
        appstruct = {}

        file_name = u"competence_header.png"
        file_model = ConfigFiles.get(file_name)
        if file_model is not None:
            appstruct['header_img'] = {
                'uid': file_model.id,
                'filename': file_model.name,
                'preview_url': self.request.route_url(
                    'public',
                    name=file_name,
                )
            }
        form.set_appstruct(appstruct)
Example #9
0
 def _add_pdf_img_to_appstruct(self, data_type, appstruct):
     for file_type in ("header_img", "footer_img"):
         file_name = "%s_%s.png" % (data_type, file_type)
         file_model = ConfigFiles.get(file_name)
         if file_model is not None:
             appstruct[file_type] = {
                 'uid':
                 file_model.id,
                 'filename':
                 file_model.name,
                 'preview_url':
                 self.request.route_url(
                     'public',
                     name=file_name,
                 )
             }
Example #10
0
def fetch_resource(uri, rel):
    """
        Callback used by pisa to locally retrieve ressources
        giving the uri
        if the uri starts with /files : we're looking for a db file
        else we're looking for a static resource
    """
    f_regex_group = FILEPATH_REGX.match(uri)
    pf_regex_group = PUBLIC_FILES_REGX.match(uri)

    if f_regex_group is not None:
        # C'est un modèle File que l'on doit renvoyer
        filename = f_regex_group.group('fileid')
        # On récupère l'objet fichier
        from autonomie.models.files import File
        fileobj = File.get(filename)
        resource = get_db_file_resource(fileobj)

    elif pf_regex_group is not None:
        key = pf_regex_group.group('filekey')
        from autonomie.models.config import ConfigFiles
        fileobj = ConfigFiles.get(key)
        resource = get_db_file_resource(fileobj)

    else:
        # C'est un fichier statique
        request = get_current_request()
        introspector = request.registry.introspector
        if uri.startswith('/'):
            uri = uri[1:]
        mainuri, sep, relative_filepath = uri.partition('/')
        mainuri = mainuri + '/'
        resource = ''
        for staticpath in introspector.get_category('static views'):
            if mainuri == staticpath['introspectable']['name']:
                basepath = staticpath['introspectable']['spec']
                resource = join(basepath, relative_filepath).encode('utf-8')
                if ':' in resource:
                    package, filename = resource.split(':')
                    resource = pkg_resources.resource_filename(
                        package,
                        filename,
                    )
                break
    return resource
Example #11
0
def fetch_resource(uri, rel):
    """
        Callback used by pisa to locally retrieve ressources
        giving the uri
        if the uri starts with /files : we're looking for a db file
        else we're looking for a static resource
    """
    f_regex_group = FILEPATH_REGX.match(uri)
    pf_regex_group = PUBLIC_FILES_REGX.match(uri)

    if f_regex_group is not None:
        # C'est un modèle File que l'on doit renvoyer
        filename = f_regex_group.group('fileid')
        # On récupère l'objet fichier
        from autonomie.models.files import File
        fileobj = File.get(filename)
        resource = get_db_file_resource(fileobj)

    elif pf_regex_group is not None:
        key = pf_regex_group.group('filekey')
        from autonomie.models.config import ConfigFiles
        fileobj = ConfigFiles.get(key)
        resource = get_db_file_resource(fileobj)

    else:
        # C'est un fichier statique
        request = get_current_request()
        introspector = request.registry.introspector
        if uri.startswith('/'):
            uri = uri[1:]
        mainuri, sep, relative_filepath = uri.partition('/')
        mainuri = mainuri + '/'
        resource = ''
        for staticpath in introspector.get_category('static views'):
            if mainuri == staticpath['introspectable']['name']:
                basepath = staticpath['introspectable']['spec']
                resource = join(basepath, relative_filepath).encode('utf-8')
                if ':' in resource:
                    package, filename = resource.split(':')
                    resource = pkg_resources.resource_filename(
                        package,
                        filename,
                    )
                break
    return resource
Example #12
0
    def before(self, form):
        """
            Add appstruct to the current form object
        """
        query = ActivityType.query()
        types = query.filter(ActivityType.active==True)

        modes = ActivityMode.query()

        query = ActivityAction.query()
        query = query.filter(ActivityAction.parent_id==None)
        actions = query.filter(ActivityAction.active==True)


        appstruct = {
            'main': {},
            'types': [type_.appstruct() for type_ in types],
            'modes': [mode.appstruct() for mode in modes],
            'actions': [
                {
                'id': act.id,
                'label': act.label,
                'children': [child.appstruct() for child in act.children],
                }
                for act in actions]
        }

        accompagnement_file = ConfigFiles.get('accompagnement_header.png')
        if accompagnement_file is not None:
            appstruct['main']['header'] = {
                'uid': accompagnement_file.id,
                'filename': accompagnement_file.name,
                'preview_url': self.request.route_url(
                    'public',
                    name='accompagnement_header.png',
                )
            }

        form.set_appstruct(appstruct)
        populate_actionmenu(self.request)