'PROJECT / Project Tracking & Management'

@staticmethod
def project():

    has_role = current.auth.s3_has_role
    if has_role('ADMIN'):
        return M(c='project')(M('Progams', f='programme')(M('Create', m='create')), M('Projects', f='project')(M('Create', m='create')), M('Locations', f='location')(M('Map', m='map')), M('Activities', f='activity', m='summary')(M('Create', m='create'), M('Map', m='map')), M('Reports', f='location', m='report')(M('3W', f='location', m='report'), M('Beneficiaries', f='beneficiary', m='report'), M('Distributions', c='supply', f='distribution', m='report'), M('Funding', f='organisation', m='report')), M('Import', f='project', m='import', p='create')(M('Import    Projects', m='import', p='create'), M('Import    Project    Organizations', f='organisation', m='import', p='create'), M('Import    Project    Locations', f='location', m='import', p='create'), M('Import    Activities', f='activity', m='import', p='create')), M('Partner    Organizations', f='partners')(M('Create', m='create'), M('Import', m='import', p='create')), M('Activity    Types', f='activity_type')(M('Create', m='create')), M('Beneficiary    Types', f='beneficiary_type')(M('Create', m='create')))
    elif has_role('HUM_MANAGER'):
        return M(c='project')(M('Progams', f='programme')(M('Create', m='create')), M('Projects', f='project')(M('Create', m='create')), M('Project    Locations', f='location')(M('Map', m='map')), M('Activities', f='activity', m='summary')(M('Create', m='create'), M('Map', m='map')), M('Reports', f='location', m='report')(M('3W', f='location', m='report'), M('Beneficiaries', f='beneficiary', m='report'), M('Distributions', c='supply', f='distribution', m='report'), M('Funding', f='organisation', m='report')))
    elif has_role('LOGISTICS'):
        return M(c='project')(M('Distributions', f='distribution')())
    elif has_role('ERT_LEADER'):
        return None
    elif has_role('AUTHENTICATED'):
        return M(c='project')(M('Projects', f='project'), M('Activities', f='activity', m='summary')(M('Map', m='map')), M('Reports', f='location', m='report')(M('3W', f='location', m='report'), M('Beneficiaries', f='beneficiary', m='report'), M('Distributions', c='supply', f='distribution', m='report'), M('Funding', f='organisation', m='report')))
    else:
        return M(c='project')(M('Activities', f='activity', m='summary')(M('Map', m='map')), M('Reports', f='location', m='report')(M('3W', f='location', m='report'), M('Beneficiaries', f='beneficiary', m='report'), M('Funding', f='organisation', m='report')))
