Esempio n. 1
0
def filemanager():
    from collections import OrderedDict

    last_visit_root_name = ''
    if 'last_root' in request.cookies:
        last_root_id = request.cookies['last_root']
    else:
        last_root_id = ''

    filemanager_company_list = OrderedDict()

    for user_company in g.user.employments:
        if user_company.has_rights(UserCompany.RIGHT_AT_COMPANY.FILES_BROWSE) == True:
            filemanager_company_list[user_company.company_id] = File.folder_dict(user_company.company,
                                                                                 {'can_upload': FilemanagerRights(
                                                                                     company=user_company.company_id).action_is_allowed(
                                                                                     FilemanagerRights.ACTIONS[
                                                                                         'UPLOAD'])})
    for user_company in g.user.employments:
        if user_company.company.own_portal:
            company_membership_in_portal = db(MemberCompanyPortal, portal_id=user_company.company.own_portal.id). \
                filter(
                MemberCompanyPortal.company_id != user_company.company.id and MemberCompanyPortal.status == 'ACTIVE') \
                .join(Company).filter(Company.status == 'ACTIVE').all()

            for company_membership in company_membership_in_portal:
                if company_membership.company_id not in filemanager_company_list:
                    filemanager_company_list[company_membership.company_id] = File.folder_dict(
                        company_membership.company,
                        {
                            'can_upload': FilemanagerRights(
                                company=company_membership.company_id).action_is_allowed(
                                FilemanagerRights.ACTIONS[
                                    'UPLOAD'])})
    # filemanager_company_list.sort(key=lambda k: k['name'])
    file_manager_called_for = request.args[
        'file_manager_called_for'] if 'file_manager_called_for' in request.args else ''
    file_manager_on_action = jsonmodule.loads(
        request.args['file_manager_on_action']) if 'file_manager_on_action' in request.args else {}
    file_manager_default_action = request.args[
        'file_manager_default_action'] if 'file_manager_default_action' in request.args else 'download'
    get_root = request.args[
        'get_root'] if 'get_root' in request.args else None
    if get_root:
        root = Company.get(get_root)
        last_visit_root_name = (root.name) if root else ''
        last_root_id = root.journalist_folder_file_id if root else ''
    err = True if len(filemanager_company_list) == 0 else False
    return render_template('filemanager.html',
                           filemanager_company_list=json.dumps([v for k, v in filemanager_company_list.items()]),
                           err=err,
                           last_visit_root=last_visit_root_name.replace(
                               '"', '_').replace('*', '_').replace('/', '_').replace('\\', '_').replace('\'', '_'),
                           last_root_id=last_root_id,
                           file_manager_called_for=file_manager_called_for,
                           file_manager_on_action=file_manager_on_action,
                           file_manager_default_action=file_manager_default_action)
def filemanager():
    from collections import OrderedDict
    from profapp.models.company import UserCompany

    last_visit_root_name = ''
    if 'last_root' in request.cookies:
        last_root_id = request.cookies['last_root']
    else:
        last_root_id = ''

    filemanager_company_list = OrderedDict()
    file_manager_called_for = request.args.get('file_manager_called_for', '')

    for company in g.user.companies_employer_active:

        if UserCompany.get_by_user_and_company_ids(
                company_id=company.id).has_rights(
                    RIGHT_AT_COMPANY.FILES_BROWSE):
            filemanager_company_list[company.id] = File.folder_dict(
                company, {
                    'can_upload':
                    EmployeeHasRightAtCompany(
                        RIGHT_AT_COMPANY.FILES_UPLOAD).check(
                            company_id=company.id)
                })

    file_manager_on_action = jsonmodule.loads(
        request.args['file_manager_on_action']
    ) if 'file_manager_on_action' in request.args else {}
    file_manager_default_action = request.args[
        'file_manager_default_action'] if 'file_manager_default_action' in request.args else 'download'
    get_root = request.args['get_root'] if 'get_root' in request.args else None
    if get_root:
        root = Company.get(get_root)
        last_visit_root_name = (root.name) if root else ''
        last_root_id = root.journalist_folder_file_id if root else ''
    err = True if len(filemanager_company_list) == 0 else False
    return render_template(
        'filemanager.html',
        filemanager_company_list=json.dumps(
            [v for k, v in filemanager_company_list.items()]),
        err=err,
        last_visit_root=last_visit_root_name.replace('"', '_').replace(
            '*', '_').replace('/', '_').replace('\\', '_').replace('\'', '_'),
        last_root_id=last_root_id,
        file_manager_called_for=file_manager_called_for,
        file_manager_on_action=file_manager_on_action,
        file_manager_default_action=file_manager_default_action)
def filemanager():
    from collections import OrderedDict
    from profapp.models.company import UserCompany

    last_visit_root_name = ''
    if 'last_root' in request.cookies:
        last_root_id = request.cookies['last_root']
    else:
        last_root_id = ''

    filemanager_company_list = OrderedDict()
    file_manager_called_for = request.args.get('file_manager_called_for', '')

    for company in g.user.companies_employer_active:

        if UserCompany.get_by_user_and_company_ids(company_id=company.id).has_rights(RIGHT_AT_COMPANY.FILES_BROWSE):
            filemanager_company_list[company.id] = File.folder_dict(
                company, {'can_upload': EmployeeHasRightAtCompany(RIGHT_AT_COMPANY.FILES_UPLOAD).check(
                    company_id=company.id)})

    file_manager_on_action = jsonmodule.loads(
        request.args['file_manager_on_action']) if 'file_manager_on_action' in request.args else {}
    file_manager_default_action = request.args[
        'file_manager_default_action'] if 'file_manager_default_action' in request.args else 'download'
    get_root = request.args[
        'get_root'] if 'get_root' in request.args else None
    if get_root:
        root = Company.get(get_root)
        last_visit_root_name = (root.name) if root else ''
        last_root_id = root.journalist_folder_file_id if root else ''
    err = True if len(filemanager_company_list) == 0 else False
    return render_template('filemanager.html',
                           filemanager_company_list=json.dumps([v for k, v in filemanager_company_list.items()]),
                           err=err,
                           last_visit_root=last_visit_root_name.replace(
                               '"', '_').replace('*', '_').replace('/', '_').replace('\\', '_').replace('\'', '_'),
                           last_root_id=last_root_id,
                           file_manager_called_for=file_manager_called_for,
                           file_manager_on_action=file_manager_on_action,
                           file_manager_default_action=file_manager_default_action)
def filemanager():
    last_visit_root_name = ''
    if 'last_root' in request.cookies:
        last_root_id = request.cookies['last_root']
    else:
        last_root_id = ''

    library = []
    members, main_companies = Company.get_members_for_company()
    uniq = set()
    for n, user_company in enumerate(g.user.employer_assoc):
        if user_company.has_rights(UserCompany.RIGHT_AT_COMPANY.FILES_BROWSE):
            library.insert(
                n,
                File.folder_dict(
                    user_company.employer, {
                        'can_upload':
                        File.if_action_allowed(File.ACTIONS['upload'],
                                               user_company.company_id)
                    }))
            uniq.update({user_company.employer.name})
            if user_company.employer.journalist_folder_file_id == last_root_id:
                last_visit_root_name = user_company.employer.name + " files"
            if user_company.employer.name in members:
                for member in members[user_company.employer.name]:
                    if member.company.name not in uniq and member.company.name not in main_companies:
                        library.append(
                            File.folder_dict(
                                member.company, {
                                    'can_upload':
                                    File.if_action_allowed(
                                        File.ACTIONS['upload'],
                                        member.company.id)
                                }))
                        uniq.update({member.company.name})
                        if member.company.journalist_folder_file_id == last_root_id:
                            last_visit_root_name = member.company.name + " files"
    # library.sort(key=lambda k: k['name'])
    file_manager_called_for = request.args[
        'file_manager_called_for'] if 'file_manager_called_for' in request.args else ''
    file_manager_on_action = jsonmodule.loads(
        request.args['file_manager_on_action']
    ) if 'file_manager_on_action' in request.args else {}
    file_manager_default_action = request.args[
        'file_manager_default_action'] if 'file_manager_default_action' in request.args else 'download'
    get_root = request.args['get_root'] if 'get_root' in request.args else None
    if get_root:
        root = Company.get(get_root)
        last_visit_root_name = (root.name + " files") if root else ''
        last_root_id = root.journalist_folder_file_id if root else ''
    err = True if len(library) == 0 else False
    return render_template(
        'filemanager.html',
        library=json.dumps(library),
        err=err,
        last_visit_root=last_visit_root_name.replace('"', '_').replace(
            '*', '_').replace('/', '_').replace('\\', '_').replace('\'', '_'),
        last_root_id=last_root_id,
        file_manager_called_for=file_manager_called_for,
        file_manager_on_action=file_manager_on_action,
        file_manager_default_action=file_manager_default_action)