1 | ''' |
---|
2 | BSD Licence |
---|
3 | Copyright (c) 2012, Science & Technology Facilities Council (STFC) |
---|
4 | All rights reserved. |
---|
5 | |
---|
6 | Redistribution and use in source and binary forms, with or without modification, |
---|
7 | are permitted provided that the following conditions are met: |
---|
8 | |
---|
9 | * Redistributions of source code must retain the above copyright notice, |
---|
10 | this list of conditions and the following disclaimer. |
---|
11 | * Redistributions in binary form must reproduce the above copyright notice, |
---|
12 | this list of conditions and the following disclaimer in the documentation |
---|
13 | and/or other materials provided with the distribution. |
---|
14 | * Neither the name of the Science & Technology Facilities Council (STFC) |
---|
15 | nor the names of its contributors may be used to endorse or promote |
---|
16 | products derived from this software without specific prior written permission. |
---|
17 | |
---|
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
---|
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
---|
20 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
---|
21 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS |
---|
22 | BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, |
---|
23 | OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
---|
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
---|
25 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
---|
26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
---|
27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
---|
28 | |
---|
29 | Created on 1 Nov 2011 |
---|
30 | |
---|
31 | @author: mnagni |
---|
32 | ''' |
---|
33 | from django.shortcuts import render_to_response |
---|
34 | from django.core.context_processors import csrf |
---|
35 | from MolesManager.djencoder import encodeToJSON |
---|
36 | from django.utils.safestring import mark_safe |
---|
37 | from ea_model.ceda_metadatamodel.ceda_observation.ceda_observation import CEDA_Observation |
---|
38 | |
---|
39 | |
---|
40 | |
---|
41 | def coView(request, obs_id_str): |
---|
42 | obs_id = int(obs_id_str) |
---|
43 | return splash(request, obs_id) |
---|
44 | |
---|
45 | def splash(request, obs_id): |
---|
46 | """ |
---|
47 | Processes and display a given CEDA_Observation id |
---|
48 | @param request: an HTTP request |
---|
49 | @param obs_id: the CEDA_Observation id |
---|
50 | @return: an HTTPResponse |
---|
51 | """ |
---|
52 | record = None |
---|
53 | if obs_id: |
---|
54 | record = _getCedaObservation(request, obs_id) |
---|
55 | return _finalizeResponse(request, record) |
---|
56 | |
---|
57 | def _finalizeResponse(request, record): |
---|
58 | c = {} |
---|
59 | if record: |
---|
60 | c['coObs'] = mark_safe(encodeToJSON(record)) |
---|
61 | guid = request.moles3EPB.retrieveGUIDFromInstance(record) |
---|
62 | if guid: |
---|
63 | c['guid'] = guid.id |
---|
64 | print c['guid'] |
---|
65 | print c['coObs'] |
---|
66 | |
---|
67 | c.update(csrf(request)) |
---|
68 | return render_to_response('cedaObservation.html', c) |
---|
69 | |
---|
70 | def _getCedaObservation(request, obs_id): |
---|
71 | eagerloadthese = ['identifier.authority', 'resultTime.position.dateTime8601.month', \ |
---|
72 | 'resultAccumulation', 'relatedParty.party', 'result.source.function', 'permission', \ |
---|
73 | 'geographicExtent', 'phenomenonTime', 'keywords', 'description', \ |
---|
74 | 'inSupportOf.abstract', 'dataLineage'] |
---|
75 | return request.moles3EPB.searchSelectiveLoad(CEDA_Observation, obs_id, eagerloadthese) |
---|
76 | #return Moles3EPB.searchEager(CEDA_Observation, obs_id) |
---|