'Custom Modules Menu'

@classmethod
def menu_modules(cls):

    has_role = current.auth.s3_has_role
    if has_role('ADMIN'):
        return [homepage(), MM('Users', c='admin', f='user'), MM('Master    Data', link=False)(M('Locations', c='gis', f='location'), M('Demographics', c='stats', f='demographic_data'), M('Organizations', c='org', f='organisation'), M('Disasters', c='event', f='event'), M('Documents', c='doc', f='document'), M('Photos', c='doc', f='image'), M('Items', c='supply', f='distribution_item'), M('Beneficiaries', c='dvr', f='person'), M('Staff', c='hrm', f='human_resource'), M('Clinics', c='hms', f='hospital'), M('Offices', c='org', f='office'), M('Schools', c='edu', f='school'), M('Warehouses', c='inv', f='warehouse')), MM('Assessments', c='dc', f='respnse', m='summary')(), MM('Projects', c='project', f='project', m='summary')(), MM('Activities', c='project', f='activity', m='summary')(), MM('SitReps', c='doc', f='sitrep')(), homepage('gis')]
    elif has_role('HUM_MANAGER'):
        return [homepage(), MM('Calendar', c='cms', f='post', m='calendar'), MM('Staff', c='hrm', f='human_resource'), MM('Disasters', c='event', f='event'), MM('Assessments', c='dc', f='respnse', m='summary')(M('Targets', f='target')), MM('Projects', c='project', f='project', m='summary'), MM('4W', c='project', f='activity', m='summary'), MM('SitReps', c='doc', f='sitrep'), MM('Documents', c='doc', f='document'), homepage('gis')]
    elif has_role('LOGISTICS'):
        return [homepage(), M('Distributions', c='project', f='distribution'), homepage('gis')]
    elif has_role('ERT_LEADER'):
        return [homepage(), MM('Assessments', c='dc', f='respnse', m='summary')(M('Targets', f='target')), MM('Projects', c='project', f='project'), MM('Activities', c='project', f='activity'), MM('SitReps', c='doc', f='sitrep'), MM('Documents', c='doc', f='document'), homepage('gis')]
    elif has_role('AUTHENTICATED'):
        return [homepage(), MM('Calendar', c='cms', f='post', m='calendar'), MM('Assessments', c='dc', f='respnse', m='summary'), MM('SitReps', c='doc', f='sitrep'), MM('4W', c='project', f='activity', m='summary'), homepage('gis')]
    else:
        return [homepage(), homepage('gis'), M('4W', c='project', f='activity', m='summary'), MM('SitReps', c='doc', f='sitrep')]
