Skip to content

Commit

Permalink
Merge pull request #1040 from c2corg/more-listing-fields
Browse files Browse the repository at this point in the history
More listing fields
  • Loading branch information
brunobesson authored Apr 27, 2021
2 parents 649aae3 + a08fcfd commit f50aa25
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 18 deletions.
1 change: 1 addition & 0 deletions c2corg_api/models/common/fields_outing.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
'date_end',
'elevation_max',
'height_diff_up',
'public_transport',
'condition_rating',
'quality'
]
Expand Down
3 changes: 2 additions & 1 deletion c2corg_api/models/common/fields_route.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,8 @@
'exposition_rock_rating',
'rock_free_rating',
'rock_required_rating',
'aid_rating'
'aid_rating',
'climbing_outdoor_type'
]
},
'ice_climbing': {
Expand Down
4 changes: 3 additions & 1 deletion c2corg_api/models/common/fields_waypoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,9 @@
'equipment_ratings'
],
'required': DEFAULT_REQUIRED,
'listing': DEFAULT_LISTING
'listing': DEFAULT_LISTING + [
'locales.access_period'
]
},
'climbing_indoor': {
'fields': DEFAULT_FIELDS + [
Expand Down
2 changes: 1 addition & 1 deletion c2corg_api/models/waypoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -325,5 +325,5 @@ class ArchiveWaypointLocale(_WaypointLocaleMixin, ArchiveDocumentLocale):
schema_create_waypoint = get_create_schema(schema_waypoint)
schema_update_waypoint = get_update_schema(schema_waypoint)
schema_association_waypoint = restrict_schema(schema_waypoint, [
'elevation', 'locales.title', 'geometry.geom'
'elevation', 'locales.title', 'locales.access_period', 'geometry.geom'
])
38 changes: 26 additions & 12 deletions c2corg_api/tests/views/test_route.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ def setUp(self): # noqa
def test_get_collection(self):
body = self.get_collection()
doc = body['documents'][0]
self.assertNotIn('climbing_outdoor_type', doc)
self.assertNotIn('height_diff_access', doc)

def test_get_collection_paginated(self):
Expand Down Expand Up @@ -79,11 +78,11 @@ def test_get_collection_search(self):
reset_search_index(self.session)

body = self.get_collection_search({'act': 'skitouring'})
self.assertEqual(body.get('total'), 4)
self.assertEqual(len(body.get('documents')), 4)
self.assertEqual(body.get('total'), 3)
self.assertEqual(len(body.get('documents')), 3)

body = self.get_collection_search({'act': 'skitouring', 'limit': 2})
self.assertEqual(body.get('total'), 4)
self.assertEqual(body.get('total'), 3)
self.assertEqual(len(body.get('documents')), 2)

body = self.get_collection_search({'hdif': '700,900'})
Expand Down Expand Up @@ -118,13 +117,22 @@ def test_get(self):
self.assertEqual(1, len(linked_waypoints))
self.assertEqual(
self.waypoint.document_id, linked_waypoints[0].get('document_id'))
# check waypoint data in listing
self.assertEqual(
self.waypoint.locales[0].access_period,
linked_waypoints[0].get('locales')[0].get('access_period')
)
self.assertIn('geometry', linked_waypoints[0])
self.assertIn('geom', linked_waypoints[0].get('geometry'))

linked_routes = associations.get('routes')
self.assertEqual(1, len(linked_routes))
self.assertEqual(
self.route4.document_id, linked_routes[0].get('document_id'))
# check route data in listing
self.assertEqual(
self.route4.climbing_outdoor_type,
linked_routes[0].get('climbing_outdoor_type'))
# TODO with geometry now
# self.assertNotIn('geometry', linked_routes[0])

Expand All @@ -145,6 +153,10 @@ def test_get(self):
self.assertEqual(
self.outing1.document_id,
recent_outings['documents'][0].get('document_id'))
# check outing data in listing
self.assertEqual(
self.outing1.public_transport,
recent_outings['documents'][0].get('public_transport'))
self.assertIn('type', recent_outings['documents'][0])

self.assertIn('maps', body)
Expand Down Expand Up @@ -1168,8 +1180,9 @@ def _add_test_data(self):
DocumentRest.create_new_version(self.route3, user_id)

self.route4 = Route(
activities=['skitouring'], elevation_max=1500, elevation_min=700,
height_diff_up=500, height_diff_down=500, durations='1')
activities=['rock_climbing'], elevation_max=1500,
elevation_min=700, height_diff_up=500, height_diff_down=500,
durations='1', climbing_outdoor_type='single')
self.route4.locales.append(RouteLocale(
lang='en', title='Mont Blanc from the air', description='...',
gear='paraglider'))
Expand All @@ -1180,22 +1193,22 @@ def _add_test_data(self):

# add some associations
self.waypoint = Waypoint(
waypoint_type='summit', elevation=4,
waypoint_type='climbing_outdoor', elevation=4,
geometry=DocumentGeometry(
geom='SRID=3857;POINT(635956 5723604)'))
self.waypoint.locales.append(WaypointLocale(
lang='en', title='Mont Granier (en)', description='...',
access='yep'))
lang='en', title='Mont Granier 1 (en)', description='...',
access='yep', access_period='yapa'))
self.waypoint.locales.append(WaypointLocale(
lang='fr', title='Mont Granier (fr)', description='...',
access='ouai'))
lang='fr', title='Mont Granier 1 (fr)', description='...',
access='ouai', access_period='yapa'))
self.session.add(self.waypoint)
self.waypoint2 = Waypoint(
waypoint_type='summit', elevation=4,
geometry=DocumentGeometry(
geom='SRID=3857;POINT(635956 5723604)'))
self.waypoint2.locales.append(WaypointLocale(
lang='en', title='Mont Granier (en)', description='...',
lang='en', title='Mont Granier 2 (en)', description='...',
access='yep'))
self.session.add(self.waypoint2)
self.session.flush()
Expand Down Expand Up @@ -1225,6 +1238,7 @@ def _add_test_data(self):
self.outing1 = Outing(
activities=['skitouring'], date_start=datetime.date(2016, 1, 1),
date_end=datetime.date(2016, 1, 1),
public_transport=True,
locales=[
OutingLocale(
lang='en', title='...', description='...',
Expand Down
7 changes: 4 additions & 3 deletions c2corg_api/views/document_schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
schema_listing_topo_map
from c2corg_api.models.user_profile import USERPROFILE_TYPE, UserProfile, \
schema_listing_user_profile
from c2corg_api.models.waypoint import WAYPOINT_TYPE, schema_waypoint, Waypoint
from c2corg_api.models.waypoint import WAYPOINT_TYPE, schema_waypoint, \
Waypoint, WaypointLocale
from c2corg_api.views import set_author
from c2corg_api.models.common import attributes
from c2corg_api.models.common.fields_outing import fields_outing
Expand Down Expand Up @@ -248,8 +249,8 @@ def adapt_waypoint_schema_for_type(waypoint_type, field_list_type):
adapt_waypoint_schema_for_type, 'waypoint_type', 'listing')

waypoint_documents_config = GetDocumentsConfig(
WAYPOINT_TYPE, Waypoint, schema_waypoint, fields=fields_waypoint,
adapt_schema=waypoint_listing_schema_adaptor)
WAYPOINT_TYPE, Waypoint, schema_waypoint, clazz_locale=WaypointLocale,
fields=fields_waypoint, adapt_schema=waypoint_listing_schema_adaptor)

document_configs = {
WAYPOINT_TYPE: waypoint_documents_config,
Expand Down

0 comments on commit f50aa25

Please sign in to comment.