def site():
    """
        RESTful CRUD controller
        - used by S3SiteAutocompleteWidget
          which doesn't yet support filtering to just updateable sites
        - used by site_contact_person()
        - used by S3OptionsFilter (e.g. Asset Log)
    """

    # Pre-processor
    def prep(r):
        if r.representation != "json" or \
           r.method not in ("search_ac", "search_address_ac", "site_contact_person"):
            return False

        # Location Filter
        s3db.gis_location_filter(r)
        return True
    s3.prep = prep

    return s3_rest_controller()

# -----------------------------------------------------------------------------
dataset/ETHPy150Open sahana/eden/controllers/org.py/site/operator `and` -> `or`