def get(self, summit_id, images=False): with self.get_cursor() as cur: cur.execute( """SELECT s.id, s.name, name_alt, height, interpretation, s.description, ridge_id, r.name AS ridge, coordinates, (SELECT COUNT(*) FROM summits WHERE height >= s.height ) AS number, (SELECT MAX(height)=s.height FROM summits WHERE ridge_id=s.ridge_id) AS main FROM summits s LEFT JOIN ridges r ON s.ridge_id = r.id WHERE s.id=%s""", (summit_id, )) if cur.rowcount < 1: return None # summit = self.__row2summit(cur.fetchone()) summit = Summit(**cur.fetchone()) summit.images = [] if images: summit.images = \ self.summits_images_dao.get_by_summit(summit_id) return summit