# HG changeset patch # User Sascha L. Teichmann # Date 1312470302 0 # Node ID d42fa223be4872d011abd99fb6960c173352cb02 # Parent 8637756275e576b7c42c0972e2a49aeabdb08b3b Datacage: added first user specific config for cross sections. flys-artifacts/trunk@2464 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 8637756275e5 -r d42fa223be48 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Thu Aug 04 10:58:00 2011 +0000 +++ b/flys-artifacts/ChangeLog Thu Aug 04 15:05:02 2011 +0000 @@ -1,3 +1,16 @@ +2011-08-04 Sascha L. Teichmann + + * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: + If given an artifact place its identifier into parameters passed to template. + Fixed swapped user/system connections if using the user template. + + * doc/conf/meta-data-user.xml: Recommend w/q facet from old calculations + if an artifact was given that represents a longitudinal section + "Laengsschnitt". + + TODO I: The template uses PostgreSQL specific UUID casts. + TODO II: We need to find a way only to recommend the master artifacts. + 2011-08-04 Sascha L. Teichmann * src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java: @@ -37,7 +50,7 @@ "/art:meta/art:artifact-id/@value" The UUID of the artifact. Optional. Used to fill the template enviroment. - "art:meta/art:user-id/@value" The UUID of the user. Optional. + "/art:meta/art:user-id/@value" The UUID of the user. Optional. If given the user specific template is filled. "/art:meta/art:outs/@value" The list of outs used to recommend for the various outputs. diff -r 8637756275e5 -r d42fa223be48 flys-artifacts/doc/conf/meta-data-user.xml --- a/flys-artifacts/doc/conf/meta-data-user.xml Thu Aug 04 10:58:00 2011 +0000 +++ b/flys-artifacts/doc/conf/meta-data-user.xml Thu Aug 04 15:05:02 2011 +0000 @@ -1,12 +1,53 @@ - - User specific part - ------------------ - - - Current user id: ${user-id} - + + User specific part + ------------------ + + + + SELECT id as user_id FROM users WHERE gid = ${user-id}::uuid + + + SELECT id AS collection_id FROM collections WHERE user_id = ${user_id} + + + SELECT a.id AS a_id, a.state AS a_state, a.gid as a_gid FROM + collection_items ci JOIN artifacts a ON ci.artifact_id = a.id + WHERE collection_id = ${collection_id} AND a.state = ${current-state-id} AND a.gid <> ${artifact-id}::uuid + AND EXISTS (SELECT id FROM artifact_data WHERE artifact_id = a.id AND k = 'river' AND v = ${river}) + + --- TODO: We only need the 'master' artifacts! --- + + + + + SELECT id AS out_id FROM outs WHERE artifact_id = ${a_id} AND name = 'longitudinal_section' + + + SELECT name AS facet_name, num as facet_num, description AS facet_description + FROM facets WHERE out_id = ${out_id} ORDER BY num ASC, name DESC + + + + + + + + + + + + + + + + + + + + + diff -r 8637756275e5 -r d42fa223be48 flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java Thu Aug 04 10:58:00 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java Thu Aug 04 15:05:02 2011 +0000 @@ -72,6 +72,7 @@ Map parameters ) { parameters.put("current-state-id", artifact.getCurrentStateId()); + parameters.put("artifact-id", artifact.identifier()); for (StateData sd: artifact.getAllData()) { Object value = sd.getValue(); @@ -139,9 +140,6 @@ new ArrayList(2); if (userId != null) { // system and user templates - connections.add(new Builder.NamedConnection( - Builder.CONNECTION_USER, systemConnection)); - // get connection to datacage db DataSource dataSource = DBConfig .getInstance() @@ -151,7 +149,10 @@ Connection userConnection = dataSource.getConnection(); try { connections.add(new Builder.NamedConnection( - Builder.CONNECTION_SYSTEM, userConnection, false)); + Builder.CONNECTION_USER, userConnection)); + + connections.add(new Builder.NamedConnection( + Builder.CONNECTION_SYSTEM, systemConnection, false)); userBuilder.build(connections, result, parameters); }