diff --git a/.gitignore b/.gitignore index 9ce352673edcd8905cc399866613a520e5d9df0d..db7614340040a11d6bbfbb95a66108e54f733f23 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,6 @@ target # Fichiers temporaires -*~ \ No newline at end of file +*~ +/ui/cypress/videos/ +/ui/cypress/screenshots/ diff --git a/README.md b/README.md index 43e8756f0f35b338d33c337fcffba4459b662815..783220689fb6646ec198296485cba53b5f85d819 100644 --- a/README.md +++ b/README.md @@ -90,8 +90,16 @@ Afin d'essayer l'application, il faut pouvoir se connecter. Il faut pour cela cr ```sql -- mot de passe `xxxx` -INSERT INTO OreSiUser (id, login, password) values ('5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9'::uuid, 'poussin', '$2a$12$4gAH34ZwgvgQNS0pbR5dGem1Nle0AT/.UwrZWfqtqMiJ0hXeYMvUG'); +INSERT INTO OreSiUser (id, login, password, authorizations) values ('5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9'::uuid, 'poussin', '$2a$12$4gAH34ZwgvgQNS0pbR5dGem1Nle0AT/.UwrZWfqtqMiJ0hXeYMvUG','{}'); DROP ROLE IF EXISTS "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9"; CREATE ROLE "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9"; +GRANT "superadmin" TO "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9"; + +``` + +et si on veut qu'il puisse créer des applications +```postgresql GRANT "applicationCreator" TO "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9"; +UPDATE OreSiUser set authorizations='{.*}' + ``` \ No newline at end of file diff --git a/model.json b/model.json index 287fd8d7724a5cf10ab140c5f33251bb5f3be1db..cc930e07c0dde0e101069607fd6e3e1a61f2847e 100644 --- a/model.json +++ b/model.json @@ -1669,7 +1669,7 @@ "Authorization": { "type": "object", "properties": { - "dataGroup": { + "dataGroups": { "type": "array", "items": { "type": "string" @@ -1728,7 +1728,7 @@ "AuthorizationParsed": { "type": "object", "properties": { - "dataGroup": { + "dataGroups": { "type": "array", "items": { "type": "string" @@ -2224,7 +2224,7 @@ }, "title": "CreateAuthorizationRequest" }, - "DataGroup": { + "DataGroups": { "type": "object", "properties": { "id": { @@ -3034,7 +3034,7 @@ "type": "object", "required": [ "components", - "dataGroup", + "dataGroups", "strategy", "variable" ], @@ -3046,7 +3046,7 @@ "$ref": "#/definitions/AddVariableMigrationDescription" } }, - "dataGroup": { + "dataGroups": { "type": "string", "example": "variables", "description": "A data group name" diff --git a/pom.xml b/pom.xml index a5b0d5703bc189c937b754aebb3d4facb38d66be..527aaeed056706057d05de9eb9d5ae615d7d5394 100644 --- a/pom.xml +++ b/pom.xml @@ -331,6 +331,7 @@ <include>fr/inra/oresing/rest/Migration.java</include> <include>fr/inra/oresing/rest/MultiYaml.java</include> <include>fr/inra/oresing/rest/RelationalService.java</include> + <include>fr/inra/oresing/rest/TestReferencesErrors.java</include> </includes> </configuration> </plugin> diff --git a/src/main/java/fr/inra/oresing/model/Authorization.java b/src/main/java/fr/inra/oresing/model/Authorization.java index ffed03259cb0432bce7bdb6ca95f03c81a106caa..8dd7d140a352ca13bd2ecf66fa28fb7d9070dce6 100644 --- a/src/main/java/fr/inra/oresing/model/Authorization.java +++ b/src/main/java/fr/inra/oresing/model/Authorization.java @@ -19,8 +19,8 @@ public class Authorization { private List<String> dataGroups = new LinkedList<>(); private Map<String, Ltree> requiredAuthorizations; - public Authorization(List<String> dataGroup, Map<String, Ltree> requiredAuthorizations, LocalDateTimeRange timeScope) { - this.dataGroups = dataGroup; + public Authorization(List<String> dataGroups, Map<String, Ltree> requiredAuthorizations, LocalDateTimeRange timeScope) { + this.dataGroups = dataGroups; this.requiredAuthorizations = requiredAuthorizations; this.timeScope = timeScope; } @@ -32,8 +32,8 @@ public class Authorization { return String.format("'%s'", (timeScope == null ? LocalDateTimeRange.always() : timeScope).toSqlExpression()); } - public static String datagroupToSQL(List<String> dataGroup) { - return dataGroup.stream() + public static String datagroupToSQL(List<String> dataGroups) { + return dataGroups.stream() .map(dg -> String.format(String.format("'%s'", dg))) .collect(Collectors.joining(",", "array[", "]::TEXT[]")); } diff --git a/src/main/java/fr/inra/oresing/model/BinaryFile.java b/src/main/java/fr/inra/oresing/model/BinaryFile.java index fcdb89e98829598ad2be89038f0a59558f730ac6..216618ee80d39d67ee091cd46d8510249843ec03 100644 --- a/src/main/java/fr/inra/oresing/model/BinaryFile.java +++ b/src/main/java/fr/inra/oresing/model/BinaryFile.java @@ -11,6 +11,7 @@ import java.util.UUID; @Setter @ToString(callSuper = true) public class BinaryFile extends OreSiEntity { + public final static BinaryFileInfos EMPTY_INSTANCE(){ return new BinaryFileInfos(); } diff --git a/src/main/java/fr/inra/oresing/model/BinaryFileDataset.java b/src/main/java/fr/inra/oresing/model/BinaryFileDataset.java index 66557461c540aee9dea72366a34dcd9635dce5f6..e4c06e9f444b61df19b0f088385e91789864404d 100644 --- a/src/main/java/fr/inra/oresing/model/BinaryFileDataset.java +++ b/src/main/java/fr/inra/oresing/model/BinaryFileDataset.java @@ -1,5 +1,6 @@ package fr.inra.oresing.model; +import com.google.common.base.Strings; import fr.inra.oresing.persistence.Ltree; import fr.inra.oresing.rest.OreSiService; import lombok.Getter; @@ -25,12 +26,12 @@ public class BinaryFileDataset { @Override public String toString() { - String authorizationsString = requiredAuthorizations.entrySet().stream() + String authorizationsString =requiredAuthorizations.entrySet().stream() .map(ra -> String.format("%s : %s", ra.getKey(), ra.getValue().getSql())) .collect(Collectors.joining(",", "[", "]")); return String.format("%s -> [%s, %s]", - authorizationsString, OreSiService.DATE_FORMATTER_DDMMYYYY.format(OreSiService.DATE_TIME_FORMATTER.parse(from)), - authorizationsString, OreSiService.DATE_FORMATTER_DDMMYYYY.format(OreSiService.DATE_TIME_FORMATTER.parse(to)) + authorizationsString, Strings.isNullOrEmpty(from) ?"":OreSiService.DATE_FORMATTER_DDMMYYYY.format(OreSiService.DATE_TIME_FORMATTER.parse(from)), + authorizationsString, Strings.isNullOrEmpty(to)?"":OreSiService.DATE_FORMATTER_DDMMYYYY.format(OreSiService.DATE_TIME_FORMATTER.parse(to)) ); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/model/OreSiRoleForUser.java b/src/main/java/fr/inra/oresing/model/OreSiRoleForUser.java new file mode 100644 index 0000000000000000000000000000000000000000..82052b2704131a889d877f9aa99ef4d6796ed644 --- /dev/null +++ b/src/main/java/fr/inra/oresing/model/OreSiRoleForUser.java @@ -0,0 +1,10 @@ +package fr.inra.oresing.model; + +import lombok.Value; + +@Value +public class OreSiRoleForUser { + private String userId; + private String role; + private String applicationPattern; +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/model/OreSiUser.java b/src/main/java/fr/inra/oresing/model/OreSiUser.java index a62fdc075214a31bcdea759b6f000b781f3d57c9..4227a92c241da62a5600f5e29dbddf306f225560 100644 --- a/src/main/java/fr/inra/oresing/model/OreSiUser.java +++ b/src/main/java/fr/inra/oresing/model/OreSiUser.java @@ -3,9 +3,13 @@ package fr.inra.oresing.model; import lombok.Getter; import lombok.Setter; +import java.util.LinkedList; +import java.util.List; + @Getter @Setter public class OreSiUser extends OreSiEntity { private String login; private String password; -} + private List<String> authorizations= new LinkedList<>(); +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java b/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java index b7290852426351b1e6b30cfdcb4fc388b0bf04a7..f290ea05ab28c3f017766ca0035756d00baf74c4 100644 --- a/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java +++ b/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java @@ -2,21 +2,19 @@ package fr.inra.oresing.persistence; import at.favre.lib.crypto.bcrypt.BCrypt; import com.google.common.base.Preconditions; +import com.google.common.base.Strings; import fr.inra.oresing.model.OreSiUser; -import fr.inra.oresing.persistence.roles.OreSiApplicationCreatorRole; -import fr.inra.oresing.persistence.roles.OreSiRole; -import fr.inra.oresing.persistence.roles.OreSiRoleToAccessDatabase; -import fr.inra.oresing.persistence.roles.OreSiUserRole; -import fr.inra.oresing.rest.CreateUserResult; -import fr.inra.oresing.rest.LoginResult; -import fr.inra.oresing.rest.OreSiApiRequestContext; +import fr.inra.oresing.persistence.roles.*; +import fr.inra.oresing.rest.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.List; import java.util.UUID; import java.util.function.Predicate; +import java.util.stream.Collectors; @Component @Transactional @@ -43,25 +41,34 @@ public class AuthenticationService { /** * Utilise le rôle de l'utilisateur courant pour l'accès à la base de données. + * + * @return */ - public void setRoleForClient() { + public OreSiRoleToAccessDatabase setRoleForClient() { OreSiRoleToAccessDatabase roleToAccessDatabase = request.getRequestClient().getRole(); setRole(roleToAccessDatabase); + return roleToAccessDatabase; } /** * Prend le role du superadmin qui a le droit de tout faire + * + * @return */ - public void setRoleAdmin() { + public OreSiSuperAdminRole setRoleAdmin() { setRole(OreSiRole.superAdmin()); + return OreSiRole.superAdmin(); } /** * Prend le role du user passe en parametre, les requetes suivant ne pourra * pas faire des choses que l'utilisateur n'a pas le droit de faire + * + * @return */ - void setRole(OreSiRoleToAccessDatabase roleToAccessDatabase) { + OreSiRoleToAccessDatabase setRole(OreSiRoleToAccessDatabase roleToAccessDatabase) { db.setRole(roleToAccessDatabase); + return roleToAccessDatabase; } /** @@ -81,7 +88,8 @@ public class AuthenticationService { OreSiUserRole userRole = getUserRole(oreSiUser); db.setRole(userRole); boolean authorizedForApplicationCreation = db.hasRole(OreSiRole.applicationCreator()); - return new LoginResult(oreSiUser.getId(), oreSiUser.getLogin(), authorizedForApplicationCreation); + boolean isSuperAdmin = db.hasRole(OreSiRole.superAdmin()); + return new LoginResult(oreSiUser.getId(), oreSiUser.getLogin(), authorizedForApplicationCreation,isSuperAdmin, oreSiUser.getAuthorizations()); } /** @@ -110,10 +118,104 @@ public class AuthenticationService { return new CreateUserResult(result.getId()); } - public void addUserRightCreateApplication(UUID userId) { + public OreSiUser deleteUserRightSuperadmin(UUID userId) { + resetRole(); + final OreSiUser oreSiUser = getOreSiUser(userId); + OreSiUserRole roleToModify = getUserRole(userId); + OreSiSuperAdminRole roleToRevoke = OreSiRole.superAdmin(); + db.removeUserInRole(roleToModify, new OreSiRoleToBeGranted() { + @Override + public String getAsSqlRole() { + return OreSiSuperAdminRole.SUPER_ADMIN.getAsSqlRole(); + } + }); + return userRepository.findById(userId); + } + public OreSiUser addUserRightSuperadmin(UUID userId) { + resetRole(); + final OreSiUser oreSiUser = getOreSiUser(userId); + OreSiUserRole roleToModify = getUserRole(userId); + OreSiSuperAdminRole roleToAdd = OreSiRole.superAdmin(); + db.addUserInRole(roleToModify, new OreSiRoleToBeGranted() { + @Override + public String getAsSqlRole() { + return OreSiSuperAdminRole.SUPER_ADMIN.getAsSqlRole(); + } + }); + return userRepository.findById(userId); + } + + public OreSiUser deleteUserRightCreateApplication(UUID userId, String applicationPattern) { + resetRole(); + final OreSiUser oreSiUser = getOreSiUser(userId); OreSiUserRole roleToModify = getUserRole(userId); + oreSiUser.getAuthorizations().remove(applicationPattern); + OreSiApplicationCreatorRole roleToAdd = OreSiRole.applicationCreator(); + db.removeUserInRole(roleToModify, roleToAdd); + final String expression = oreSiUser.getAuthorizations().stream() + .map(s -> String.format("%s", s)) + .collect(Collectors.joining("|", "name ~ '(", ")'")); + final SqlPolicy sqlPolicy = new SqlPolicy( + String.join("_", OreSiRole.applicationCreator().getAsSqlRole(), userId.toString()), + SqlSchema.main().application(), + SqlPolicy.PermissiveOrRestrictive.RESTRICTIVE, + List.of(SqlPolicy.Statement.ALL), + new OreSiRole() { + @Override + public String getAsSqlRole() { + return userId.toString(); + } + }, + expression, + null + ); + if(oreSiUser.getAuthorizations().isEmpty()){ + db.dropPolicy(sqlPolicy); + }else{ + db.createPolicy(sqlPolicy); + } + + setRoleForClient(); + if(!Strings.isNullOrEmpty(applicationPattern)){ + userRepository.updateAuthorizations(userId, oreSiUser.getAuthorizations()); + userRepository.flush(); + } + resetRole(); + return userRepository.findById(userId); + } + + public OreSiUser addUserRightCreateApplication(UUID userId, String applicationPattern) { + resetRole(); + final OreSiUser oreSiUser = getOreSiUser(userId); + OreSiUserRole roleToModify = getUserRole(userId); + oreSiUser.getAuthorizations().add(applicationPattern); OreSiApplicationCreatorRole roleToAdd = OreSiRole.applicationCreator(); db.addUserInRole(roleToModify, roleToAdd); + final String expression = oreSiUser.getAuthorizations().stream() + .map(s -> String.format("%s", s)) + .collect(Collectors.joining("|", "name ~ '(", ")'")); + final SqlPolicy sqlPolicy = new SqlPolicy( + String.join("_", OreSiRole.applicationCreator().getAsSqlRole(), userId.toString()), + SqlSchema.main().application(), + SqlPolicy.PermissiveOrRestrictive.RESTRICTIVE, + List.of(SqlPolicy.Statement.ALL), + new OreSiRole() { + @Override + public String getAsSqlRole() { + return userId.toString(); + } + }, + expression, + null + ); + db.createPolicy(sqlPolicy); + setRoleForClient(); + if(!Strings.isNullOrEmpty(applicationPattern)){ + userRepository.updateAuthorizations(userId, oreSiUser.getAuthorizations()); + userRepository.flush(); + } + resetRole(); + return userRepository.findById(userId); } public void removeUser(UUID userId) { @@ -135,7 +237,53 @@ public class AuthenticationService { return getUserRole(user); } + public boolean hasRole(UUID uuid, OreSiRole role) { + final CurrentUserRoles rolesForRole = userRepository.getRolesForRole(uuid.toString()); + return rolesForRole.getMemberOf().contains(role.getAsSqlRole()); + } + + public boolean hasRole(OreSiRole role) { + setRoleForClient(); + final CurrentUserRoles currentUserRoles = userRepository.getRolesForCurrentUser(); + setRoleAdmin(); + return currentUserRoles.isSuper() || + currentUserRoles.getCurrentUser().equals(role.getAsSqlRole()) || + currentUserRoles.getMemberOf().contains(role.getAsSqlRole()); + } + + public boolean isSuperAdmin() { + return hasRole(OreSiRole.superAdmin()); + } + public OreSiUserRole getUserRole(OreSiUser user) { return OreSiUserRole.forUser(user); } + + public List<LoginResult> getAuthorizations() { + if(hasRole(OreSiRole.superAdmin())){ + return userRepository.findAll().stream() + .map(oreSiUser -> new LoginResult( + oreSiUser.getId(), + oreSiUser.getLogin(), + oreSiUser.getAuthorizations().size()>0, + hasRole(oreSiUser.getId(),OreSiRole.superAdmin()), + oreSiUser.getAuthorizations())) + .collect(Collectors.toList()); + }else if(hasRole(OreSiRole.applicationCreator())) { + return userRepository.findAll().stream() + .map(oreSiUser -> new LoginResult( + oreSiUser.getId(), + oreSiUser.getLogin(), + oreSiUser.getAuthorizations().size() > 0, + hasRole(oreSiUser.getId(), OreSiRole.applicationCreator()), + oreSiUser.getAuthorizations())) + .collect(Collectors.toList()); + }else{ + throw new NotSuperAdminException(); + } + } + + public OreSiUser getByIdOrLogin(String userIdOrLogin) { + return userRepository.findByLogin(userIdOrLogin).orElseGet(()->userRepository.findById(UUID.fromString(userIdOrLogin))); + } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/persistence/AuthorizationRepository.java b/src/main/java/fr/inra/oresing/persistence/AuthorizationRepository.java index 8ff6e13dd50bf78dc891e6b42bf4e1e0bb3b77a0..43a3f94269004784a8329ea2c1224e19f9ee34da 100644 --- a/src/main/java/fr/inra/oresing/persistence/AuthorizationRepository.java +++ b/src/main/java/fr/inra/oresing/persistence/AuthorizationRepository.java @@ -4,9 +4,11 @@ import fr.inra.oresing.model.Application; import fr.inra.oresing.model.OreSiAuthorization; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Scope; +import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.stereotype.Component; import java.util.List; +import java.util.UUID; @Component @Scope(scopeName = ConfigurableBeanFactory.SCOPE_PROTOTYPE) @@ -41,4 +43,18 @@ public class AuthorizationRepository extends JsonTableInApplicationSchemaReposit public List<OreSiAuthorization> findByDataType(String dataType) { return findByPropertyEquals("dataType", dataType); } + + public List<OreSiAuthorization> findAuthorizations(UUID userId, Application application, String dataType) { + String query = String.join("\n", + "select '"+OreSiAuthorization.class.getName() +"' as \"@class\" , to_jsonb(t) as json", + "from " + getTable().getSqlIdentifier()+ " t", + "where t.application = :applicationId", + " and t.dataType = :dataType", + " and array[ :userId::entityref] <@ t.oresiusers" + ); + MapSqlParameterSource sqlParams = new MapSqlParameterSource("applicationId", getApplication().getId()) + .addValue("dataType", dataType) + .addValue("userId", userId.toString()); + return getNamedParameterJdbcTemplate().query(query, sqlParams, getJsonRowMapper()); + } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/persistence/BinaryFileRepository.java b/src/main/java/fr/inra/oresing/persistence/BinaryFileRepository.java index b870bfdf1e6fb80ba21a3a6e5d1554253ae76f07..3cd1d119c8f17a0abc3846ef9a854172ae70f942 100644 --- a/src/main/java/fr/inra/oresing/persistence/BinaryFileRepository.java +++ b/src/main/java/fr/inra/oresing/persistence/BinaryFileRepository.java @@ -39,7 +39,7 @@ public class BinaryFileRepository extends JsonTableInApplicationSchemaRepository "FROM (select id, application, name, comment, size, params from %s " + "WHERE application = :application::uuid\n" + "and (params->>'published' )::bool\n" + - "and params->'binaryfiledataset'->'requiredauthorizations'= :requiredAuthorizations::jsonb) t", + "and params->'binaryfiledataset'->'requiredAuthorizations'= :requiredAuthorizations::jsonb) t", getEntityClass().getName(), getTable().getSqlIdentifier() ); Optional<BinaryFile> result = getNamedParameterJdbcTemplate().query( @@ -109,7 +109,7 @@ public class BinaryFileRepository extends JsonTableInApplicationSchemaRepository List<String> where = new LinkedList<>(); if (Optional.ofNullable(binaryFileDataset).map(bfd -> bfd.getRequiredAuthorizations()).isPresent()) { for (Map.Entry<String, Ltree> entry : binaryFileDataset.getRequiredAuthorizations().entrySet()) { - String t = String.format("params #> '{\"binaryfiledataset\", \"requiredauthorizations\", \"%1$s\"}' @@ ('$ == \"'||:%1$s||'\"')::jsonpath", entry.getKey()); + String t = String.format("coalesce(params #> '{\"binaryfiledataset\", \"requiredAuthorizations\", \"%1$s\"}', params #> '{\"binaryfiledataset\", \"requiredauthorizations\", \"%1$s\"}') @@ ('$ == \"'||:%1$s||'\"')::jsonpath", entry.getKey()); mapSqlParameterSource.addValue(entry.getKey(), entry.getValue().getSql()); where.add(t); } diff --git a/src/main/java/fr/inra/oresing/persistence/JsonTableRepositoryTemplate.java b/src/main/java/fr/inra/oresing/persistence/JsonTableRepositoryTemplate.java index c48c72975479d035f037e760c947a05acfc6e8a0..cf3b6a2116dff06e1e21abd55bba7d079b955eef 100644 --- a/src/main/java/fr/inra/oresing/persistence/JsonTableRepositoryTemplate.java +++ b/src/main/java/fr/inra/oresing/persistence/JsonTableRepositoryTemplate.java @@ -4,8 +4,10 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Iterators; import com.google.common.collect.UnmodifiableIterator; import fr.inra.oresing.model.OreSiEntity; +import fr.inra.oresing.rest.exceptions.SiOreIllegalArgumentException; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.BadSqlGrammarException; import org.springframework.jdbc.core.namedparam.EmptySqlParameterSource; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; @@ -13,6 +15,8 @@ import org.springframework.jdbc.core.namedparam.SqlParameterSource; import org.springframework.transaction.support.TransactionTemplate; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Stream; abstract class JsonTableRepositoryTemplate<T extends OreSiEntity> implements InitializingBean { @@ -43,21 +47,36 @@ abstract class JsonTableRepositoryTemplate<T extends OreSiEntity> implements Ini // 5min48 pour 100 // 5min50 pour 500 // 6min21 pour 1000 + final String s = namedParameterJdbcTemplate.queryForObject("select CURRENT_USER::TEXT;", Map.of(), String.class); return Iterators.partition(stream.iterator(), 50); } public List<UUID> storeAll(Stream<T> stream) { + final String s = namedParameterJdbcTemplate.queryForObject("select CURRENT_USER::TEXT;", Map.of(), String.class); String query = getUpsertQuery(); List<UUID> uuids = new LinkedList<>(); partition(stream).forEachRemaining(entities -> { entities.forEach(e -> { if (e.getId() == null) { + final String a = namedParameterJdbcTemplate.queryForObject("select login from oresiuser where id::TEXT=CURRENT_USER::TEXT;", Map.of(), String.class); e.setId(UUID.randomUUID()); } }); String json = getJsonRowMapper().toJson(entities); - uuids.addAll(namedParameterJdbcTemplate.queryForList( - query, new MapSqlParameterSource("json", json), UUID.class)); + try{ + uuids.addAll(namedParameterJdbcTemplate.queryForList( + query, new MapSqlParameterSource("json", json), UUID.class)); + }catch (BadSqlGrammarException bsge){ + final Pattern pattern = Pattern.compile(".*new row violates row-level security policy for.*\"(.*)\".*", Pattern.DOTALL); + final Matcher matcher = pattern.matcher(bsge.getMessage()); + if(matcher.matches()){ + final String table = matcher.group(1); + throw new SiOreIllegalArgumentException("noRightOnTable", Map.of( + "table", table) + ); + } + throw bsge; + } }); return uuids; } diff --git a/src/main/java/fr/inra/oresing/persistence/OperationType.java b/src/main/java/fr/inra/oresing/persistence/OperationType.java index afc2bcc60bb44c02844b1ca0bcbc7b31f03c8f83..9004084f20f6957b95da830e0d5dd70f01ac1b8b 100644 --- a/src/main/java/fr/inra/oresing/persistence/OperationType.java +++ b/src/main/java/fr/inra/oresing/persistence/OperationType.java @@ -31,4 +31,4 @@ public enum OperationType { authorizationColumnsDescription.setWithDataGroups(withDataGroups); this.authorizationColumnsDescription = authorizationColumnsDescription; } -} \ No newline at end of file +} diff --git a/src/main/java/fr/inra/oresing/persistence/OreSiSqlSchema.java b/src/main/java/fr/inra/oresing/persistence/OreSiSqlSchema.java index 0d75f16b2a864b012088a7b31269077fff0093dc..fa7677043741557edfeee393b682d3e5fde042ed 100644 --- a/src/main/java/fr/inra/oresing/persistence/OreSiSqlSchema.java +++ b/src/main/java/fr/inra/oresing/persistence/OreSiSqlSchema.java @@ -11,6 +11,10 @@ public enum OreSiSqlSchema implements SqlSchema { return new SqlTable(MAIN, "application"); } + public SqlTable bvinaryFile() { + return new SqlTable(MAIN, "application"); + } + public SqlTable oreSiUser() { return new SqlTable(MAIN, "oreSiUser"); } @@ -19,4 +23,4 @@ public enum OreSiSqlSchema implements SqlSchema { public String getName() { return "public"; } -} +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/persistence/SqlPolicy.java b/src/main/java/fr/inra/oresing/persistence/SqlPolicy.java index fb208dffda6e2c96c8484e4eb01b5b27b882a2f8..8ff0ad5c7981fe43d408a406ee4d4107fb1ebb57 100644 --- a/src/main/java/fr/inra/oresing/persistence/SqlPolicy.java +++ b/src/main/java/fr/inra/oresing/persistence/SqlPolicy.java @@ -3,6 +3,8 @@ package fr.inra.oresing.persistence; import fr.inra.oresing.persistence.roles.OreSiRole; import lombok.Value; +import java.util.List; + @Value public class SqlPolicy implements WithSqlIdentifier { @@ -12,7 +14,7 @@ public class SqlPolicy implements WithSqlIdentifier { PermissiveOrRestrictive permissiveOrRestrictive; - Statement statement; + List<Statement> statements; OreSiRole role; diff --git a/src/main/java/fr/inra/oresing/persistence/SqlService.java b/src/main/java/fr/inra/oresing/persistence/SqlService.java index 9051501b09446ca6bc039d3b94876888c5ace632..aa3523ff2a2720cf7db54330b61b3059a02e84a8 100644 --- a/src/main/java/fr/inra/oresing/persistence/SqlService.java +++ b/src/main/java/fr/inra/oresing/persistence/SqlService.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.sql.PreparedStatement; +import java.util.stream.Collectors; @Slf4j @Component @@ -70,14 +71,14 @@ public class SqlService { using = String.format(" USING (%s)", sqlPolicy.getUsingExpression()); } if(!Strings.isNullOrEmpty(sqlPolicy.getWithCheckExpression())){ - using = String.format(" WITH CHECK (%s)", sqlPolicy.getWithCheckExpression()); + withCheck = String.format(" WITH CHECK (%s)", sqlPolicy.getWithCheckExpression()); } String createPolicySql = String.format( "CREATE POLICY %s ON %s AS %s FOR %s TO %s %s %s", sqlPolicy.getSqlIdentifier(), sqlPolicy.getTable().getSqlIdentifier(), sqlPolicy.getPermissiveOrRestrictive().name(), - sqlPolicy.getStatement().name(), + sqlPolicy.getStatements().stream().map(SqlPolicy.Statement::name).collect(Collectors.joining(",")), sqlPolicy.getRole().getSqlIdentifier(), using, withCheck diff --git a/src/main/java/fr/inra/oresing/persistence/UserRepository.java b/src/main/java/fr/inra/oresing/persistence/UserRepository.java index dfdf47c77b353eb9fcf3ea142dbe81ec31f7ae52..eab7eed11c7a44a2085238f1b0a831e31a89bd72 100644 --- a/src/main/java/fr/inra/oresing/persistence/UserRepository.java +++ b/src/main/java/fr/inra/oresing/persistence/UserRepository.java @@ -2,21 +2,31 @@ package fr.inra.oresing.persistence; import com.google.common.collect.MoreCollectors; import fr.inra.oresing.model.OreSiUser; +import fr.inra.oresing.persistence.roles.CurrentUserRoles; +import fr.inra.oresing.persistence.roles.OreSiRoleToAccessDatabase; +import fr.inra.oresing.rest.OreSiApiRequestContext; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.stereotype.Component; -import java.util.Optional; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; +import java.util.stream.Collectors; @Component public class UserRepository extends JsonTableRepositoryTemplate<OreSiUser> { + @Autowired + private OreSiApiRequestContext request; @Override protected String getUpsertQuery() { - return "INSERT INTO " + getTable().getSqlIdentifier() + " (id, login, password) SELECT id, login, password FROM json_populate_recordset(NULL::" + getTable().getSqlIdentifier() + ", :json::json)" - + " ON CONFLICT (id) DO UPDATE SET updateDate=current_timestamp, login=EXCLUDED.login, password=EXCLUDED.password" + return "INSERT INTO " + getTable().getSqlIdentifier() + " (id, login, password, authorizations) SELECT id, login, password, authorizations FROM json_populate_recordset(NULL::" + getTable().getSqlIdentifier() + ", :json::json)" + + " ON CONFLICT (id) DO UPDATE SET updateDate=current_timestamp, login=EXCLUDED.login, password=EXCLUDED.password, authorizations=EXCLUDED.authorizations" + " RETURNING id"; } - + @Override protected SqlTable getTable() { return SqlSchema.main().oreSiUser(); @@ -29,8 +39,63 @@ public class UserRepository extends JsonTableRepositoryTemplate<OreSiUser> { public Optional<OreSiUser> findByLogin(String login) { String query = "SELECT '" + getEntityClass().getName() + "' as \"@class\", to_jsonb(t) as json FROM " + getTable().getSqlIdentifier() + " t WHERE login = :login"; + Optional<OreSiUser> result = getNamedParameterJdbcTemplate().query(query, new MapSqlParameterSource("login", login), getJsonRowMapper()).stream().collect(MoreCollectors.toOptional()); return result; } -} + + public CurrentUserRoles getRolesForRole(String role) { + String roleParam = role==null?"\"current_user\"()":String.format("\"%s\"", role); + final RowMapper<CurrentUserRoles> rowMapper = new RowMapper<>() { + + @Override + public CurrentUserRoles mapRow(ResultSet rs, int rowNum) throws SQLException { + String currentUser = rs.getString("currentUser"); + List<String> memberOf = Arrays.stream((String[])rs.getArray("memberOf").getArray()) + .collect(Collectors.toList()); + Boolean isSuper = rs.getBoolean("isSuper"); + return new CurrentUserRoles(currentUser, memberOf, isSuper); + } + }; + String query = "WITH RECURSIVE membership_tree(grpid, userid, isSuper) AS (\n" + + " SELECT r.oid, r.oid, r.rolsuper isSuper\n" + + " FROM pg_roles r\n" + + " UNION ALL\n" + + " SELECT m_1.roleid, t_1.userid, t_1.isSuper\n" + + " FROM pg_auth_members m_1, membership_tree t_1\n" + + " WHERE m_1.member = t_1.grpid\n" + + ")\n" + + "SELECT COALESCE(:roleName, CURRENT_USER) \"currentUser\",r.rolname AS usrname,t.isSuper \"isSuper\",\n" + + " array_agg(m.rolname) memberOf\n" + + "FROM membership_tree t, pg_roles r, pg_roles m\n" + + "WHERE t.grpid = m.oid AND t.userid = r.oid\n" + + "and COALESCE(:roleName, CURRENT_USER)=r.rolname\n" + + "group by userid, r.rolname,t.isSuper;"; + final Map<String, String> parameters =new HashMap<>(); + parameters.put("roleName", role); + final CurrentUserRoles currentUserRoles = getNamedParameterJdbcTemplate().queryForObject( + query, + parameters, rowMapper); + Optional.ofNullable(currentUserRoles).map(CurrentUserRoles::getCurrentUser).map(this::findByLogin).ifPresent(currentUserRoles::setUserOptional); + return currentUserRoles; + + + } + public CurrentUserRoles getRolesForCurrentUser(){ + final OreSiRoleToAccessDatabase role = request.getRequestClient().getRole(); + final OreSiUser user = findById(UUID.fromString(role.getAsSqlRole())); + return getRolesForRole(role.getAsSqlRole()); + } + + public int updateAuthorizations(UUID userId, List<String> authorizations) { + String query = "update "+getTable().getSqlIdentifier()+" o\n" + + "set authorizations = :authorizations\n" + + "where id = :uuid::uuid\n"; + return getNamedParameterJdbcTemplate().update( + query, + new MapSqlParameterSource("authorizations", authorizations.toArray(String[]::new)) + .addValue("uuid",userId ) + ); + } +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/persistence/roles/CurrentUserRoles.java b/src/main/java/fr/inra/oresing/persistence/roles/CurrentUserRoles.java new file mode 100644 index 0000000000000000000000000000000000000000..18f5617e104df4f1b9de8c84bb1bae580fb6c72c --- /dev/null +++ b/src/main/java/fr/inra/oresing/persistence/roles/CurrentUserRoles.java @@ -0,0 +1,26 @@ +package fr.inra.oresing.persistence.roles; + +import fr.inra.oresing.model.OreSiUser; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +import java.util.Optional; + +@Getter +public class CurrentUserRoles { + @Setter + Optional<OreSiUser> userOptional; + String currentUser; + List<String> memberOf; + + boolean isSuper; + + public CurrentUserRoles(String currentUser, List<String> memberOf, boolean isSuper) { + this.currentUser = currentUser; + this.memberOf = memberOf; + this.isSuper = isSuper; + } + + +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/persistence/roles/OreSiRole.java b/src/main/java/fr/inra/oresing/persistence/roles/OreSiRole.java index c955582fa892fb104ca40eaf6c9e11d7a0782fe0..20fce679088e3dd26aacbfb9c229cf54529a7f50 100644 --- a/src/main/java/fr/inra/oresing/persistence/roles/OreSiRole.java +++ b/src/main/java/fr/inra/oresing/persistence/roles/OreSiRole.java @@ -2,7 +2,9 @@ package fr.inra.oresing.persistence.roles; import fr.inra.oresing.persistence.WithSqlIdentifier; -public interface OreSiRole extends WithSqlIdentifier { +@FunctionalInterface +public interface +OreSiRole extends WithSqlIdentifier { static OreSiAnonymousRole anonymous() { return OreSiAnonymousRole.ANONYMOUS; @@ -22,4 +24,4 @@ public interface OreSiRole extends WithSqlIdentifier { default String getSqlIdentifier() { return "\"" + getAsSqlRole() + "\""; } -} +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/AuthorizationPublicationHelper.java b/src/main/java/fr/inra/oresing/rest/AuthorizationPublicationHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..c56140072638040907ac42b776100efb1cce2ed2 --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/AuthorizationPublicationHelper.java @@ -0,0 +1,182 @@ +package fr.inra.oresing.rest; + +import fr.inra.oresing.model.*; +import fr.inra.oresing.persistence.*; +import fr.inra.oresing.persistence.roles.CurrentUserRoles; +import fr.inra.oresing.persistence.roles.OreSiRole; +import fr.inra.oresing.rest.exceptions.SiOreIllegalArgumentException; +import lombok.Getter; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.lang.reflect.Method; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; + +public class AuthorizationPublicationHelper { + Method storeFile; + OreSiRepository.RepositoryForApplication repo; + AuthorizationService authorizationService; + OreSiService oreSiService; + private AuthorizationRepository authorizationRepository; + + private UserRepository userRepository; + private Application application; + private String dataType; + private Optional<CurrentUserRoles> currentUserRolesOptional; + @Getter + private boolean isApplicationCreator; + private Boolean canPublishOrUnPublish; + private Boolean canDeposit; + private AuthorizationsResult authorizationsForUser; + @Getter + private boolean isRepository; + private FileOrUUID params; + + private boolean requiredAuthorizationMatchForFile(Map<String, String> requiredAuthorizationInDataBase) { + final Optional<Map<String, Ltree>> requiredAuthorizationForFile = Optional.ofNullable(this.params).map(FileOrUUID::getBinaryfiledataset).map(BinaryFileDataset::getRequiredAuthorizations); + if (requiredAuthorizationForFile.isPresent()) { + for (Map.Entry<String, Ltree> requiredAuthorizationForFileEntry : requiredAuthorizationForFile.get().entrySet()) { + String scope = requiredAuthorizationForFileEntry.getKey(); + String ltree = requiredAuthorizationForFileEntry.getValue().getSql(); + String toCompareLtree = requiredAuthorizationInDataBase.getOrDefault(scope, ""); + if (!ltree.startsWith(toCompareLtree)) { + return false; + } + } + return true; + } else { + return true; + } + } + + public AuthorizationPublicationHelper(OreSiRepository.RepositoryForApplication repositoryForApplication, AuthorizationService authorizationService, OreSiService oreSiService) { + this.repo = repositoryForApplication; + this.authorizationService = authorizationService; + this.oreSiService = oreSiService; + } + + public AuthorizationPublicationHelper init(Application application, UserRepository userRepository, String dataType, FileOrUUID params) { + this.authorizationRepository = repo.authorization(); + this.userRepository = userRepository; + this.application = application; + this.dataType = dataType; + Optional.ofNullable(params).map(par -> par.getBinaryfiledataset() != null ? params.getBinaryfiledataset() : BinaryFileDataset.EMPTY_INSTANCE()).ifPresent(binaryFileDataset -> { + binaryFileDataset.setDatatype(dataType); + this.params = params; + }); + this.currentUserRolesOptional = Optional.ofNullable(userRepository.getRolesForCurrentUser()); + this.isApplicationCreator = currentUserRolesOptional.map(CurrentUserRoles::getMemberOf).map(roles -> roles.stream().anyMatch(role -> OreSiRole.applicationCreator().getAsSqlRole().equals(role))).orElse(false); + this.authorizationsForUser = authorizationService.getAuthorizationsForUser(application.getName(), dataType, currentUserRolesOptional.map(CurrentUserRoles::getCurrentUser).orElse("")); + final Optional<BinaryFileDataset> binaryFileDataset = Optional.ofNullable(params).map(par -> par.getBinaryfiledataset() != null ? params.getBinaryfiledataset() : BinaryFileDataset.EMPTY_INSTANCE()); + this.isRepository = isRepository(application, dataType); + return this; + } + + private boolean isRepository(Application application, String dataType) { + return Optional.of(application.getConfiguration()).map(Configuration::getDataTypes).map(conf -> conf.get(dataType)).map(Configuration.DataTypeDescription::getRepository).isPresent(); + } + + + private boolean canDoOperation(OperationType operationType, String errorMessage) { + final SiOreIllegalArgumentException siOreIllegalArgumentException = new SiOreIllegalArgumentException(errorMessage, Map.of("dataType", dataType, "application", application.getName())); + if (!isRepository && OperationType.depot.equals(operationType)) { + operationType = OperationType.publication; + } + final boolean hasRightForOperationType = hasRightForOperationType(operationType); + if (this.isRepository) { + if (hasRightForOperationType) { + return true; + } + throw siOreIllegalArgumentException; + } + OperationType finalOperationType = operationType; + if (isApplicationCreator || (hasRightForOperationType && Optional.ofNullable(authorizationsForUser).map(AuthorizationsResult::getAuthorizationResults).map(authorizationResult -> authorizationResult.get(finalOperationType)).map(parsedAuhorizations -> parsedAuhorizations.stream().anyMatch(parsedAuhorization -> { + final Map<String, String> requiredAuthorizationsInDatabase = parsedAuhorization.getRequiredAuthorizations(); + if (requiredAuthorizationsInDatabase.isEmpty()) { + return false; + } else { + return requiredAuthorizationMatchForFile(requiredAuthorizationsInDatabase); + } + })).orElse(false))) { + return true; + } + throw siOreIllegalArgumentException; + } + + public boolean hasRightForDeposit() { + if (canDeposit == null) { + this.canDeposit = canDoOperation(OperationType.depot, "noRightsForDeposit"); + } + return canDeposit; + } + + public boolean hasRightForPublishOrUnPublish() { + if (canPublishOrUnPublish == null) { + this.canPublishOrUnPublish = canDoOperation(OperationType.publication, "noRightForPublish"); + } + return canPublishOrUnPublish; + } + + private boolean hasRightForOperationType(OperationType operationType) { + return isApplicationCreator || Optional.ofNullable(authorizationsForUser).map(AuthorizationsResult::getAuthorizationResults).map(authorizationResult -> authorizationResult.get(operationType)).map(list -> !list.isEmpty()).orElse(false); + } + + public BinaryFile loadOrCreateFile(MultipartFile file, FileOrUUID params, Application app) { + assert hasRightForDeposit(); + BinaryFile storedFile = Optional.ofNullable(params).map(param -> param.getFileid()).map(uuid -> repo.binaryFile().tryFindByIdWithData(uuid).orElse(null)).orElseGet(() -> { + UUID fileId = null; + try { + fileId = this.oreSiService.storeFile(app, file, "", Optional.ofNullable(params).map(p -> p.getBinaryfiledataset()).orElse(null)); + } catch (IOException e) { + throw null; + } + BinaryFile binaryFile = repo.binaryFile().tryFindByIdWithData(fileId).orElse(null); + if (binaryFile == null) { + return null; + } + if (params != null) { + binaryFile.getParams().binaryFiledataset = params.binaryfiledataset; + } + fileId = repo.binaryFile().store(binaryFile); + return repo.binaryFile().tryFindByIdWithData(fileId).orElse(null); + }); + return storedFile; + } + + public boolean hasRightForPublishOrUnPublish(Authorization authorization1) { + return isApplicationCreator || Optional.ofNullable(authorizationsForUser).map(AuthorizationsResult::getAuthorizationResults).map(auth -> auth.get(OperationType.publication)).map(auths -> hasRight(authorization1, auths)).orElse(false); + } + + private Boolean hasRight(Authorization authorization1, List<AuthorizationParsed> auths) { + return auths.stream().anyMatch(auth -> hasRight(authorization1, auth)); + } + + private Boolean hasRight(Authorization authorization1, AuthorizationParsed auth) { + if (!auth.getDataGroups().isEmpty() && !auth.getDataGroups().contains(authorization1.getDataGroups().get(0))) { + return false; + } + if (auth.getFromDay() != null) { + if (auth.getFromDay() != null) { + if (!authorization1.getTimeScope().getRange().hasLowerBound()) { + return false; + } else if (authorization1.getTimeScope().getRange().lowerEndpoint().compareTo(auth.getFromDay().atStartOfDay()) < 0) { + return false; + } + } + } + if (auth.getToDay() != null) { + if (auth.getToDay() != null) { + if (!authorization1.getTimeScope().getRange().hasUpperBound()) { + return false; + } else if (authorization1.getTimeScope().getRange().upperEndpoint().compareTo(auth.getToDay().atStartOfDay()) >= 0) { + return false; + } + } + } + return auth.getRequiredAuthorizations().entrySet().stream() + .allMatch(entry -> authorization1.getRequiredAuthorizations().getOrDefault(entry.getKey(), Ltree.empty()).getSql().startsWith(entry.getValue())); + } +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/AuthorizationRequest.java b/src/main/java/fr/inra/oresing/rest/AuthorizationRequest.java index b33be67ac449159a221ba68cdca3c27d408f4333..3e0a8d20ced9561e19731e19ea6a0d441983bc9b 100644 --- a/src/main/java/fr/inra/oresing/rest/AuthorizationRequest.java +++ b/src/main/java/fr/inra/oresing/rest/AuthorizationRequest.java @@ -9,5 +9,7 @@ public class AuthorizationRequest { String applicationNameOrId; + String dataType; + UUID authorizationId; -} +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java b/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java index d4c6fe52caf205910e65bba5bf77d155659f1b2d..4bb1590a2423c427f39d669297e81d5fef23fd89 100644 --- a/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java +++ b/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java @@ -1,7 +1,14 @@ package fr.inra.oresing.rest; import com.google.common.collect.ImmutableSet; +import fr.inra.oresing.model.Application; import fr.inra.oresing.model.OreSiAuthorization; +import fr.inra.oresing.model.OreSiRoleForUser; +import fr.inra.oresing.model.OreSiUser; +import fr.inra.oresing.persistence.AuthenticationService; +import fr.inra.oresing.persistence.OreSiRepository; +import fr.inra.oresing.persistence.UserRepository; +import fr.inra.oresing.persistence.roles.CurrentUserRoles; import fr.inra.oresing.persistence.roles.OreSiRightOnApplicationRole; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; @@ -11,42 +18,79 @@ import org.springframework.web.util.UriUtils; import java.net.URI; import java.nio.charset.Charset; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.UUID; +import java.util.*; @RestController @RequestMapping("/api/v1") public class AuthorizationResources { + @Autowired + private AuthenticationService authenticationService; @Autowired private AuthorizationService authorizationService; + @Autowired + private UserRepository userRepository; + + @Autowired + private OreSiRepository repo; + @GetMapping(value = "/authorization", produces = MediaType.APPLICATION_JSON_VALUE) + public List<LoginResult> getAuthorizations(){ + return authenticationService.getAuthorizations(); + } + @GetMapping(value = "/{applicationNameOrId}/authorization/{dataType}/{userLoginOrId}", produces = MediaType.APPLICATION_JSON_VALUE) + public AuthorizationsResult getAuthorizationsForUser(@PathVariable(name = "applicationNameOrId") String applicationNameOrId, @PathVariable(name = "dataType") String dataType, @PathVariable(name = "userLoginOrId") String userLoginOrId){ + return authorizationService.getAuthorizationsForUser(applicationNameOrId, dataType,userLoginOrId); + } @PostMapping(value = "/applications/{nameOrId}/dataType/{dataType}/authorization", produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity<Map<String, String>> addAuthorization(@RequestBody CreateAuthorizationRequest authorization) { - Set<UUID> previousUsers = new HashSet<>(); - if(authorization.getUuid()==null){ - previousUsers= authorization.getUsersId(); + public ResponseEntity<Map<String, String>> addAuthorization(@PathVariable(name = "nameOrId") String nameOrId, @PathVariable(name = "dataType") String dataType, @RequestBody CreateAuthorizationRequest authorization) { + final CurrentUserRoles rolesForCurrentUser = userRepository.getRolesForCurrentUser(); + final Application application = repo.application().findApplication(nameOrId); + final boolean isApplicationCreator = rolesForCurrentUser.getMemberOf().contains(OreSiRightOnApplicationRole.adminOn(application).getAsSqlRole()); + if (!isApplicationCreator) { + throw new NotApplicationCanSetRightsException(application.getName(), dataType); } - OreSiAuthorization oreSiAuthorization = authorizationService.addAuthorization(authorization); + Set<UUID> previousUsers = authorization.getUuid() == null ? new HashSet<>() : authorization.getUsersId(); + OreSiAuthorization oreSiAuthorization = authorizationService.addAuthorization(application, dataType, authorization, isApplicationCreator); UUID authId = oreSiAuthorization.getId(); - OreSiRightOnApplicationRole roleForAuthorization = null; - if(authorization.getUuid()==null){ - roleForAuthorization = authorizationService.createRoleForAuthorization(authorization, oreSiAuthorization); - } - + authorizationService.createRoleForAuthorization(authorization, oreSiAuthorization); + List<OreSiAuthorization> authorizationsForCurrentUser = authorizationService.findUserAuthorizationsForApplicationAndDataType(application, dataType); + final DatatypeUpdateRoleForManagement datatypeUpdateRoleForManagement = new DatatypeUpdateRoleForManagement(previousUsers, oreSiAuthorization, authorizationsForCurrentUser, isApplicationCreator); authorizationService.updateRoleForManagement(previousUsers, oreSiAuthorization); String uri = UriUtils.encodePath("/applications/" + authorization.getApplicationNameOrId() + "/dataType/" + authorization.getDataType() + "/authorization/" + authId.toString(), Charset.defaultCharset()); return ResponseEntity.created(URI.create(uri)).body(Map.of("authorizationId", authId.toString())); } @GetMapping(value = "/applications/{nameOrId}/dataType/{dataType}/authorization/{authorizationId}", produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity<GetAuthorizationResult> getAuthorization(@PathVariable("nameOrId") String applicationNameOrId, @PathVariable("authorizationId") UUID authorizationId) { - GetAuthorizationResult getAuthorizationResult = authorizationService.getAuthorization(new AuthorizationRequest(applicationNameOrId, authorizationId)); + public ResponseEntity<GetAuthorizationResult> getAuthorization(@PathVariable("nameOrId") String applicationNameOrId, @PathVariable("dataType") String dataType, @PathVariable("authorizationId") UUID authorizationId) { + GetAuthorizationResult getAuthorizationResult = authorizationService.getAuthorization(new AuthorizationRequest(applicationNameOrId, dataType, authorizationId)); return ResponseEntity.ok(getAuthorizationResult); } + @DeleteMapping(value = "/authorization/{role}", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity<OreSiUser> deleteAuthorization( + @PathVariable(name = "role", required = true) String role, + @RequestParam(name = "userIdOrLogin", required = true) String userIdOrLogin, + @RequestParam(name = "applicationPattern", required = false) String applicationPattern) + throws NotSuperAdminException, NotApplicationCreatorRightsException { + OreSiUser user = authenticationService.getByIdOrLogin(userIdOrLogin); + final OreSiRoleForUser roleForUser = new OreSiRoleForUser(user.getId().toString(), role, applicationPattern); + user = authorizationService.deleteRoleUser(roleForUser); + return ResponseEntity.ok(user); + } + + @PutMapping(value = "/authorization/{role}", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity<OreSiUser> addAuthorization( + @PathVariable(name = "role", required = true) String role, + @RequestParam(name = "userIdOrLogin", required = true) String userIdOrLogin, + @RequestParam(name = "applicationPattern", required = false) String applicationPattern) + throws NotSuperAdminException, NotApplicationCreatorRightsException { + OreSiUser user = authenticationService.getByIdOrLogin(userIdOrLogin); + final OreSiRoleForUser roleForUser = new OreSiRoleForUser(user.getId().toString(), role, applicationPattern); + user = authorizationService.addRoleUser(roleForUser); + return ResponseEntity.ok(user); + } + @GetMapping(value = "/applications/{nameOrId}/dataType/{dataType}/authorization", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<ImmutableSet<GetAuthorizationResult>> getAuthorizations(@PathVariable("nameOrId") String applicationNameOrId, @PathVariable("dataType") String dataType) { ImmutableSet<GetAuthorizationResult> getAuthorizationResults = authorizationService.getAuthorizations(applicationNameOrId, dataType); @@ -60,8 +104,8 @@ public class AuthorizationResources { } @DeleteMapping(value = "/applications/{nameOrId}/dataType/{dataType}/authorization/{authorizationId}", produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity<?> revokeAuthorization(@PathVariable("nameOrId") String applicationNameOrId, @PathVariable("authorizationId") UUID authorizationId) { - authorizationService.revoke(new AuthorizationRequest(applicationNameOrId, authorizationId)); + public ResponseEntity<?> revokeAuthorization(@PathVariable("nameOrId") String applicationNameOrId, @PathVariable("dataType") String dataType, @PathVariable("authorizationId") UUID authorizationId) { + authorizationService.revoke(new AuthorizationRequest(applicationNameOrId, dataType, authorizationId)); return ResponseEntity.noContent().build(); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/AuthorizationService.java b/src/main/java/fr/inra/oresing/rest/AuthorizationService.java index b8e0411a832578048b96d209210b74c204693545..5358567acadd87f43b66897c5ccd0c2151e048bb 100644 --- a/src/main/java/fr/inra/oresing/rest/AuthorizationService.java +++ b/src/main/java/fr/inra/oresing/rest/AuthorizationService.java @@ -5,7 +5,10 @@ import fr.inra.oresing.checker.CheckerFactory; import fr.inra.oresing.checker.ReferenceLineChecker; import fr.inra.oresing.model.*; import fr.inra.oresing.persistence.*; +import fr.inra.oresing.persistence.roles.CurrentUserRoles; import fr.inra.oresing.persistence.roles.OreSiRightOnApplicationRole; +import fr.inra.oresing.persistence.roles.OreSiRole; +import fr.inra.oresing.rest.exceptions.SiOreIllegalArgumentException; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -15,6 +18,7 @@ import org.testcontainers.shaded.com.google.common.base.Preconditions; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; +import java.util.regex.Pattern; import java.util.stream.Collectors; @Slf4j @@ -40,27 +44,13 @@ public class AuthorizationService { @Autowired private CheckerFactory checkerFactory; - public void - updateRoleForManagement(Set<UUID> previousUsers, OreSiAuthorization modifiedAuthorization) { - Set<UUID> newUsers = modifiedAuthorization.getOreSiUsers(); - Application application = repository.application().findApplication(modifiedAuthorization.getApplication()); - OreSiRightOnApplicationRole oreSiRightOnApplicationRole = OreSiRightOnApplicationRole.managementRole(application, modifiedAuthorization.getId()); - db.addUserInRole(oreSiRightOnApplicationRole, OreSiRightOnApplicationRole.readerOn(application)); - addOrRemoveAuthorizationForUsers(previousUsers, newUsers, oreSiRightOnApplicationRole); - if (modifiedAuthorization.getAuthorizations().containsKey(OperationType.publication)) { - db.addUserInRole(oreSiRightOnApplicationRole, OreSiRightOnApplicationRole.writerOn(application)); - SqlPolicy publishPolicy = toDatatypePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.publication, SqlPolicy.Statement.INSERT); - db.createPolicy(publishPolicy); - } - if (modifiedAuthorization.getAuthorizations().containsKey(OperationType.extraction)) { - SqlPolicy extractPolicy = toDatatypePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.extraction, SqlPolicy.Statement.SELECT); - db.createPolicy(extractPolicy); - } - if (modifiedAuthorization.getAuthorizations().containsKey(OperationType.delete)) { - db.addUserInRole(oreSiRightOnApplicationRole, OreSiRightOnApplicationRole.writerOn(application)); - SqlPolicy extractPolicy = toDatatypePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.delete, SqlPolicy.Statement.DELETE); - db.createPolicy(extractPolicy); - } + @Autowired + private OreSiApiRequestContext request; + + public void updateRoleForManagement(Set<UUID> previousUsers, OreSiAuthorization modifiedAuthorization) { + final UpdateRolesOnManagement updateRolesOnManagement = new UpdateRolesOnManagement(repository, db, authenticationService); + updateRolesOnManagement.init(previousUsers, modifiedAuthorization); + updateRolesOnManagement.updateRoleForManagement(); } public OreSiRightOnApplicationRole createRoleForAuthorization(CreateAuthorizationRequest previousAuthorization, OreSiAuthorization modifiedAuthorization) { @@ -71,15 +61,18 @@ public class AuthorizationService { return oreSiRightOnApplicationRole; } + public List<OreSiAuthorization> findUserAuthorizationsForApplicationAndDataType(Application application, String dataType) { + final UUID currentUserId = request.getRequestClient().getId(); + AuthorizationRepository authorizationRepository = repository.getRepository(application).authorization(); + return authorizationRepository.findAuthorizations(currentUserId, application, dataType); + } - public OreSiAuthorization addAuthorization(CreateAuthorizationRequest authorizations) { - Application application = repository.application().findApplication(authorizations.getApplicationNameOrId()); + public OreSiAuthorization addAuthorization(Application application, String dataType, CreateAuthorizationRequest authorizations, boolean isApplicationCreator) { AuthorizationRepository authorizationRepository = repository.getRepository(application).authorization(); OreSiAuthorization entity = authorizations.getUuid() == null ? new OreSiAuthorization() : authorizationRepository.findById(authorizations.getUuid()); - String dataType = authorizations.getDataType(); Map<OperationType, List<Authorization>> authorizationsByType = authorizations.getAuthorizations(); Preconditions.checkArgument(application.getConfiguration().getDataTypes().containsKey(dataType)); @@ -121,70 +114,9 @@ public class AuthorizationService { .forEach(user -> db.addUserInRole(user, oreSiRightOnApplicationRole)); } - - private SqlPolicy toDatatypePolicy(OreSiAuthorization authorization, OreSiRightOnApplicationRole oreSiRightOnApplicationRole, OperationType operation, SqlPolicy.Statement statement) { - Set<String> usingExpressionElements = new LinkedHashSet<>(); - Application application = repository.application().findApplication(authorization.getApplication()); - SqlSchemaForApplication sqlSchemaForApplication = SqlSchema.forApplication(application); - - String dataType = authorization.getDataType(); - SqlPolicy sqlPolicy = null; - usingExpressionElements.add("application = '" + authorization.getApplication() + "'::uuid"); - usingExpressionElements.add("dataType = '" + dataType + "'"); - String usingExpression = createUsingExpression(authorization, usingExpressionElements, application, sqlSchemaForApplication, operation); - - sqlPolicy = new SqlPolicy( - OreSiAuthorization.class.getSimpleName() + "_" + authorization.getId().toString(), - sqlSchemaForApplication.data(), - SqlPolicy.PermissiveOrRestrictive.PERMISSIVE, - statement, - oreSiRightOnApplicationRole, - usingExpression, - null - ); - return sqlPolicy; - } - - private String createUsingExpression(OreSiAuthorization authorization, Set<String> usingExpressionElements, Application application, SqlSchemaForApplication sqlSchemaForApplication, OperationType operation) { - if (authorization.getAuthorizations().containsKey(operation) && - !authorization.getAuthorizations().get(operation).isEmpty()) { - usingExpressionElements.add("\"authorization\" @> " + - authorization.getAuthorizations().get(operation).stream() - .map(auth -> auth.toSQL(application.getConfiguration().getRequiredAuthorizationsAttributes())) - .filter(auth -> auth != null) - .map(sql -> String.format(sql, sqlSchemaForApplication.getName())) - .collect(Collectors.joining(",", "ARRAY[", "]::" + sqlSchemaForApplication.getName() + ".authorization[]")) - - - ); - } - - String usingExpression = usingExpressionElements.stream() - .map(statement -> "(" + statement + ")") - .collect(Collectors.joining(" AND ")); - return usingExpression; - } - public void revoke(AuthorizationRequest revokeAuthorizationRequest) { - Application application = repository.application().findApplication(revokeAuthorizationRequest.getApplicationNameOrId()); - AuthorizationRepository authorizationRepository = repository.getRepository(application).authorization(); - UUID authorizationId = revokeAuthorizationRequest.getAuthorizationId(); - OreSiAuthorization oreSiAuthorization = authorizationRepository.findById(authorizationId); - OreSiRightOnApplicationRole oreSiRightOnApplicationRole = OreSiRightOnApplicationRole.managementRole(application, authorizationId); - if (oreSiAuthorization.getAuthorizations().containsKey(OperationType.publication)) { - db.addUserInRole(oreSiRightOnApplicationRole, OreSiRightOnApplicationRole.writerOn(application)); - SqlPolicy publishPolicy = toDatatypePolicy(oreSiAuthorization, oreSiRightOnApplicationRole, OperationType.publication, SqlPolicy.Statement.INSERT); - db.dropPolicy(publishPolicy); - } - if (oreSiAuthorization.getAuthorizations().containsKey(OperationType.extraction)) { - SqlPolicy extractPolicy = toDatatypePolicy(oreSiAuthorization, oreSiRightOnApplicationRole, OperationType.extraction, SqlPolicy.Statement.SELECT); - db.dropPolicy(extractPolicy); - } - if (oreSiAuthorization.getAuthorizations().containsKey(OperationType.delete)) { - SqlPolicy extractPolicy = toDatatypePolicy(oreSiAuthorization, oreSiRightOnApplicationRole, OperationType.delete, SqlPolicy.Statement.DELETE); - db.dropPolicy(extractPolicy); - } - authorizationRepository.delete(authorizationId); + final UpdateRolesOnManagement updateRolesOnManagement = new UpdateRolesOnManagement(repository, db, authenticationService); + updateRolesOnManagement.revoke(revokeAuthorizationRequest); } public ImmutableSet<GetAuthorizationResult> getAuthorizations(String applicationNameOrId, String dataType) { @@ -229,7 +161,7 @@ public class AuthorizationService { for (Map.Entry<OperationType, List<Authorization>> operationTypeListEntry : authorizations.entrySet()) { List<AuthorizationParsed> authorizationsParsed = new LinkedList<>(); for (Authorization authorization : operationTypeListEntry.getValue()) { - LocalDate fromDay=null, toDay=null; + LocalDate fromDay = null, toDay = null; if (authorization.getTimeScope() != null) { Range<LocalDateTime> timeScopeRange = authorization.getTimeScope().getRange(); if (timeScopeRange.hasLowerBound()) { @@ -326,4 +258,110 @@ public class AuthorizationService { .collect(ImmutableSortedSet.toImmutableSortedSet(Comparator.comparing(GetGrantableResult.AuthorizationScope.Option::getId))); return new GetGrantableResult.AuthorizationScope.Option(referenceValue.getHierarchicalKey().getSql(), referenceValue.getHierarchicalKey().getSql(), options); } + + public OreSiUserResult deleteRoleUser(OreSiRoleForUser roleForUser) { + if (OreSiRole.superAdmin().getAsSqlRole().equals(roleForUser.getRole())) { + return deleteAdminRoleUser(roleForUser); + } else if (OreSiRole.applicationCreator().getAsSqlRole().equals(roleForUser.getRole())) { + return deleteApplicationCreatorRoleUser(roleForUser); + } + throw new BadRoleException("cantDeleteRole", roleForUser.getRole()); + } + + private OreSiUserResult deleteApplicationCreatorRoleUser(OreSiRoleForUser oreSiUserRoleApplicationCreator) { + boolean canAddApplicationCreatorRole = canAddApplicationCreatorRole(oreSiUserRoleApplicationCreator); + if (canAddApplicationCreatorRole) { + final OreSiUser user = authenticationService.deleteUserRightCreateApplication(UUID.fromString(oreSiUserRoleApplicationCreator.getUserId()), oreSiUserRoleApplicationCreator.getApplicationPattern()); + return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiUserRoleApplicationCreator.getUserId())); + } + throw new NotSuperAdminException(); + } + + private boolean canAddApplicationCreatorRole(OreSiRoleForUser oreSiUserRoleApplicationCreator) { + boolean canAddApplicationCreatorRole = false; + if (authenticationService.hasRole(OreSiRole.superAdmin())) { + canAddApplicationCreatorRole = true; + } else if (authenticationService.hasRole(OreSiRole.applicationCreator())) { + final OreSiUser user = userRepository.findByLogin(oreSiUserRoleApplicationCreator.getUserId()).orElseGet(()->userRepository.findById(UUID.fromString(oreSiUserRoleApplicationCreator.getUserId())));; + if (user.getAuthorizations().stream() + .anyMatch(p->Pattern.compile(p) + .matcher(oreSiUserRoleApplicationCreator.getApplicationPattern()) + .matches() + )) { + canAddApplicationCreatorRole = true; + } else { + throw new NotApplicationCreatorRightsException(oreSiUserRoleApplicationCreator.getApplicationPattern(), user.getAuthorizations()); + } + + } + return canAddApplicationCreatorRole; + } + + private OreSiUserResult deleteAdminRoleUser(OreSiRoleForUser oreSiRoleForUserAdmin) { + boolean canAddsupeadmin = false; + if (authenticationService.hasRole(OreSiRole.superAdmin())) { + OreSiUser user = authenticationService.deleteUserRightSuperadmin(UUID.fromString(oreSiRoleForUserAdmin.getUserId())); + return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiRoleForUserAdmin.getUserId())); + } + throw new NotSuperAdminException(); + } + + public OreSiUserResult addRoleUser(OreSiRoleForUser roleForUser) { + if (OreSiRole.superAdmin().getAsSqlRole().equals(roleForUser.getRole())) { + return addAdminRoleUser(roleForUser); + } else if (OreSiRole.applicationCreator().getAsSqlRole().equals(roleForUser.getRole())) { + return addApplicationCreatorRoleUser(roleForUser); + } + throw new BadRoleException("cantSetRole", roleForUser.getRole()); + } + + private OreSiUserResult addApplicationCreatorRoleUser(OreSiRoleForUser oreSiUserRoleApplicationCreator) { + boolean canAddApplicationCreatorRole = canAddApplicationCreatorRole(oreSiUserRoleApplicationCreator); + if (canAddApplicationCreatorRole) { + final OreSiUser user = authenticationService.addUserRightCreateApplication(UUID.fromString(oreSiUserRoleApplicationCreator.getUserId()), oreSiUserRoleApplicationCreator.getApplicationPattern()); + return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiUserRoleApplicationCreator.getUserId())); + } + throw new NotSuperAdminException(); + } + + private OreSiUserResult addAdminRoleUser(OreSiRoleForUser oreSiRoleForUserAdmin) { + boolean canAddsupeadmin = false; + if (authenticationService.hasRole(OreSiRole.superAdmin())) { + OreSiUser user = authenticationService.addUserRightSuperadmin(UUID.fromString(oreSiRoleForUserAdmin.getUserId())); + return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiRoleForUserAdmin.getUserId())); + } + throw new NotSuperAdminException(); + } + + + public AuthorizationsResult getAuthorizationsForUser(String applicationNameOrUuid, String dataType, String userLoginOrId) { + final OreSiUser user = userRepository.findByLogin(userLoginOrId).orElseGet(() -> userRepository.findById(UUID.fromString(userLoginOrId))); + if (user == null) { + throw new SiOreIllegalArgumentException("unknown_user", Map.of("login", userLoginOrId)); + } + final CurrentUserRoles rolesForCurrentUser = userRepository.getRolesForRole(user.getId().toString()); + final Application application = repository.application().findApplication(applicationNameOrUuid); + final List<OreSiAuthorization> authorizations = repository.getRepository(application.getId()).authorization().findAuthorizations(UUID.fromString(rolesForCurrentUser.getCurrentUser()), application, dataType); + Map<OperationType, List<AuthorizationParsed>> authorizationMap = new HashMap<>(); + authorizations.stream() + .forEach(authorizationList -> { + authorizationList.getAuthorizations().entrySet() + .forEach(entry -> { + final OperationType key = entry.getKey(); + entry.getValue().stream() + .map(authorization -> new AuthorizationParsed( + authorization.getDataGroups(), + authorization.getRequiredAuthorizations().entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().getSql())), + authorization.getTimeScope()==null?null:authorization.getTimeScope().getRange().lowerEndpoint().toLocalDate(), + authorization.getTimeScope()==null?null:authorization.getTimeScope().getRange().upperEndpoint().toLocalDate() + )). + forEach(authorizationResult -> authorizationMap + .computeIfAbsent(key, k -> new LinkedList<>()) + .add(authorizationResult)); + + }); + }); + return new AuthorizationsResult(authorizationMap, application.getName(), dataType); + } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/AuthorizationsResult.java b/src/main/java/fr/inra/oresing/rest/AuthorizationsResult.java new file mode 100644 index 0000000000000000000000000000000000000000..2b69fd69bccf797af67e791631b444cf5e2d21c2 --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/AuthorizationsResult.java @@ -0,0 +1,15 @@ +package fr.inra.oresing.rest; + +import fr.inra.oresing.persistence.OperationType; +import lombok.Value; + +import java.util.List; +import java.util.Map; + +@Value +public class AuthorizationsResult { + Map<OperationType,List<AuthorizationParsed>> authorizationResults; + String applicationName; + String dataType; + +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/BadRoleException.java b/src/main/java/fr/inra/oresing/rest/BadRoleException.java new file mode 100644 index 0000000000000000000000000000000000000000..8f818b7528650f7f45b475a2d634f7fe22fba0cf --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/BadRoleException.java @@ -0,0 +1,19 @@ +package fr.inra.oresing.rest; + +import fr.inra.oresing.OreSiTechnicalException; +import lombok.Getter; + +@Getter +public class BadRoleException extends OreSiTechnicalException { + String role; + + public BadRoleException(String message, String role, Throwable cause) { + super(message, cause); + this.role = role; + } + + public BadRoleException(String message, String role) { + super(message); + this.role = role; + } +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/DatatypeUpdateRoleForManagement.java b/src/main/java/fr/inra/oresing/rest/DatatypeUpdateRoleForManagement.java new file mode 100644 index 0000000000000000000000000000000000000000..d287b7aa64c7ebf05badc8dc183a44f418d82dfa --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/DatatypeUpdateRoleForManagement.java @@ -0,0 +1,16 @@ +package fr.inra.oresing.rest; + +import fr.inra.oresing.model.OreSiAuthorization; +import lombok.Value; + +import java.util.List; +import java.util.Set; +import java.util.UUID; + +@Value +public class DatatypeUpdateRoleForManagement { + Set<UUID> previousUsers; + OreSiAuthorization oreSiAuthorization; + List<OreSiAuthorization> authorizationsForCurrentUser; + boolean isAdminOnApplication; +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/LoginResult.java b/src/main/java/fr/inra/oresing/rest/LoginResult.java index b9250dd479db6c60b33e30a5ecb8765f179cc514..84018ef96ae2478d21001b426934207b11e7c348 100644 --- a/src/main/java/fr/inra/oresing/rest/LoginResult.java +++ b/src/main/java/fr/inra/oresing/rest/LoginResult.java @@ -2,6 +2,7 @@ package fr.inra.oresing.rest; import lombok.Value; +import java.util.List; import java.util.UUID; @Value @@ -9,4 +10,6 @@ public class LoginResult { UUID id; String login; boolean authorizedForApplicationCreation; -} + boolean superadmin; + List<String> authorizations; +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/NotApplicationCanSetRightsException.java b/src/main/java/fr/inra/oresing/rest/NotApplicationCanSetRightsException.java new file mode 100644 index 0000000000000000000000000000000000000000..3e2de98a28e6137624b2b068c8a5ebb4c043c286 --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/NotApplicationCanSetRightsException.java @@ -0,0 +1,26 @@ +package fr.inra.oresing.rest; + +import fr.inra.oresing.OreSiTechnicalException; +import fr.inra.oresing.model.Authorization; +import lombok.Getter; + +import java.util.List; +@Getter +public class NotApplicationCanSetRightsException extends OreSiTechnicalException { + public final static String NO_RIGHT_FOR_SET_RIGHTS_APPLICATION = "NO_RIGHT_FOR_SET_RIGHTS_APPLICATION"; + String applicationName; + String dataType; + List<Authorization> authorizationsRestrictions; + public NotApplicationCanSetRightsException(String applicationName, String dataType) { + super(NO_RIGHT_FOR_SET_RIGHTS_APPLICATION); + this.applicationName = applicationName; + this.dataType = dataType; + this.authorizationsRestrictions = List.of(); + } + public NotApplicationCanSetRightsException(String applicationName, String dataType, List<Authorization> authorizationsRestrictions) { + super(NO_RIGHT_FOR_SET_RIGHTS_APPLICATION); + this.applicationName = applicationName; + this.dataType = dataType; + this.authorizationsRestrictions = authorizationsRestrictions; + } +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/NotApplicationCreatorRightsException.java b/src/main/java/fr/inra/oresing/rest/NotApplicationCreatorRightsException.java new file mode 100644 index 0000000000000000000000000000000000000000..0f679dfab760f64d1307d216313812e45460be02 --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/NotApplicationCreatorRightsException.java @@ -0,0 +1,27 @@ +package fr.inra.oresing.rest; + +import fr.inra.oresing.OreSiTechnicalException; + +import java.util.List; + +public class NotApplicationCreatorRightsException extends OreSiTechnicalException { + public final static String NO_RIGHT_FOR_APPLICATION_CREATION = "NO_RIGHT_FOR_APPLICATION_CREATION"; + String applicationName; + List<String> applicationRestrictions; + public NotApplicationCreatorRightsException(String applicationName) { + super(NO_RIGHT_FOR_APPLICATION_CREATION); + this.applicationName = applicationName; + this.applicationRestrictions = List.of(); + } + public NotApplicationCreatorRightsException(String applicationName, List<String> applicationRestrictions) { + super(NO_RIGHT_FOR_APPLICATION_CREATION); + this.applicationName = applicationName; + this.applicationRestrictions = applicationRestrictions; + } + + public NotApplicationCreatorRightsException(Throwable cause) { + super(NO_RIGHT_FOR_APPLICATION_CREATION, cause); + this.applicationName = applicationName; + this.applicationRestrictions = List.of(); + } +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/NotSuperAdminException.java b/src/main/java/fr/inra/oresing/rest/NotSuperAdminException.java new file mode 100644 index 0000000000000000000000000000000000000000..cbe5d9015f4053dc7d7d0ee9d1e03a5894d12cfd --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/NotSuperAdminException.java @@ -0,0 +1,14 @@ +package fr.inra.oresing.rest; + +import fr.inra.oresing.OreSiTechnicalException; + +public class NotSuperAdminException extends OreSiTechnicalException { + public final static String SUPER_ADMIN_REQUIRED_FOR_OPERATION = "SUPER_ADMIN_REQUIRED_FOR_OPERATION"; + public NotSuperAdminException() { + super(SUPER_ADMIN_REQUIRED_FOR_OPERATION); + } + + public NotSuperAdminException(Throwable cause) { + super(SUPER_ADMIN_REQUIRED_FOR_OPERATION, cause); + } +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/OreExceptionHandler.java b/src/main/java/fr/inra/oresing/rest/OreExceptionHandler.java index a379ec99fa8721d9e70d63229eb606f05a301cb2..540a5022171834aabfeef5ad4c2fad73abcd2503 100644 --- a/src/main/java/fr/inra/oresing/rest/OreExceptionHandler.java +++ b/src/main/java/fr/inra/oresing/rest/OreExceptionHandler.java @@ -12,8 +12,13 @@ import org.postgresql.util.PSQLException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.jdbc.BadSqlGrammarException; +import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.bind.support.WebExchangeBindException; + +import java.util.List; import java.util.List; @@ -33,6 +38,12 @@ public class OreExceptionHandler { public ResponseEntity<String> handle(AuthenticationFailure eee) { return ResponseEntity.status(HttpStatus.FORBIDDEN).body(eee.getMessage()); } + @ExceptionHandler + @ResponseStatus(HttpStatus.BAD_REQUEST) + public List<ObjectError> exception(WebExchangeBindException ex) { + log.error("{}", ex.getLocalizedMessage(), ex); + return ex.getAllErrors(); + } @ExceptionHandler(value = BadSqlGrammarException.class) public ResponseEntity<String> handle(BadSqlGrammarException badSqlGrammarException) { diff --git a/src/main/java/fr/inra/oresing/rest/OreSiService.java b/src/main/java/fr/inra/oresing/rest/OreSiService.java index 740174f41ae4db696bb44d00426fb6d92e3156ec..532603e614cc56eaba3860ae824d68d7fcf3e2c5 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiService.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiService.java @@ -14,7 +14,9 @@ import fr.inra.oresing.groovy.StringGroovyExpression; import fr.inra.oresing.model.*; import fr.inra.oresing.model.chart.OreSiSynthesis; import fr.inra.oresing.persistence.*; +import fr.inra.oresing.persistence.roles.CurrentUserRoles; import fr.inra.oresing.persistence.roles.OreSiRightOnApplicationRole; +import fr.inra.oresing.persistence.roles.OreSiRole; import fr.inra.oresing.persistence.roles.OreSiUserRole; import fr.inra.oresing.rest.exceptions.SiOreIllegalArgumentException; import fr.inra.oresing.rest.exceptions.configuration.BadApplicationConfigurationException; @@ -33,6 +35,7 @@ import org.flywaydb.core.Flyway; import org.flywaydb.core.api.Location; import org.flywaydb.core.api.configuration.ClassicConfiguration; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.BadSqlGrammarException; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -72,6 +75,13 @@ public class OreSiService { @Autowired private AuthenticationService authenticationService; + + @Autowired + private AuthorizationService authorizationService; + + @Autowired + private UserRepository userRepository; + @Autowired private CheckerFactory checkerFactory; @@ -104,7 +114,7 @@ public class OreSiService { return Ltree.escapeToLabel(key); } - protected UUID storeFile(Application app, MultipartFile file, String comment) throws IOException { + public UUID storeFile(Application app, MultipartFile file, String comment, BinaryFileDataset binaryFileDataset) throws IOException { authenticationService.setRoleForClient(); // creation du fichier BinaryFile binaryFile = new BinaryFile(); @@ -114,6 +124,7 @@ public class OreSiService { binaryFile.setSize(file.getSize()); binaryFile.setData(file.getBytes()); BinaryFileInfos binaryFileInfos = new BinaryFileInfos(); + binaryFileInfos.binaryFiledataset = binaryFileDataset; binaryFile.setParams(binaryFileInfos); binaryFile.getParams().createuser = request.getRequestUserId(); binaryFile.getParams().createdate = LocalDateTime.now().toString(); @@ -122,6 +133,9 @@ public class OreSiService { } public UUID createApplication(String name, MultipartFile configurationFile, String comment) throws IOException, BadApplicationConfigurationException { + final OreSiUser currentUser = getCurrentUser(); + final boolean canCreateApplication = currentUser.getAuthorizations().stream() + .anyMatch(s -> name.matches(s)); Application app = new Application(); app.setName(name); app.setComment(comment); @@ -131,6 +145,10 @@ public class OreSiService { return result; } + private OreSiUser getCurrentUser() { + return userRepository.findById(request.getRequestClient().getId()); + } + public Application initApplication(Application app) { authenticationService.resetRole(); SqlSchemaForApplication sqlSchemaForApplication = SqlSchema.forApplication(app); @@ -157,7 +175,7 @@ public class OreSiService { String.join("_", adminOnApplicationRole.getAsSqlRole(), SqlPolicy.Statement.ALL.name()), SqlSchema.main().application(), SqlPolicy.PermissiveOrRestrictive.PERMISSIVE, - SqlPolicy.Statement.ALL, + List.of(SqlPolicy.Statement.ALL), adminOnApplicationRole, "name = '" + app.getName() + "'", null @@ -167,7 +185,7 @@ public class OreSiService { String.join("_", readerOnApplicationRole.getAsSqlRole(), SqlPolicy.Statement.SELECT.name()), SqlSchema.main().application(), SqlPolicy.PermissiveOrRestrictive.PERMISSIVE, - SqlPolicy.Statement.SELECT, + List.of(SqlPolicy.Statement.SELECT), readerOnApplicationRole, "name = '" + app.getName() + "'", null @@ -178,7 +196,7 @@ public class OreSiService { String.join("_", writerOnApplicationRole.getAsSqlRole(), SqlPolicy.Statement.INSERT.name()), SqlSchema.main().application(), SqlPolicy.PermissiveOrRestrictive.PERMISSIVE, - SqlPolicy.Statement.INSERT, + List.of(SqlPolicy.Statement.INSERT), writerOnApplicationRole, null, "name = '" + app.getName() + "'" @@ -307,7 +325,20 @@ public class OreSiService { } private UUID changeApplicationConfiguration(Application app, MultipartFile configurationFile, Function<Application, Application> initApplication) throws IOException, BadApplicationConfigurationException { - + final String applicationName = app.getName(); + final OreSiUser currentUser = getCurrentUser(); + authenticationService.setRoleForClient(); + final boolean canCreateApplication = authenticationService.hasRole(OreSiRole.applicationCreator()) && currentUser.getAuthorizations().stream() + .anyMatch(s -> applicationName.matches(s)); + final boolean isSuperAdmin = authenticationService.isSuperAdmin(); + if (!(isSuperAdmin || canCreateApplication)) { + throw new NotApplicationCreatorRightsException(applicationName, currentUser.getAuthorizations()); + } else if (!isSuperAdmin) { + currentUser.getAuthorizations().stream() + .filter(s -> isSuperAdmin || applicationName.matches(s)) + .findAny() + .orElseThrow(() -> new NotApplicationCreatorRightsException(applicationName)); + } ConfigurationParsingResult configurationParsingResult; if (configurationFile.getOriginalFilename().matches(".*\\.zip")) { final byte[] bytes = new MultiYaml().parseConfigurationBytes(configurationFile); @@ -320,16 +351,20 @@ public class OreSiService { app.setReferenceType(new ArrayList<>(configuration.getReferences().keySet())); app.setDataType(new ArrayList<>(configuration.getDataTypes().keySet())); app.setConfiguration(configuration); - app = initApplication.apply(app); - UUID confId = storeFile(app, configurationFile, app.getComment()); - app.setConfigFile(confId); - UUID appId = repo.application().store(app); - return appId; + try { + app = initApplication.apply(app); + UUID confId = storeFile(app, configurationFile, app.getComment(), null); + app.setConfigFile(confId); + UUID appId = repo.application().store(app); + return appId; + } catch (BadSqlGrammarException bsge) { + throw new NotApplicationCreatorRightsException(applicationName, currentUser.getAuthorizations()); + } } public UUID addReference(Application app, String refType, MultipartFile file) throws IOException { authenticationService.setRoleForClient(); - UUID fileId = storeFile(app, file, ""); + UUID fileId = storeFile(app, file, "", null); referenceService.addReference(app, refType, file, fileId); return fileId; } @@ -385,29 +420,40 @@ public class OreSiService { authenticationService.setRoleForClient(); Application app = getApplication(nameOrId); Set<BinaryFile> filesToStore = new HashSet<>(); - Optional.ofNullable(params) - .map(par -> par.getBinaryfiledataset()) - .ifPresent(binaryFileDataset -> binaryFileDataset.setDatatype(dataType)); - BinaryFile storedFile = loadOrCreateFile(file, params, app); - if (params != null && !params.topublish) { - if (storedFile.getParams() != null && storedFile.getParams().published) { - storedFile.getParams().published = false; - filesToStore.add(storedFile); - unPublishVersions(app, filesToStore, dataType); - } - return storedFile.getId(); - } else if (params != null && params.getBinaryfiledataset() != null) { - BinaryFile publishedVersion = getPublishedVersion(params, app); - if (publishedVersion != null && publishedVersion.getParams().published) { - filesToStore.add(publishedVersion); - unPublishVersions(app, filesToStore, dataType); + final AuthorizationPublicationHelper authorizationPublicationHelper = new AuthorizationPublicationHelper(repo.getRepository(app.getId()), authorizationService, this); + authorizationPublicationHelper.init(app, userRepository, dataType, params); + + BinaryFile storedFile = authorizationPublicationHelper.loadOrCreateFile(file, params, app); + if (authorizationPublicationHelper.isRepository()) { + if (params != null && !params.topublish) { + if (storedFile.getParams() != null && storedFile.getParams().published) { + storedFile.getParams().published = false; + filesToStore.add(storedFile); + assert authorizationPublicationHelper.hasRightForPublishOrUnPublish(); + unPublishVersions(app, filesToStore, dataType); + } + return storedFile.getId(); + } else if (params != null && params.getBinaryfiledataset() != null) { + BinaryFile publishedVersion = getPublishedVersion(params, app); + if (publishedVersion != null && publishedVersion.getParams().published) { + filesToStore.add(publishedVersion); + assert authorizationPublicationHelper.hasRightForPublishOrUnPublish(); + unPublishVersions(app, filesToStore, dataType); + } } } Configuration conf = app.getConfiguration(); Configuration.DataTypeDescription dataTypeDescription = conf.getDataTypes().get(dataType); Configuration.FormatDescription formatDescription = dataTypeDescription.getFormat(); InvalidDatasetContentException.checkErrorsIsEmpty(findPublishedVersion(nameOrId, dataType, params, filesToStore, true)); - publishVersion(dataType, errors, app, storedFile, dataTypeDescription, formatDescription, params == null ? null : params.binaryfiledataset); + final boolean isApplicationCreator = Optional.ofNullable(userRepository.getRolesForCurrentUser()) + .map(CurrentUserRoles::getMemberOf) + .map(roles -> roles.stream().anyMatch(role -> OreSiRole.applicationCreator().getAsSqlRole().equals(role))) + .orElse(false); + final AuthorizationsResult authorizationsForUser = authorizationService.getAuthorizationsForUser(app.getName(), dataType, getCurrentUser().getLogin()); + + assert authorizationPublicationHelper.hasRightForPublishOrUnPublish(); + publishVersion(dataType, authorizationPublicationHelper,errors, app, storedFile, dataTypeDescription, formatDescription, params == null ? null : params.binaryfiledataset); InvalidDatasetContentException.checkErrorsIsEmpty(errors); relationalService.onDataUpdate(app.getName()); unPublishVersions(app, filesToStore, dataType); @@ -444,7 +490,7 @@ public class OreSiService { } private void publishVersion(String dataType, - List<CsvRowValidationCheckResult> errors, + AuthorizationPublicationHelper authorizationPublicationHelper, List<CsvRowValidationCheckResult> errors, Application app, BinaryFile storedFile, Configuration.DataTypeDescription dataTypeDescription, @@ -469,7 +515,7 @@ public class OreSiService { .flatMap(lineAsMap -> buildLineAsMapToRecordsFn(formatDescription).apply(lineAsMap).stream()) .map(buildMergeLineValuesAndConstantValuesFn(constantValues)) .map(buildReplaceMissingValuesByDefaultValuesFn(app, dataType, binaryFileDataset == null ? null : binaryFileDataset.getRequiredAuthorizations())) - .flatMap(buildLineValuesToEntityStreamFn(app, dataType, storedFile.getId(), uniquenessBuilder, errors, binaryFileDataset)); + .flatMap(buildLineValuesToEntityStreamFn(app, authorizationPublicationHelper,dataType, storedFile.getId(), uniquenessBuilder, errors, binaryFileDataset)); AtomicLong lines = new AtomicLong(); final Instant debut = Instant.now(); final DataRepository dataRepository = repo.getRepository(app).data(); @@ -529,7 +575,7 @@ public class OreSiService { .orElseGet(() -> { UUID fileId = null; try { - fileId = storeFile(app, file, ""); + fileId = storeFile(app, file, "", null); } catch (IOException e) { return null; } @@ -550,17 +596,18 @@ public class OreSiService { * return a function that transform each RowWithData to a stream of data entities * * @param app + * @param authorizationPublicationHelper * @param dataType * @param fileId * @param uniquenessBuilder * @return */ - private Function<RowWithData, Stream<Data>> buildLineValuesToEntityStreamFn(Application app, String dataType, UUID fileId, UniquenessBuilder uniquenessBuilder, List<CsvRowValidationCheckResult> errors, BinaryFileDataset binaryFileDataset) { + private Function<RowWithData, Stream<Data>> buildLineValuesToEntityStreamFn(Application app, AuthorizationPublicationHelper authorizationPublicationHelper, String dataType, UUID fileId, UniquenessBuilder uniquenessBuilder, List<CsvRowValidationCheckResult> errors, BinaryFileDataset binaryFileDataset) { ImmutableSet<LineChecker> lineCheckers = checkerFactory.getLineCheckers(app, dataType); Configuration conf = app.getConfiguration(); Configuration.DataTypeDescription dataTypeDescription = conf.getDataTypes().get(dataType); - return buildRowWithDataStreamFunction(app, dataType, fileId, uniquenessBuilder, errors, lineCheckers, dataTypeDescription, binaryFileDataset); + return buildRowWithDataStreamFunction(app, dataType, fileId, uniquenessBuilder,authorizationPublicationHelper, errors, lineCheckers, dataTypeDescription, binaryFileDataset); } /** @@ -570,6 +617,7 @@ public class OreSiService { * @param dataType * @param fileId * @param uniquenessBuilder + * @param authorizationPublicationHelper * @param errors * @param lineCheckers * @param dataTypeDescription @@ -579,20 +627,20 @@ public class OreSiService { private Function<RowWithData, Stream<Data>> buildRowWithDataStreamFunction(Application app, String dataType, UUID fileId, - UniquenessBuilder uniquenessBuilder, List<CsvRowValidationCheckResult> errors, + UniquenessBuilder uniquenessBuilder, AuthorizationPublicationHelper authorizationPublicationHelper, List<CsvRowValidationCheckResult> errors, ImmutableSet<LineChecker> lineCheckers, Configuration.DataTypeDescription dataTypeDescription, BinaryFileDataset binaryFileDataset) { final Configuration.AuthorizationDescription authorization = dataTypeDescription.getAuthorization(); - final boolean haveAuthorizations = authorization != null; + final boolean haveAuthorizationsDescription = authorization != null; - final DateLineChecker timeScopeDateLineChecker = haveAuthorizations && authorization.getTimeScope()!=null? + final DateLineChecker timeScopeDateLineChecker = haveAuthorizationsDescription && authorization.getTimeScope() != null ? lineCheckers.stream() - .filter(lineChecker -> lineChecker instanceof DateLineChecker) - .map(lineChecker -> (DateLineChecker) lineChecker) - .filter(dateLineChecker -> dateLineChecker.getTarget().equals(authorization.getTimeScope())) - .collect(MoreCollectors.onlyElement()) - :null; + .filter(lineChecker -> lineChecker instanceof DateLineChecker) + .map(lineChecker -> (DateLineChecker) lineChecker) + .filter(dateLineChecker -> dateLineChecker.getTarget().equals(authorization.getTimeScope())) + .collect(MoreCollectors.onlyElement()) + : null; return rowWithData -> { Datum datum = Datum.copyOf(rowWithData.getDatum()); @@ -628,7 +676,7 @@ public class OreSiService { return Stream.empty(); } LocalDateTimeRange timeScope; - if (timeScopeDateLineChecker!=null) { + if (timeScopeDateLineChecker != null) { String timeScopeValue = datum.get(authorization.getTimeScope()); timeScope = LocalDateTimeRange.parse(timeScopeValue, timeScopeDateLineChecker); } else { @@ -636,12 +684,12 @@ public class OreSiService { } Map<String, Ltree> requiredAuthorizations = new LinkedHashMap<>(); - if(haveAuthorizations) { + if (haveAuthorizationsDescription) { authorization.getAuthorizationScopes().forEach((authorizationScope, authorizationScopeDescription) -> { VariableComponentKey variableComponentKey = authorizationScopeDescription.getVariableComponentKey(); String requiredAuthorizationsFromDatum = datum.get(variableComponentKey); Ltree.checkSyntax(requiredAuthorizationsFromDatum); - requiredAuthorizations.put(authorizationScope, Ltree.fromSql(requiredAuthorizationsFromDatum)); + requiredAuthorizations.put(authorizationScope, Ltree.fromSql(requiredAuthorizationsFromDatum)); }); } checkTimescopRangeInDatasetRange(timeScope, errors, binaryFileDataset, rowWithData.getLineNumber()); @@ -653,14 +701,15 @@ public class OreSiService { return Stream.of((Data) null); } LinkedHashMap<String, Configuration.DataGroupDescription> dataGroups; - if(!haveAuthorizations){ - dataGroups=new LinkedHashMap<>(); + if (!haveAuthorizationsDescription) { + dataGroups = new LinkedHashMap<>(); final Configuration.DataGroupDescription dataGroupDescription = new Configuration.DataGroupDescription(); dataGroupDescription.setData(dataTypeDescription.getData().keySet()); dataGroups.put("_default_", dataGroupDescription); - }else{ - dataGroups= authorization.getDataGroups(); + } else { + dataGroups = authorization.getDataGroups(); } + Stream<Data> dataStream = dataGroups.entrySet().stream().map(entry -> { String dataGroup = entry.getKey(); Configuration.DataGroupDescription dataGroupDescription = entry.getValue(); @@ -681,12 +730,27 @@ public class OreSiService { toStore.computeIfAbsent(variable, k -> new LinkedHashMap<>()).put(component, value); refsLinkedToToStore.computeIfAbsent(variable, k -> new LinkedHashMap<>()).put(component, refsLinkedTo.get(variableComponentKey)); } - + final Authorization authorization1 = new Authorization(List.of(dataGroup), requiredAuthorizations, timeScope); + if(!authorizationPublicationHelper.isRepository()&& !authorizationPublicationHelper.isApplicationCreator()){ + if(!authorizationPublicationHelper.hasRightForPublishOrUnPublish(authorization1)){ + errors.add( + new CsvRowValidationCheckResult(DefaultValidationCheckResult.error( + "norightforpublish", + ImmutableMap.of( + "application",app.getName(), + "dataType",dataType, + "lineNumber",rowWithData.getLineNumber() + ) + ), + rowWithData.getLineNumber()) + ); + } + } Data e = new Data(); e.setBinaryFile(fileId); e.setDataType(dataType); e.setRowId(rowId); - e.setAuthorization(new Authorization(List.of(dataGroup), requiredAuthorizations, timeScope)); + e.setAuthorization(authorization1); e.setApplication(app.getId()); e.setRefsLinkedTo(refsLinkedToToStore); e.setUniqueness(uniquenessValues); @@ -726,9 +790,9 @@ public class OreSiService { private void checkrequiredAuthorizationsInDatasetRange(Map<String, Ltree> requiredAuthorizations, - List<CsvRowValidationCheckResult> errors, - BinaryFileDataset binaryFileDataset, - int rowNumber) { + List<CsvRowValidationCheckResult> errors, + BinaryFileDataset binaryFileDataset, + int rowNumber) { if (binaryFileDataset == null) { return; } diff --git a/src/main/java/fr/inra/oresing/rest/OreSiUserResult.java b/src/main/java/fr/inra/oresing/rest/OreSiUserResult.java new file mode 100644 index 0000000000000000000000000000000000000000..4581252c2d12d267853c6b3a100492a1df39d8eb --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/OreSiUserResult.java @@ -0,0 +1,21 @@ +package fr.inra.oresing.rest; + +import fr.inra.oresing.model.OreSiUser; +import fr.inra.oresing.persistence.roles.CurrentUserRoles; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class +OreSiUserResult extends OreSiUser { + private CurrentUserRoles roles; + + public OreSiUserResult(OreSiUser user, CurrentUserRoles userRoles) { + super(); + setLogin(user.getLogin()); + setAuthorizations(user.getAuthorizations()); + setId(user.getId()); + setRoles(userRoles); + } +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/UpdateRolesOnManagement.java b/src/main/java/fr/inra/oresing/rest/UpdateRolesOnManagement.java new file mode 100644 index 0000000000000000000000000000000000000000..e85dc18cbd41f74ba3f315dff0c25bd70045960c --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/UpdateRolesOnManagement.java @@ -0,0 +1,218 @@ +package fr.inra.oresing.rest; + +import com.google.common.collect.Sets; +import fr.inra.oresing.model.Application; +import fr.inra.oresing.model.Configuration; +import fr.inra.oresing.model.OreSiAuthorization; +import fr.inra.oresing.persistence.*; +import fr.inra.oresing.persistence.roles.OreSiRightOnApplicationRole; + +import java.util.*; +import java.util.stream.Collectors; + +public class UpdateRolesOnManagement { + private Set<UUID> previousUsers; + private Set<UUID> newUsers; + private OreSiAuthorization modifiedAuthorization; + private boolean hasRepository; + private OreSiRepository repository; + SqlService db; + AuthenticationService authenticationService; + private Application application; + private AuthorizationRepository authorizationRepository; + + public UpdateRolesOnManagement(OreSiRepository repository, SqlService db, AuthenticationService authenticationService) { + this.repository = repository; + this.db = db; + this.authenticationService = authenticationService; + } + + public void init(Set<UUID> previousUsers, OreSiAuthorization modifiedAuthorization) { + this.previousUsers = previousUsers; + this.newUsers = modifiedAuthorization.getOreSiUsers(); + this.modifiedAuthorization = modifiedAuthorization; + this.application = repository.application().findApplication(modifiedAuthorization.getApplication()); + this.hasRepository = Optional.of(application.getConfiguration()) + .map(Configuration::getDataTypes) + .map(map -> map.get(modifiedAuthorization.getDataType())) + .map(Configuration.DataTypeDescription::getRepository) + .isPresent(); + this.authorizationRepository = repository.getRepository(application).authorization(); + + } + + public void updateRoleForManagement() { + OreSiRightOnApplicationRole oreSiRightOnApplicationRole = OreSiRightOnApplicationRole.managementRole(application, modifiedAuthorization.getId()); + db.addUserInRole(oreSiRightOnApplicationRole, OreSiRightOnApplicationRole.readerOn(application)); + addOrRemoveAuthorizationForUsers(previousUsers, newUsers, oreSiRightOnApplicationRole); + + final String expression = String.format("name = '%s'", application.getName()); + final SqlPolicy sqlPolicy = new SqlPolicy( + String.join("_", "application", "reader", oreSiRightOnApplicationRole.getAsSqlRole()), + SqlSchema.main().application(), + SqlPolicy.PermissiveOrRestrictive.PERMISSIVE, + List.of(SqlPolicy.Statement.SELECT), + oreSiRightOnApplicationRole, + expression, + null + ); + db.createPolicy(sqlPolicy); + if (modifiedAuthorization.getAuthorizations().containsKey(OperationType.publication)) { + db.addUserInRole(oreSiRightOnApplicationRole, OreSiRightOnApplicationRole.writerOn(application)); + toDatatypePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.publication, List.of(SqlPolicy.Statement.SELECT, SqlPolicy.Statement.INSERT, SqlPolicy.Statement.UPDATE)).stream() + .forEach(db::createPolicy); + toBinaryFilePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.publication, List.of(SqlPolicy.Statement.SELECT, SqlPolicy.Statement.INSERT, SqlPolicy.Statement.UPDATE)).stream() + .forEach(db::createPolicy); + } + if (modifiedAuthorization.getAuthorizations().containsKey(OperationType.delete)) { + toBinaryFilePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.delete, List.of(SqlPolicy.Statement.SELECT, SqlPolicy.Statement.DELETE)).stream() + .forEach(db::createPolicy); + } + if (modifiedAuthorization.getAuthorizations().containsKey(OperationType.depot)) { + toBinaryFilePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.depot, List.of(SqlPolicy.Statement.SELECT, SqlPolicy.Statement.INSERT, SqlPolicy.Statement.UPDATE)).stream() + .forEach(db::createPolicy); + } + if (modifiedAuthorization.getAuthorizations().containsKey(OperationType.extraction)) { + toDatatypePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.extraction, List.of(SqlPolicy.Statement.SELECT)).stream() + .forEach(db::createPolicy); + } + } + + + private void addOrRemoveAuthorizationForUsers(Set<UUID> previousUsers, Set<UUID> newUsers, OreSiRightOnApplicationRole oreSiRightOnApplicationRole) { + Set<UUID> usersNotChanged = Sets.difference(previousUsers, newUsers); + previousUsers.stream() + .filter(user -> !usersNotChanged.contains(user)) + .map(authenticationService::getUserRole) + .forEach(user -> db.removeUserInRole(user, oreSiRightOnApplicationRole)); + newUsers.stream() + .filter(user -> !usersNotChanged.contains(user)) + .map(authenticationService::getUserRole) + .forEach(user -> db.addUserInRole(user, oreSiRightOnApplicationRole)); + } + + + private List<SqlPolicy> toDatatypePolicy(OreSiAuthorization authorization, OreSiRightOnApplicationRole oreSiRightOnApplicationRole, OperationType operation, List<SqlPolicy.Statement> statements) { + Set<String> usingExpressionElements = new LinkedHashSet<>(); + SqlSchemaForApplication sqlSchemaForApplication = SqlSchema.forApplication(application); + + String dataType = authorization.getDataType(); + SqlPolicy sqlPolicy = null; + usingExpressionElements.add("application = '" + authorization.getApplication() + "'::uuid"); + usingExpressionElements.add("dataType = '" + dataType + "'"); + String expression = createExpression(authorization, usingExpressionElements, application, sqlSchemaForApplication, operation); + String usingExpression = null, checkExpression = null; + + return statements.stream() + .map(statement -> new SqlPolicy( + OreSiAuthorization.class.getSimpleName() + "_" + authorization.getId().toString() + "_data_"+statement.name().substring(0,3), + sqlSchemaForApplication.data(), + SqlPolicy.PermissiveOrRestrictive.PERMISSIVE, + Collections.singletonList(statement), + oreSiRightOnApplicationRole, + statement.equals(SqlPolicy.Statement.ALL) || statement.equals(SqlPolicy.Statement.UPDATE) || statement.equals(SqlPolicy.Statement.SELECT) ? expression : null, + statement.equals(SqlPolicy.Statement.ALL) || statement.equals(SqlPolicy.Statement.INSERT) || statement.equals(SqlPolicy.Statement.UPDATE) ? expression : null + )) + .collect(Collectors.toList()); + } + + + private List<SqlPolicy> toBinaryFilePolicy(OreSiAuthorization authorization, OreSiRightOnApplicationRole oreSiRightOnApplicationRole, OperationType operation, List<SqlPolicy.Statement> statements) { + Set<String> usingExpressionElements = new LinkedHashSet<>(); + SqlSchemaForApplication sqlSchemaForApplication = SqlSchema.forApplication(application); + SqlPolicy sqlPolicy = null; + usingExpressionElements.add("application = '" + authorization.getApplication() + "'::uuid"); + String expression = hasRepository ? createBinaryExpression(authorization, usingExpressionElements, application, sqlSchemaForApplication, operation) : "true"; + + return statements.stream() + .map(statement -> new SqlPolicy( + OreSiAuthorization.class.getSimpleName() + "_" + authorization.getId().toString()+ "_bf_"+statement.name().substring(0,3), + sqlSchemaForApplication.binaryFile(), + SqlPolicy.PermissiveOrRestrictive.PERMISSIVE, + Collections.singletonList(statement), + oreSiRightOnApplicationRole, + statement.equals(SqlPolicy.Statement.ALL) || statement.equals(SqlPolicy.Statement.UPDATE) || statement.equals(SqlPolicy.Statement.SELECT) ? /*expression*/ "true": null, + statement.equals(SqlPolicy.Statement.ALL) || statement.equals(SqlPolicy.Statement.INSERT) || statement.equals(SqlPolicy.Statement.UPDATE) ? expression : null + )) + .collect(Collectors.toList()); + } + + private String createBinaryExpression(OreSiAuthorization authorization, Set<String> usingExpressionElements, Application application, SqlSchemaForApplication sqlSchemaForApplication, OperationType operation) { + if (authorization.getAuthorizations().containsKey(operation) && + !authorization.getAuthorizations().get(operation).isEmpty()) { + usingExpressionElements.add("\"authorization\" @> " + + authorization.getAuthorizations().get(operation).stream() + .map(auth -> auth.toSQL(application.getConfiguration().getRequiredAuthorizationsAttributes())) + .filter(auth -> auth != null) + .map(sql -> String.format(sql, sqlSchemaForApplication.getName())) + .collect(Collectors.joining(",", "ARRAY[", "]::" + sqlSchemaForApplication.getName() + ".authorization[]")) + + + ); + } + + String usingExpression = usingExpressionElements.stream() + .map(statement -> "(" + statement + ")") + .collect(Collectors.joining(" AND ")); + return usingExpression; + } + + private String createExpression(OreSiAuthorization authorization, Set<String> usingExpressionElements, Application application, SqlSchemaForApplication sqlSchemaForApplication, OperationType operation) { + if (authorization.getAuthorizations().containsKey(operation) && + !authorization.getAuthorizations().get(operation).isEmpty()) { + usingExpressionElements.add("\"authorization\" @> " + + authorization.getAuthorizations().get(operation).stream() + .map(auth -> auth.toSQL(application.getConfiguration().getRequiredAuthorizationsAttributes())) + .filter(auth -> auth != null) + .map(sql -> String.format(sql, sqlSchemaForApplication.getName())) + .collect(Collectors.joining(",", "ARRAY[", "]::" + sqlSchemaForApplication.getName() + ".authorization[]")) + + + ); + } + + String usingExpression = usingExpressionElements.stream() + .map(statement -> "(" + statement + ")") + .collect(Collectors.joining(" AND ")); + return usingExpression; + } + + public void revoke(AuthorizationRequest revokeAuthorizationRequest) { + this.application = repository.application().findApplication(revokeAuthorizationRequest.getApplicationNameOrId()); + this.authorizationRepository = repository.getRepository(application).authorization(); + UUID authorizationId = revokeAuthorizationRequest.getAuthorizationId(); + OreSiAuthorization oreSiAuthorization = authorizationRepository.findById(authorizationId); + OreSiRightOnApplicationRole oreSiRightOnApplicationRole = OreSiRightOnApplicationRole.managementRole(application, authorizationId); + final SqlPolicy sqlPolicy = new SqlPolicy( + String.join("_", "application", "reader", oreSiRightOnApplicationRole.getAsSqlRole()), + SqlSchema.main().application(), + null, + null, + null, + null, + null + ); + modifiedAuthorization = authorizationRepository.findById(revokeAuthorizationRequest.getAuthorizationId()); + db.dropPolicy(sqlPolicy); + if (oreSiAuthorization.getAuthorizations().containsKey(OperationType.publication)) { + db.removeUserInRole(oreSiRightOnApplicationRole, OreSiRightOnApplicationRole.writerOn(application)); + toDatatypePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.publication, List.of(SqlPolicy.Statement.SELECT, SqlPolicy.Statement.INSERT)).stream() + .forEach(db::dropPolicy); + toBinaryFilePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.publication, List.of(SqlPolicy.Statement.SELECT, SqlPolicy.Statement.INSERT, SqlPolicy.Statement.UPDATE)).stream() + .forEach(db::dropPolicy); + } + if (modifiedAuthorization.getAuthorizations().containsKey(OperationType.delete)) { + toBinaryFilePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.delete, List.of(SqlPolicy.Statement.SELECT, SqlPolicy.Statement.DELETE)).stream() + .forEach(db::dropPolicy); + } + if (modifiedAuthorization.getAuthorizations().containsKey(OperationType.depot)) { + toBinaryFilePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.depot, List.of(SqlPolicy.Statement.SELECT, SqlPolicy.Statement.INSERT, SqlPolicy.Statement.UPDATE, SqlPolicy.Statement.INSERT)).stream() + .forEach(db::dropPolicy); + } + if (modifiedAuthorization.getAuthorizations().containsKey(OperationType.extraction)) { + toDatatypePolicy(modifiedAuthorization, oreSiRightOnApplicationRole, OperationType.extraction, List.of(SqlPolicy.Statement.SELECT)).stream() + .forEach(db::dropPolicy); + } + authorizationRepository.delete(authorizationId); + } +} \ No newline at end of file diff --git a/src/main/resources/migration/application/V1__init_schema.sql b/src/main/resources/migration/application/V1__init_schema.sql index c235af98a1ba5b7e40600f6bf33efbda47d06dd3..cdba5b95fb9ca43a139ec7137ccb45facf9bbb8b 100644 --- a/src/main/resources/migration/application/V1__init_schema.sql +++ b/src/main/resources/migration/application/V1__init_schema.sql @@ -1,47 +1,3 @@ -create table BinaryFile -( - id EntityId PRIMARY KEY, - creationDate DateOrNow, - updateDate DateOrNow, - application EntityRef REFERENCES Application (id), - name Text, - comment TEXT NOT NULL, - size INT, - data bytea, - params jsonb -); -CREATE INDEX binary_file_params_index ON BinaryFile USING gin (params); - -create table ReferenceValue -( - id EntityId PRIMARY KEY, - creationDate DateOrNow, - updateDate DateOrNow, - application EntityRef REFERENCES Application (id), - referenceType TEXT CHECK (name_check(application, 'referenceType', referenceType)), - hierarchicalKey ltree NOT NULL, - hierarchicalReference ltree NOT NULL, - naturalKey ltree NOT NULL, - refsLinkedTo jsonb , - refValues jsonb, - binaryFile EntityRef REFERENCES BinaryFile (id), - - CONSTRAINT "hierarchicalKey_uniqueness" UNIQUE (application, referenceType, hierarchicalKey) -); -create table Reference_Reference -( - referenceId entityid REFERENCES ReferenceValue(id) ON DELETE CASCADE, - referencesBy entityid REFERENCES ReferenceValue(id) ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED, - CONSTRAINT "Reference_Reference_PK" PRIMARY KEY (referenceId, referencesBy) -); - -CREATE INDEX ref_refslinkedto_index ON ReferenceValue USING gin (refsLinkedTo); -CREATE INDEX ref_refvalues_index ON ReferenceValue USING gin (refValues); - - ---CREATE INDEX referenceType_columnDataMapping_hash_idx ON ReferenceValue USING HASH (columnDataMapping); -CREATE INDEX referenceType_refValue_gin_idx ON ReferenceValue USING gin (refValues); - CREATE TYPE ${applicationSchema}.requiredAuthorizations AS ( ${requiredAuthorizations} @@ -49,10 +5,31 @@ CREATE TYPE ${applicationSchema}.requiredAuthorizations AS CREATE TYPE ${applicationSchema}."authorization" AS ( requiredAuthorizations ${applicationSchema}.requiredAuthorizations, - datagroups text[], + datagroups text[], timescope tsrange ); +CREATE OR REPLACE FUNCTION ${applicationSchema}.getAuthorization(params jsonb) + RETURNS ${applicationSchema}.authorization AS +$$ +DECLARE + requiredAuthorizations TEXT; + result TEXT; + dates tsrange; +BEGIN + select string_agg(value::text, ',') + into requiredAuthorizations + from jsonb_each(coalesce(params #> '{binaryfiledataset,requiredauthorizations}',params #> '{binaryfiledataset,requiredAuthorizations}')); + select tsrange(COALESCE(params #>> '{binaryfiledataset,from}', '-infinity')::date, + COALESCE(params #>> '{binaryfiledataset,to}', '-infinity')::date) + into dates; + select ('("(' || requiredAuthorizations || ')",,"' || dates || '")') into result; + return case + when result is null then '(,,)'::${applicationSchema}."authorization" + else result::${applicationSchema}.authorization end; +END; +$$ language 'plpgsql' IMMUTABLE; + CREATE OR REPLACE FUNCTION ${applicationSchema}.isAuthorized("authorization" ${applicationSchema}."authorization", "authorizedArray" ${applicationSchema}."authorization"[]) RETURNS BOOLEAN AS @@ -79,6 +56,51 @@ CREATE OPERATOR public.@> ( FUNCTION = ${applicationSchema}.isAuthorized ); +create table BinaryFile +( + id EntityId PRIMARY KEY, + creationDate DateOrNow, + updateDate DateOrNow, + application EntityRef REFERENCES Application (id), + name Text, + comment TEXT NOT NULL, + size INT, + data bytea, + params jsonb, + "authorization" ${applicationSchema}."authorization" GENERATED ALWAYS AS (${applicationSchema}.getauthorization(params)) STORED +); +CREATE INDEX binary_file_params_index ON BinaryFile USING gin (params); + +create table ReferenceValue +( + id EntityId PRIMARY KEY, + creationDate DateOrNow, + updateDate DateOrNow, + application EntityRef REFERENCES Application (id), + referenceType TEXT CHECK (name_check(application, 'referenceType', referenceType)), + hierarchicalKey ltree NOT NULL, + hierarchicalReference ltree NOT NULL, + naturalKey ltree NOT NULL, + refsLinkedTo jsonb, + refValues jsonb, + binaryFile EntityRef REFERENCES BinaryFile (id), + + CONSTRAINT "hierarchicalKey_uniqueness" UNIQUE (application, referenceType, hierarchicalKey) +); +create table Reference_Reference +( + referenceId entityid REFERENCES ReferenceValue (id) ON DELETE CASCADE, + referencesBy entityid REFERENCES ReferenceValue (id) ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED, + CONSTRAINT "Reference_Reference_PK" PRIMARY KEY (referenceId, referencesBy) +); + +CREATE INDEX ref_refslinkedto_index ON ReferenceValue USING gin (refsLinkedTo); +CREATE INDEX ref_refvalues_index ON ReferenceValue USING gin (refValues); + + +--CREATE INDEX referenceType_columnDataMapping_hash_idx ON ReferenceValue USING HASH (columnDataMapping); +CREATE INDEX referenceType_refValue_gin_idx ON ReferenceValue USING gin (refValues); + create table Data ( id EntityId PRIMARY KEY, @@ -87,10 +109,10 @@ create table Data application EntityRef REFERENCES Application (id), dataType TEXT constraint name_check CHECK (name_check(application, 'dataType', dataType)), - rowId TEXT NOT NULL, + rowId TEXT NOT NULL, datagroup TEXT GENERATED ALWAYS AS (("authorization").datagroups[1]) STORED NOT NULL, - "authorization" ${applicationSchema}.authorization NOT NULL check (("authorization").datagroups[1] is not null), - refsLinkedTo jsonb , + "authorization" ${applicationSchema}.authorization NOT NULL check (("authorization").datagroups[1] is not null), + refsLinkedTo jsonb, uniqueness jsonb, dataValues jsonb, binaryFile EntityRef REFERENCES BinaryFile (id), @@ -99,8 +121,8 @@ create table Data create table Data_Reference ( - dataId entityid REFERENCES Data(id) ON DELETE CASCADE, - referencesBy entityid REFERENCES ReferenceValue(id) ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED, + dataId entityid REFERENCES Data (id) ON DELETE CASCADE, + referencesBy entityid REFERENCES ReferenceValue (id) ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED, CONSTRAINT "Data_Reference_PK" PRIMARY KEY (dataId, referencesBy) ); @@ -124,18 +146,18 @@ CREATE TABLE OreSiAuthorization CREATE TABLE oresisynthesis ( - id entityid NOT NULL, - updatedate dateornow, - application entityref, - datatype text COLLATE pg_catalog."default", - variable text COLLATE pg_catalog."default", + id entityid NOT NULL, + updatedate dateornow, + application entityref, + datatype text COLLATE pg_catalog."default", + variable text COLLATE pg_catalog."default", requiredAuthorizations ${applicationSchema}.requiredAuthorizations, - aggregation text COLLATE pg_catalog."default", - ranges tsrange[], + aggregation text COLLATE pg_catalog."default", + ranges tsrange[], CONSTRAINT oresisynthesis_pkey PRIMARY KEY (id), CONSTRAINT synthesis_uk UNIQUE (application, datatype, variable, requiredAuthorizations, aggregation) ); -CREATE INDEX by_datatype_index ON oresisynthesis(application, aggregation, datatype); +CREATE INDEX by_datatype_index ON oresisynthesis (application, aggregation, datatype); CREATE INDEX by_datatype_variable_index ON oresisynthesis (application, aggregation, datatype, variable); GRANT ALL PRIVILEGES ON BinaryFile TO "superadmin" WITH GRANT OPTION; @@ -155,7 +177,8 @@ GRANT SELECT, INSERT, UPDATE, DELETE, REFERENCES ON OreSiAuthorization TO public GRANT SELECT, INSERT, UPDATE, DELETE, REFERENCES ON OreSiSynthesis TO public; ---ALTER TABLE BinaryFile ENABLE ROW LEVEL SECURITY; +ALTER TABLE BinaryFile + ENABLE ROW LEVEL SECURITY; --ALTER TABLE ReferenceValue ENABLE ROW LEVEL SECURITY; ALTER TABLE Data ENABLE ROW LEVEL SECURITY; \ No newline at end of file diff --git a/src/main/resources/migration/main/V1__init_schema.sql b/src/main/resources/migration/main/V1__init_schema.sql index 0fc93b18c000b1cb714c4dcb06d1c3324fbe504e..255e6554e29f792280a9bb009bcdefc54bd8f85a 100644 --- a/src/main/resources/migration/main/V1__init_schema.sql +++ b/src/main/resources/migration/main/V1__init_schema.sql @@ -2,7 +2,8 @@ CREATE EXTENSION IF NOT EXISTS "pgcrypto"; CREATE EXTENSION IF NOT EXISTS "ltree"; CREATE OR REPLACE FUNCTION fk_check(targetTable TEXT, uid UUID) -RETURNS BOOLEAN AS $$ + RETURNS BOOLEAN AS +$$ DECLARE result TEXT; BEGIN @@ -21,10 +22,11 @@ CREATE OR REPLACE FUNCTION public.jsonb_count_items(IN json jsonb) VOLATILE PARALLEL UNSAFE COST 100 - -AS $BODY$ -with elements as (select json->jsonb_object_keys(json) element) -select sum(jsonb_array_length(element)) from elements +AS +$BODY$ +with elements as (select json -> jsonb_object_keys(json) element) +select sum(jsonb_array_length(element)) +from elements $BODY$; /*-- check les foreign key pour le colonne references de la table data @@ -41,23 +43,26 @@ $$ language 'plpgsql';*/ --check if all elements of oreSiUser array are users CREATE OR REPLACE FUNCTION checks_users(users uuid[]) - RETURNS BOOLEAN AS $$ + RETURNS BOOLEAN AS +$$ DECLARE checked BOOLEAN; BEGIN select users <@ array_agg(id)::uuid[] into checked from OreSiUser OSU group by users; return checked; END; -$$ LANGUAGE plpgsql; +$$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION name_check(application UUID, targetColumn TEXT, val TEXT) -RETURNS BOOLEAN AS $$ + RETURNS BOOLEAN AS +$$ DECLARE result TEXT; BEGIN - EXECUTE format('select count(id) > 0 from Application where id=$1 AND $2 = ANY (%s);', targetColumn) INTO result USING application, val; + EXECUTE format('select count(id) > 0 from Application where id=$1 AND $2 = ANY (%s);', + targetColumn) INTO result USING application, val; RETURN result; END; $$ language 'plpgsql'; @@ -67,24 +72,29 @@ create domain EntityRef as uuid NOT NULL; create domain ListEntityRef as uuid[] NOT NULL; create domain DateOrNow as timestamp DEFAULT current_timestamp; -create table OreSiUser ( - id EntityId PRIMARY KEY, - creationDate DateOrNow, - updateDate DateOrNow, - login Text UNIQUE NOT NULL, - password text NOT NULL +create table OreSiUser +( + id EntityId PRIMARY KEY, + creationDate DateOrNow, + updateDate DateOrNow, + login Text UNIQUE NOT NULL, + password text NOT NULL,-- can be null + authorizations TEXT[] default '{}' ); - -create table Application ( - id EntityId PRIMARY KEY, - creationDate DateOrNow, - updateDate DateOrNow, - name Text, - comment TEXT NOT NULL, +GRANT SELECT on OreSiUser to public; + +create table Application +( + id EntityId PRIMARY KEY, + creator name default current_user, + creationDate DateOrNow, + updateDate DateOrNow, + name Text, + comment TEXT NOT NULL, referenceType TEXT[], -- liste des types de references existantes - dataType TEXT[], -- liste des types de data existants + dataType TEXT[], -- liste des types de data existants configuration jsonb, -- le fichier de configuration sous forme json - configFile uuid CHECK(fk_check(name || '.BinaryFile', configFile))-- can be null + configFile uuid CHECK (fk_check(name || '.BinaryFile', configFile)) ); CREATE INDEX application_referenceType_gin_idx ON application USING gin (referenceType); @@ -102,41 +112,46 @@ CREATE ROLE "applicationCreator"; GRANT INSERT, UPDATE ON Application TO "applicationCreator"; -GRANT SELECT, UPDATE, DELETE, REFERENCES ON Application TO public; +GRANT SELECT ON Application TO public ; + +GRANT SELECT , UPDATE , DELETE ON OreSiUser TO "superadmin", "applicationCreator"; -ALTER TABLE Application ENABLE ROW LEVEL SECURITY; +GRANT SELECT, UPDATE, DELETE, REFERENCES ON Application TO "applicationCreator",superadmin; -CREATE POLICY "applicationCreator_Application_insert" ON Application AS PERMISSIVE - FOR INSERT TO "applicationCreator" - WITH CHECK ( true ); +ALTER TABLE Application + ENABLE ROW LEVEL SECURITY; +CREATE POLICY "superadmin_Application_insert" + ON Application AS PERMISSIVE + TO superadmin + using (true) + with check (true); -CREATE POLICY "applicationCreator_Application_select" ON Application AS PERMISSIVE - FOR SELECT TO "applicationCreator" - USING ( true ); CREATE AGGREGATE jsonb_object_agg(jsonb) (SFUNC = 'jsonb_concat', STYPE = jsonb, INITCOND = '{}'); CREATE AGGREGATE aggregate_by_array_concatenation(anyarray) (SFUNC = 'array_cat', STYPE = anyarray, INITCOND = '{}'); -create type COMPOSITE_DATE as ( - datetimestamp "timestamp", - formattedDate "varchar" -) ; +create type COMPOSITE_DATE as +( + datetimestamp "timestamp", + formattedDate "varchar" +); CREATE FUNCTION castTextToCompositeDate(Text) RETURNS COMPOSITE_DATE AS - 'select - (substring($1 from 6 for 19)::timestamp, +'select (substring($1 from 6 for 19)::timestamp, substring($1 from 26))::COMPOSITE_DATE;' LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT; CREATE CAST (TEXT AS COMPOSITE_DATE) WITH FUNCTION castTextToCompositeDate(Text) AS ASSIGNMENT; CREATE FUNCTION castCompositeDateToTimestamp(COMPOSITE_DATE) RETURNS TIMESTAMP -AS 'select ($1).datetimestamp;' +AS +'select ($1).datetimestamp;' LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT; CREATE CAST (COMPOSITE_DATE AS TIMESTAMP) WITH FUNCTION castCompositeDateToTimestamp(COMPOSITE_DATE) AS ASSIGNMENT; CREATE FUNCTION castCompositeDateToFormattedDate(COMPOSITE_DATE) RETURNS Text -AS 'select ($1).formattedDate;' +AS +'select ($1).formattedDate;' LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT; diff --git a/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java b/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java index b385c53ad550abecbf9ae9bfca3bfce694e11239..3a4a9458cfa77f0cdf2a631aedc973ea812ee6b9 100644 --- a/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java @@ -2,9 +2,17 @@ package fr.inra.oresing.rest; import com.jayway.jsonpath.JsonPath; import fr.inra.oresing.OreSiNg; +import fr.inra.oresing.persistence.ApplicationRepository; import fr.inra.oresing.persistence.AuthenticationService; +import fr.inra.oresing.persistence.SqlService; +import fr.inra.oresing.persistence.UserRepository; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.security.Keys; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.assertj.core.util.Strings; +import org.hamcrest.Matchers; +import org.hamcrest.core.IsEqual; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -14,15 +22,19 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMock import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureWebMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.TestExecutionListeners; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.support.DirtiesContextTestExecutionListener; import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.Cookie; +import java.util.Map; import static org.hamcrest.Matchers.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; @@ -39,37 +51,66 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @Slf4j public class AuthorizationResourcesTest { + @Autowired + private UserRepository userRepository; + + @Autowired + private SqlService db; + + + @Autowired + private ApplicationRepository applicationRepository; + @Autowired private MockMvc mockMvc; @Autowired private AuthenticationService authenticationService; + + @Autowired + private NamedParameterJdbcTemplate namedParameterJdbcTemplate; + @Autowired private Fixtures fixtures; + @Autowired + private OreSiService oreSiService; + @Test public void testAddAuthorization() throws Exception { - Cookie authCookie = fixtures.addApplicationAcbb(); - CreateUserResult createUserResult = authenticationService.createUser("UnReader" , "xxxxxxxx"); - String readerUserId = createUserResult.getUserId().toString(); + CreateUserResult withRightsUserResult = authenticationService.createUser("withrigths", "xxxxxxxx"); + String withRigthsUserId = withRightsUserResult.getUserId().toString(); + Cookie withRigthsCookie = mockMvc.perform(post("/api/v1/login") + .param("login", "withrigths") + .param("password", "xxxxxxxx")) + .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); + CreateUserResult readerUserResult = authenticationService.createUser("UnReader", "xxxxxxxx"); Cookie authReaderCookie = mockMvc.perform(post("/api/v1/login") - .param("login" , "UnReader") - .param("password" , "xxxxxxxx")) + .param("login", "UnReader") + .param("password", "xxxxxxxx")) .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); - + String readerUserId = readerUserResult.getUserId().toString(); + + Cookie authCookie = fixtures.addApplicationAcbb(null); + final String token = Jwts.parser() + .setSigningKey(Keys.hmacShaKeyFor("1234567890AZERTYUIOP000000000000".getBytes())) + .parseClaimsJws(authCookie.getValue()) + .getBody() + .getSubject(); + final String authId = JsonPath.parse(token).read("$.requestClient.id"); { String response = mockMvc.perform(get("/api/v1/applications") .cookie(authCookie) ).andReturn().getResponse().getContentAsString(); - Assert.assertTrue("Le créateur de l'application doit pouvoir la retrouver dans la liste" , response.contains("acbb")); + Assert.assertTrue("Le créateur de l'application doit pouvoir la retrouver dans la liste", response.contains("acbb")); } { String response = mockMvc.perform(get("/api/v1/applications") .cookie(authReaderCookie) ).andReturn().getResponse().getContentAsString(); - Assert.assertFalse("On ne devrait pas voir l'application car les droits n'ont pas encore été accordés" , response.contains("acbb")); + Assert.assertFalse("On ne devrait pas voir l'application car les droits n'ont pas encore été accordés", response.contains("acbb")); } { @@ -89,7 +130,7 @@ public class AuthorizationResourcesTest { { String json = "{\n" + - " \"usersId\":[\""+readerUserId+"\"],\n" + + " \"usersId\":[\"" + readerUserId + "\"],\n" + " \"applicationNameOrId\":\"acbb\",\n" + " \"id\": null,\n" + " \"name\": \"une authorization sur acbb\",\n" + @@ -100,7 +141,7 @@ public class AuthorizationResourcesTest { " \"requiredAuthorizations\":{\n" + " \"localization\":\"theix.theix__22\"\n" + " },\n" + - " \"dataGroup\":[\n" + + " \"datagroups\":[\n" + " \"all\"\n" + " ],\n" + " \"intervalDates\":{\n" + @@ -124,17 +165,79 @@ public class AuthorizationResourcesTest { .contentType(MediaType.APPLICATION_JSON) .cookie(authCookie) .content(json); + /* NotApplicationCanSetRightsException error = (NotApplicationCanSetRightsException) mockMvc.perform(create) + .andExpect(status().is4xxClientError()) + .andReturn().getResolvedException(); + Assert.assertEquals(NotApplicationCanSetRightsException.NO_RIGHT_FOR_SET_RIGHTS_APPLICATION, error.getMessage()); + Assert.assertEquals("acbb", error.getApplicationName()); + Assert.assertEquals("biomasse_production_teneur", error.getDataType()); + final Application app = applicationRepository.findApplication("acbb"); + db.addUserInRole(OreSiUserRole.forUser( userRepository.findById(UUID.fromString(authId))), OreSiRightOnApplicationRole.adminOn(app));*/ String response = mockMvc.perform(create) .andExpect(status().isCreated()) .andReturn().getResponse().getContentAsString(); + + + log.debug(StringUtils.abbreviate(response, 50)); + //on ajoute une autre authorization + json = "{\n" + + " \"usersId\":[\"" + readerUserId + "\",\"" + authId + "\"],\n" + + " \"applicationNameOrId\":\"acbb\",\n" + + " \"id\": null,\n" + + " \"name\": \"une autre authorization sur acbb\",\n" + + " \"dataType\":\"biomasse_production_teneur\",\n" + + " \"authorizations\":{\n" + + " \"extraction\":[\n" + + " {\n" + + " \"requiredAuthorizations\":{\n" + + " \"localization\":\"theix.theix__2\"\n" + + " },\n" + + " \"dataGroups\":[\n" + + " \"all\"\n" + + " ],\n" + + " \"intervalDates\":{\n" + + " \"fromDay\":[\n" + + " 2009,\n" + + " 1,\n" + + " 1\n" + + " ],\n" + + " \"toDay\":[\n" + + " 2009,\n" + + " 6,\n" + + " 1\n" + + " ]\n" + + " }\n" + + " }\n" + + " ]\n" + + "}\n" + + "}"; + create = post("/api/v1/applications/acbb/dataType/biomasse_production_teneur/authorization") + .contentType(MediaType.APPLICATION_JSON) + .cookie(authCookie) + .content(json); + response = mockMvc.perform(create) + .andExpect(status().isCreated()) + .andReturn().getResponse().getContentAsString(); log.debug(StringUtils.abbreviate(response, 50)); } + { + final MockHttpServletRequestBuilder authorizations = get("/api/v1/acbb/authorization/biomasse_production_teneur/" + authId) + .contentType(MediaType.APPLICATION_JSON) + .cookie(authCookie); + mockMvc.perform(authorizations) + .andExpect(status().is2xxSuccessful()) + .andExpect(jsonPath("$.applicationName", equalTo("acbb"))) + .andExpect(jsonPath("$.dataType", equalTo("biomasse_production_teneur"))) + .andExpect(jsonPath("$.authorizationResults.extraction[0].requiredAuthorizations.localization", equalTo("theix.theix__2"))) + .andReturn().getResponse().getContentAsString(); + + } { String response = mockMvc.perform(get("/api/v1/applications") .cookie(authReaderCookie) ).andReturn().getResponse().getContentAsString(); - Assert.assertTrue("Une fois l'accès donné, on doit pouvoir avec l'application dans la liste" , response.contains("acbb")); + Assert.assertTrue("Une fois l'accès donné, on doit pouvoir avec l'application dans la liste", response.contains("acbb")); } { @@ -153,14 +256,13 @@ public class AuthorizationResourcesTest { @Test public void testAddAuthorizationOnTwoScopes() throws Exception { - Cookie authCookie = fixtures.addApplicationHauteFrequence(); - CreateUserResult createUserResult = authenticationService.createUser("UnReader" , "xxxxxxxx"); + CreateUserResult createUserResult = authenticationService.createUser("UnReader", "xxxxxxxx"); String readerUserId = createUserResult.getUserId().toString(); Cookie authReaderCookie = mockMvc.perform(post("/api/v1/login") - .param("login" , "UnReader") - .param("password" , "xxxxxxxx")) + .param("login", "UnReader") + .param("password", "xxxxxxxx")) .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); String authorizationId; @@ -168,7 +270,7 @@ public class AuthorizationResourcesTest { { String json = "{\n" + - " \"usersId\":[\""+readerUserId+"\"],\n" + + " \"usersId\":[\"" + readerUserId + "\"],\n" + " \"applicationNameOrId\":\"hautefrequence\",\n" + " \"id\": null,\n" + " \"name\": \"une authorization sur haute fréquence\",\n" + @@ -180,7 +282,7 @@ public class AuthorizationResourcesTest { " \"localization\":\"bimont.bim13\",\n" + " \"projet\":\"sou\"\n" + " },\n" + - " \"dataGroup\":[\n" + + " \"datagroups\":[\n" + " \"all\"\n" + " ],\n" + " \"intervalDates\":{\n" + @@ -214,8 +316,7 @@ public class AuthorizationResourcesTest { { String json = mockMvc.perform(get("/api/v1/applications/hautefrequence/dataType/hautefrequence/authorization/" + authorizationId) - .cookie(authCookie) - .accept(MediaType.APPLICATION_JSON)) + .cookie(authCookie)) .andExpect(status().isOk()) .andReturn().getResponse().getContentAsString(); @@ -235,7 +336,7 @@ public class AuthorizationResourcesTest { .andExpect(jsonPath("$.rows[*].values.localization.projet").value(not(hasItemInArray(equalTo("rnt"))), String[].class)) .andExpect(jsonPath("$.rows[*].values.date.day").value(hasItemInArray(equalTo("date:2016-06-14T00:00:00:14/06/2016")), String[].class)) .andExpect(jsonPath("$.rows[*].values.date.day").value(not(hasItemInArray(equalTo("date:2017-01-30T00:00:00:30/01/2017"))), String[].class)) - .andExpect(jsonPath("$.totalRows" , equalTo(7456))) + .andExpect(jsonPath("$.totalRows", equalTo(7456))) .andReturn().getResponse().getContentAsString(); @@ -257,8 +358,105 @@ public class AuthorizationResourcesTest { .cookie(authReaderCookie) .accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) - .andExpect(jsonPath("$.totalRows" , equalTo(-1))) + .andExpect(jsonPath("$.totalRows", equalTo(-1))) .andReturn().getResponse().getContentAsString(); } } + + @Test + public void testAddApplicationMonsoere() throws Exception { + fixtures.addMonsoreApplication(); + } + + @Test + public void testAddRightForAddApplication() throws Exception { + + { + final String TEST = "test"; + CreateUserResult dbUserResult = authenticationService.createUser(TEST, TEST); + final Cookie dbUserCookies = mockMvc.perform(post("/api/v1/login") + .param("login", TEST) + .param("password", TEST)) + .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); + addRoleAdmin(dbUserResult); + String applicationCreatorLogin = "applicationCreator"; + String applicationCreatorPassword = "xxxxxxxx"; + CreateUserResult applicationCreatorResult = authenticationService.createUser(applicationCreatorLogin, applicationCreatorPassword); + final Cookie applicationCreatorCookies = mockMvc.perform(post("/api/v1/login") + .param("login", applicationCreatorLogin) + .param("password", applicationCreatorPassword)) + .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); + String lambdaLogin = "lambda"; + String lambdaPassword = "xxxxxxxx"; + CreateUserResult lambdaResult = authenticationService.createUser(lambdaLogin, lambdaPassword); + final Cookie lambdaCookie = mockMvc.perform(post("/api/v1/login") + .param("login", lambdaLogin) + .param("password", lambdaPassword)) + .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); + + { + //l'administrateur peut créer des applications. + final String monsoreResult = fixtures.createApplicationMonSore(dbUserCookies, "monsore"); + Assert.assertFalse(Strings.isNullOrEmpty(JsonPath.parse(monsoreResult).read("$.id", String.class))); + } + { + // on donne les droits pour un pattern acbb + + ResultActions resultActions = mockMvc.perform(put("/api/v1/authorization/applicationCreator") + .param("userIdOrLogin", applicationCreatorResult.getUserId().toString()) + .param("applicationPattern", "acbb") + .cookie(dbUserCookies)) + .andExpect(status().is2xxSuccessful()) + .andExpect(jsonPath("$.roles.currentUser", IsEqual.equalTo(applicationCreatorResult.getUserId().toString()))) + .andExpect(jsonPath("$.roles.memberOf", Matchers.hasItem("applicationCreator"))) + .andExpect(jsonPath("$.authorizations", Matchers.hasItem("acbb"))) + .andExpect(jsonPath("$.id", IsEqual.equalTo(applicationCreatorResult.getUserId().toString()))); + + //on peut déposer acbb + final String acbbResult = fixtures.createApplicationMonSore(applicationCreatorCookies, "acbb"); + Assert.assertFalse(Strings.isNullOrEmpty(JsonPath.parse(acbbResult).read("$.id", String.class))); + //on ne peut déposer monsore + Assert.assertEquals("NO_RIGHT_FOR_APPLICATION_CREATION", fixtures.createApplicationMonSore(applicationCreatorCookies, "monsore")); + + } + { + //on donne des droits pour le pattern monsore + ResultActions resultActions = mockMvc.perform(put("/api/v1/authorization/applicationCreator") + .param("userIdOrLogin", applicationCreatorResult.getUserId().toString()) + .param("applicationPattern", "monsore") + .cookie(dbUserCookies)) + .andExpect(status().is2xxSuccessful()) + .andExpect(jsonPath("$.roles.currentUser", IsEqual.equalTo(applicationCreatorResult.getUserId().toString()))) + .andExpect(jsonPath("$.roles.memberOf", Matchers.hasItem("applicationCreator"))) + .andExpect(jsonPath("$.authorizations", Matchers.hasItem("monsore"))) + .andExpect(jsonPath("$.id", IsEqual.equalTo(applicationCreatorResult.getUserId().toString()))); + + //on peut déposer monsore + final String acbbResult = fixtures.createApplicationMonSore(applicationCreatorCookies, "acbb"); + Assert.assertFalse(Strings.isNullOrEmpty(JsonPath.parse(acbbResult).read("$.id", String.class))); + + } + { + //on supprime des droits pour le pattern monsore + ResultActions resultActions = mockMvc.perform(delete("/api/v1/authorization/applicationCreator") + .param("userIdOrLogin", applicationCreatorResult.getUserId().toString()) + .param("applicationPattern", "monsore") + .cookie(dbUserCookies)) + .andExpect(status().is2xxSuccessful()) + .andExpect(jsonPath("$.roles.currentUser", IsEqual.equalTo(applicationCreatorResult.getUserId().toString()))) + .andExpect(jsonPath("$.roles.memberOf", not(Matchers.hasItem("applicationCreator")))) + .andExpect(jsonPath("$.authorizations", not(Matchers.hasItem("monsore")))) + .andExpect(jsonPath("$.id", IsEqual.equalTo(applicationCreatorResult.getUserId().toString()))); + + //on ne peut déposer monsore + Assert.assertEquals("NO_RIGHT_FOR_APPLICATION_CREATION", fixtures.createApplicationMonSore(applicationCreatorCookies, "monsore")); + } + } + + } + + @Transactional + void addRoleAdmin(CreateUserResult dbUserResult) { + namedParameterJdbcTemplate.update("grant \"superadmin\" to \"" + dbUserResult.getUserId().toString() + "\"", Map.of()); + } } \ No newline at end of file diff --git a/src/test/java/fr/inra/oresing/rest/Fixtures.java b/src/test/java/fr/inra/oresing/rest/Fixtures.java index bbd523b05bc1195e8e10430d4c2289fcc512daa4..ae1a5b789886dc4bfc554c995019364e39b9d67e 100644 --- a/src/test/java/fr/inra/oresing/rest/Fixtures.java +++ b/src/test/java/fr/inra/oresing/rest/Fixtures.java @@ -5,14 +5,24 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.io.Resources; import fr.inra.oresing.OreSiTechnicalException; +import fr.inra.oresing.model.OreSiUser; import fr.inra.oresing.persistence.AuthenticationService; +import fr.inra.oresing.persistence.UserRepository; import org.apache.commons.io.IOUtils; +import org.hamcrest.Matchers; +import org.hamcrest.core.IsEqual; +import org.junit.Assert; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; +import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Component; import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.util.NestedServletException; import javax.servlet.http.Cookie; import java.io.IOException; @@ -21,15 +31,14 @@ import java.time.LocalDate; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @Component @@ -40,7 +49,11 @@ public class Fixtures { @Autowired private AuthenticationService authenticationService; + @Autowired + private NamedParameterJdbcTemplate namedParameterJdbcTemplate; + @Autowired + private UserRepository userRepository; private Cookie cookie; public String getMonsoreApplicationName() { @@ -83,12 +96,12 @@ public class Fixtures { //fougeres-fou_4_swc_j_01-01-1999_31-01-1999.csv final Pattern pattern = Pattern.compile("(.*)_" + datatype + "_(.*)_(.*).csv"); final Matcher matcher = pattern.matcher(fileName); - if(!matcher.matches()){ + if (!matcher.matches()) { return null; } String zone_etude = matcher.group(1); final String[] parent_site = zone_etude.split("-"); - if(parent_site.length>1){ + if (parent_site.length > 1) { zone_etude = String.format("%1$s.%1$s__%2$s", parent_site[0], parent_site[1]); } final DateTimeFormatter formaterIn = DateTimeFormatter.ofPattern("dd-MM-yyyy"); @@ -96,8 +109,8 @@ public class Fixtures { final boolean isMonthly = datatype.matches(".*_m"); final String format = (isMonthly ? "01-" : "") + "%s"; - String dateDebut =formaterOut.format(LocalDate.parse(String.format(format, matcher.group(2)), formaterIn).atStartOfDay(ZoneOffset.UTC))+" 00:00:00"; - String dateFin =formaterOut.format(LocalDate.parse(String.format(format, matcher.group(3)), formaterIn).atTime(0,0).plus(1, isMonthly ? ChronoUnit.MONTHS:ChronoUnit.DAYS))+" 00:00:00"; + String dateDebut = formaterOut.format(LocalDate.parse(String.format(format, matcher.group(2)), formaterIn).atStartOfDay(ZoneOffset.UTC)) + " 00:00:00"; + String dateFin = formaterOut.format(LocalDate.parse(String.format(format, matcher.group(3)), formaterIn).atTime(0, 0).plus(1, isMonthly ? ChronoUnit.MONTHS : ChronoUnit.DAYS)) + " 00:00:00"; return String.format("{\n" + " \"fileid\":null,\n" + " \"binaryfiledataset\":{\n" + @@ -366,12 +379,12 @@ public class Fixtures { return "/data/migration/couleurs.csv"; } - private Cookie addApplicationCreatorUser() throws Exception { + public Cookie addSuperAdmin(String applicationPattern) throws Exception { if (cookie == null) { String aPassword = "xxxxxxxx"; - String aLogin = "poussin"; + String aLogin = "superAdmin"; CreateUserResult createUserResult = authenticationService.createUser(aLogin, aPassword); - authenticationService.addUserRightCreateApplication(createUserResult.getUserId()); + authenticationService.addUserRightCreateApplication(createUserResult.getUserId(), applicationPattern); cookie = mockMvc.perform(post("/api/v1/login") .param("login", aLogin) .param("password", aPassword)) @@ -380,15 +393,68 @@ public class Fixtures { return cookie; } - public Cookie addMonsoreApplication() throws Exception { - Cookie authCookie = addApplicationCreatorUser(); + @Transactional + void addRoleAdmin(CreateUserResult dbUserResult) { + namedParameterJdbcTemplate.update("grant \"superadmin\" to \"" + dbUserResult.getUserId().toString() + "\"", Map.of()); + } + + public Cookie addApplicationCreatorUser(String applicationPattern) throws Exception { + if (cookie == null) { + String aPassword = "xxxxxxxx"; + String aLogin = "poussin"; + CreateUserResult createUserResult = authenticationService.createUser(aLogin, aPassword); + addRoleAdmin(createUserResult); + final MockHttpServletResponse response = mockMvc.perform(post("/api/v1/login") + .param("login", aLogin) + .param("password", aPassword)) + .andReturn().getResponse(); + cookie = response.getCookie(AuthHelper.JWT_COOKIE_NAME); + } + String aPassword = "xxxxxxxx"; + String aLogin = applicationPattern; + CreateUserResult createUserResult = authenticationService.createUser(aLogin, aPassword); + final UUID userId = createUserResult.getUserId(); + ResultActions resultActions = mockMvc.perform(put("/api/v1/authorization/applicationCreator") + .param("userIdOrLogin", userId.toString()) + .param("applicationPattern", applicationPattern) + .cookie(cookie)) + .andExpect(status().is2xxSuccessful()) + .andExpect(jsonPath("$.roles.currentUser", IsEqual.equalTo(userId.toString()))) + .andExpect(jsonPath("$.roles.memberOf", Matchers.hasItem("applicationCreator"))) + .andExpect(jsonPath("$.authorizations", Matchers.hasItem(applicationPattern))) + .andExpect(jsonPath("$.id", IsEqual.equalTo(userId.toString()))); + final OreSiUser user = userRepository.findById(userId); + Assert.assertTrue(user.getAuthorizations().contains(applicationPattern)); + Cookie applicationCreator = mockMvc.perform(post("/api/v1/login") + .param("login", aLogin) + .param("password", aPassword)) + .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); + return applicationCreator; + } + + public String createApplicationMonSore(Cookie authCookie, String applicationName) throws Exception { + ResultActions resultActions = null; try (InputStream configurationFile = getClass().getResourceAsStream(getMonsoreApplicationConfigurationResourceName())) { MockMultipartFile configuration = new MockMultipartFile("file", "monsore.yaml", "text/plain", configurationFile); - mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore") - .file(configuration) - .cookie(authCookie)) - .andExpect(MockMvcResultMatchers.status().isCreated()); + resultActions = mockMvc.perform(MockMvcRequestBuilders.multipart(String.format("/api/v1/applications/%s", applicationName == null ? "monsore" : applicationName)) + .file(configuration) + .cookie(authCookie)); + return resultActions.andExpect(MockMvcResultMatchers.status().isCreated()) + .andReturn() + .getResponse().getContentAsString(); + } catch (NestedServletException e) { + if (e.getCause() instanceof NotApplicationCreatorRightsException) { + throw (NotApplicationCreatorRightsException) e.getCause(); + } + throw e; + } catch (AssertionError e) { + return resultActions.andReturn().getResolvedException().getMessage(); } + } + + public Cookie addMonsoreApplication() throws Exception { + Cookie authCookie = addApplicationCreatorUser("monsore"); + String result = createApplicationMonSore(authCookie, "monsore"); // Ajout de referentiel for (Map.Entry<String, String> e : getMonsoreReferentielFiles().entrySet()) { @@ -413,7 +479,7 @@ public class Fixtures { } public Cookie addMigrationApplication() throws Exception { - Cookie authCookie = addApplicationCreatorUser(); + Cookie authCookie = addApplicationCreatorUser("fakeapp"); try (InputStream configurationFile = getClass().getResourceAsStream(getMigrationApplicationConfigurationResourceName(1))) { MockMultipartFile configuration = new MockMultipartFile("file", "fake-app.yaml", "text/plain", configurationFile); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/fakeapp") @@ -443,8 +509,10 @@ public class Fixtures { return authCookie; } - public Cookie addApplicationAcbb() throws Exception { - Cookie authCookie = addApplicationCreatorUser(); + public Cookie addApplicationAcbb(Cookie authCookie) throws Exception { + if (authCookie == null) { + authCookie = addApplicationCreatorUser("acbb"); + } try (InputStream configurationFile = getClass().getResourceAsStream(getAcbbApplicationConfigurationResourceName())) { MockMultipartFile configuration = new MockMultipartFile("file", "acbb.yaml", "text/plain", configurationFile); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/acbb") @@ -465,14 +533,25 @@ public class Fixtures { } // ajout de data - try (InputStream in = getClass().getResourceAsStream(getFluxToursDataResourceName())) { - MockMultipartFile file = new MockMultipartFile("file", "Flux_tours.csv", "text/plain", in); - mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/acbb/data/flux_tours") + addFluxTours(authCookie); + + addBiomasse(authCookie); + + addSWC(authCookie); + return authCookie; + } + + private void addSWC(Cookie authCookie) throws Exception { + try (InputStream in = openSwcDataResourceName(true)) { + MockMultipartFile file = new MockMultipartFile("file", "SWC.csv", "text/plain", in); + mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/acbb/data/SWC") .file(file) .cookie(authCookie)) .andExpect(status().is2xxSuccessful()); } + } + private void addBiomasse(Cookie authCookie) throws Exception { try (InputStream in = getClass().getResourceAsStream(getBiomasseProductionTeneurDataResourceName())) { MockMultipartFile file = new MockMultipartFile("file", "biomasse_production_teneur.csv", "text/plain", in); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/acbb/data/biomasse_production_teneur") @@ -480,15 +559,16 @@ public class Fixtures { .cookie(authCookie)) .andExpect(status().is2xxSuccessful()); } + } - try (InputStream in = openSwcDataResourceName(true)) { - MockMultipartFile file = new MockMultipartFile("file", "SWC.csv", "text/plain", in); - mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/acbb/data/SWC") + private void addFluxTours(Cookie authCookie) throws Exception { + try (InputStream in = getClass().getResourceAsStream(getFluxToursDataResourceName())) { + MockMultipartFile file = new MockMultipartFile("file", "Flux_tours.csv", "text/plain", in); + mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/acbb/data/flux_tours") .file(file) .cookie(authCookie)) .andExpect(status().is2xxSuccessful()); } - return authCookie; } public String getValidationApplicationConfigurationResourceName() { @@ -516,7 +596,7 @@ public class Fixtures { } public Cookie addApplicationHauteFrequence() throws Exception { - Cookie authCookie = addApplicationCreatorUser(); + Cookie authCookie = addApplicationCreatorUser("hautefrequence"); try (InputStream configurationFile = getClass().getResourceAsStream(getHauteFrequenceApplicationConfigurationResourceName())) { MockMultipartFile configuration = new MockMultipartFile("file", "hautefrequence.yaml", "text/plain", configurationFile); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/hautefrequence") @@ -585,7 +665,7 @@ public class Fixtures { } public Cookie addApplicationOLAC() throws Exception { - Cookie authCookie = addApplicationCreatorUser(); + Cookie authCookie = addApplicationCreatorUser("olac"); try (InputStream configurationFile = getClass().getResourceAsStream(getOlaApplicationConfigurationResourceName())) { MockMultipartFile configuration = new MockMultipartFile("file", "olac.yaml", "text/plain", configurationFile); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/olac") @@ -746,7 +826,7 @@ public class Fixtures { } public Cookie addApplicationFORET() throws Exception { - Cookie authCookie = addApplicationCreatorUser(); + Cookie authCookie = addApplicationCreatorUser("foret"); try (InputStream configurationFile = getClass().getResourceAsStream(getForetApplicationConfigurationResourceName())) { MockMultipartFile configuration = new MockMultipartFile("file", "foret.yaml", "text/plain", configurationFile); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/foret") @@ -817,7 +897,7 @@ public class Fixtures { } public void addApplicationRecursivity() throws Exception { - Cookie authCookie = addApplicationCreatorUser(); + Cookie authCookie = addApplicationCreatorUser("recursivite"); try (InputStream in = getClass().getResourceAsStream(getRecursivityApplicationConfigurationResourceName())) { MockMultipartFile configuration = new MockMultipartFile("file", "recursivity.yaml", "text/plain", in); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/recursivite") diff --git a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java index bed046ce20f0e51ad85046a2917220302c00d13f..b4edf63883cddd61721c698318046292256ef295 100644 --- a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java @@ -10,6 +10,9 @@ import fr.inra.oresing.ValidationLevel; import fr.inra.oresing.checker.InvalidDatasetContentException; import fr.inra.oresing.persistence.AuthenticationService; import fr.inra.oresing.persistence.JsonRowMapper; +import fr.inra.oresing.persistence.OperationType; +import fr.inra.oresing.persistence.UserRepository; +import fr.inra.oresing.rest.exceptions.SiOreIllegalArgumentException; import fr.inra.oresing.rest.exceptions.configuration.BadApplicationConfigurationException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; @@ -32,6 +35,7 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMock import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureWebMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.mock.web.MockMultipartFile; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.TestExecutionListeners; @@ -39,10 +43,12 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.support.DirtiesContextTestExecutionListener; import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.util.NestedServletException; import javax.servlet.http.Cookie; @@ -54,9 +60,9 @@ import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; -import static org.hamcrest.Matchers.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasItemInArray; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @RunWith(SpringRunner.class) @@ -85,17 +91,36 @@ public class OreSiResourcesTest { private Cookie authCookie; - private UUID userId; + private Cookie lambdaCookie; + + private UUID authUserId; private CreateUserResult lambdaUser; + @Autowired + private NamedParameterJdbcTemplate namedParameterJdbcTemplate; + @Autowired + private UserRepository userRepository; + + @Before public void createUser() throws Exception { - userId = authenticationService.createUser("poussin", "xxxxxxxx").getUserId(); lambdaUser = authenticationService.createUser("lambda", "xxxxxxxx"); + lambdaCookie = mockMvc.perform(post("/api/v1/login") + .param("lambda", "poussin") + .param("password", "xxxxxxxx")) + .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); + final CreateUserResult authUser = authenticationService.createUser("poussin", "xxxxxxxx"); + authUserId = authUser.getUserId(); authCookie = mockMvc.perform(post("/api/v1/login") .param("login", "poussin") .param("password", "xxxxxxxx")) .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); + addRoleAdmin(authUser); + } + + @Transactional + void addRoleAdmin(CreateUserResult dbUserResult) { + namedParameterJdbcTemplate.update("grant \"superadmin\" to \"" + dbUserResult.getUserId().toString() + "\"", Map.of()); } @Test @@ -103,21 +128,37 @@ public class OreSiResourcesTest { public void addApplicationMonsore() throws Exception { String appId; + final CreateUserResult monsoereUser = authenticationService.createUser("monsore", "xxxxxxxx"); + UUID monsoreUserId = monsoereUser.getUserId(); + Cookie monsoreCookie = mockMvc.perform(post("/api/v1/login") + .param("login", "monsore") + .param("password", "xxxxxxxx")) + .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); + CreateUserResult withRightsUserResult = authenticationService.createUser("withrigths", "xxxxxxxx"); + String withRigthsUserId = withRightsUserResult.getUserId().toString(); + Cookie withRigthsCookie = mockMvc.perform(post("/api/v1/login") + .param("login", "withrigths") + .param("password", "xxxxxxxx")) + .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); + URL resource = getClass().getResource(fixtures.getMonsoreApplicationConfigurationResourceName()); try (InputStream in = Objects.requireNonNull(resource).openStream()) { MockMultipartFile configuration = new MockMultipartFile("file", "monsore.yaml", "text/plain", in); // on n'a pas le droit de creer de nouvelle application - mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore") + final NotApplicationCreatorRightsException resolvedException = (NotApplicationCreatorRightsException) mockMvc.perform(multipart("/api/v1/applications/monsore") .file(configuration) - .cookie(authCookie)) - .andExpect(status().is4xxClientError()); - authenticationService.addUserRightCreateApplication(userId); + .cookie(monsoreCookie)) + .andExpect(status().is4xxClientError()) + .andReturn().getResolvedException(); + addUserRightCreateApplication(monsoreUserId, "monsore"); + Assert.assertEquals("monsore", resolvedException.applicationName); + addUserRightCreateApplication(monsoreUserId, "monsore"); String response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore") .file(configuration) .param("comment", "commentaire") - .cookie(authCookie)) + .cookie(monsoreCookie)) .andExpect(status().isCreated()) .andExpect(jsonPath("$.id", IsNull.notNullValue())) .andReturn().getResponse().getContentAsString(); @@ -127,7 +168,7 @@ public class OreSiResourcesTest { String response = mockMvc.perform(get("/api/v1/applications/{appId}", appId) .contentType(MediaType.APPLICATION_JSON) - .cookie(authCookie)) + .cookie(monsoreCookie)) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) // id @@ -148,7 +189,7 @@ public class OreSiResourcesTest { response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore/references/{refType}", e.getKey()) .file(refFile) - .cookie(authCookie)) + .cookie(monsoreCookie)) .andExpect(status().isCreated()) .andExpect(jsonPath("$.id", IsNull.notNullValue())) .andReturn().getResponse().getContentAsString(); @@ -158,13 +199,13 @@ public class OreSiResourcesTest { } mockMvc.perform(get("/api/v1/applications/{appId}", appId) .contentType(MediaType.APPLICATION_JSON) - .cookie(authCookie)) + .cookie(monsoreCookie)) .andExpect(status().isOk()) .andExpect(jsonPath("$.referenceSynthesis[ ?(@.referenceType=='valeurs_qualitatives')].lineCount", IsEqual.equalTo(List.of(3)))); String getReferencesResponse = mockMvc.perform(get("/api/v1/applications/monsore/references/sites") .contentType(MediaType.APPLICATION_JSON) - .cookie(authCookie)) + .cookie(monsoreCookie)) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andReturn().getResponse().getContentAsString(); @@ -176,10 +217,19 @@ public class OreSiResourcesTest { resource = getClass().getResource(fixtures.getPemDataResourceName()); try (InputStream refStream = Objects.requireNonNull(resource).openStream()) { MockMultipartFile refFile = new MockMultipartFile("file", "data-pem.csv", "text/plain", refStream); + // sans droit on ne peut pas + response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore/data/pem") + .file(refFile) + .cookie(withRigthsCookie)) + .andExpect(status().is4xxClientError()) + .andExpect(content().string("application inconnue 'monsore'")) + .andReturn().getResponse().getContentAsString(); + final String jsonRightsForMonsoere = getJsonRightsForMonsoere(monsoreCookie,withRigthsUserId, OperationType.publication.name()); + //avec les droits on peut publier response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore/data/pem") .file(refFile) - .cookie(authCookie)) + .cookie(withRigthsCookie)) .andExpect(status().is2xxSuccessful()) .andReturn().getResponse().getContentAsString(); @@ -193,7 +243,7 @@ public class OreSiResourcesTest { MockMultipartFile refFile = new MockMultipartFile("file", "data-pem.csv", "text/plain", bytes); response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore/data/pem") .file(refFile) - .cookie(authCookie)) + .cookie(monsoreCookie)) .andExpect(status().isBadRequest()) .andReturn().getResponse().getContentAsString(); log.debug(StringUtils.abbreviate(response, 50)); @@ -203,26 +253,12 @@ public class OreSiResourcesTest { // list des types de data response = mockMvc.perform(get("/api/v1/applications/monsore/data") - .cookie(authCookie)) + .cookie(monsoreCookie)) .andExpect(status().isOk()) .andReturn().getResponse().getContentAsString(); log.debug(StringUtils.abbreviate(response, 50)); -// // creation d'un user qui aura le droit de lire les données -// OreSiUser reader = authRepository.createUser("UnReader", "xxxxxxxx"); -// mockMvc.perform(put("/api/v1/applications/{nameOrId}/users/{role}/{userId}", -// appId, ApplicationRight.READER.name(), reader.getId().toString()) -//// .contentType(MediaType.APPLICATION_JSON) -// .cookie(authCookie)) -// .andExpect(status().isOk()); -// -// Cookie authReaderCookie = mockMvc.perform(post("/api/v1/login") -// .param("login", "UnReader") -// .param("password", "xxxxxxxx")) -// .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); - - // restitution de data json { String expectedJson = Resources.toString(Objects.requireNonNull(getClass().getResource("/data/monsore/compare/export.json")), Charsets.UTF_8); JSONArray jsonArray = new JSONArray(expectedJson); @@ -232,7 +268,7 @@ public class OreSiResourcesTest { } String actualJson = mockMvc.perform(get("/api/v1/applications/monsore/data/pem") - .cookie(authCookie) + .cookie(monsoreCookie) .accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.variables").isArray()) @@ -266,7 +302,7 @@ public class OreSiResourcesTest { String filter = "{\"application\":null,\"applicationNameOrId\":null,\"dataType\":null,\"offset\":null,\"limit\":15,\"variableComponentSelects\":[],\"variableComponentFilters\":[{\"variableComponentKey\":{\"variable\":\"date\",\"component\":\"value\"},\"filter\":null,\"type\":\"date\",\"format\":\"dd/MM/yyyy\",\"intervalValues\":{\"from\":\"1984-01-01\",\"to\":\"1984-01-01\"}},{\"variableComponentKey\":{\"variable\":\"Nombre d'individus\",\"component\":\"value\"},\"filter\":null,\"type\":\"numeric\",\"format\":\"integer\",\"intervalValues\":{\"from\":\"20\",\"to\":\"29\"}},{\"variableComponentKey\":{\"variable\":\"Couleur des individus\",\"component\":\"value\"},\"filter\":\"vert\",\"type\":\"reference\",\"format\":\"uuid\",\"intervalValues\":null}],\"variableComponentOrderBy\":[{\"variableComponentKey\":{\"variable\":\"site\",\"component\":\"plateforme\"},\"order\":\"ASC\",\"type\":null,\"format\":null}]}"; Resources.toString(Objects.requireNonNull(getClass().getResource("/data/monsore/compare/export.json")), Charsets.UTF_8); String actualJson = mockMvc.perform(get("/api/v1/applications/monsore/data/pem") - .cookie(authCookie) + .cookie(monsoreCookie) .param("downloadDatasetQuery", filter) .accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) @@ -284,7 +320,7 @@ public class OreSiResourcesTest { { String expectedCsv = Resources.toString(Objects.requireNonNull(getClass().getResource("/data/monsore/compare/export.csv")), Charsets.UTF_8); String actualCsv = mockMvc.perform(get("/api/v1/applications/monsore/data/pem") - .cookie(authCookie) + .cookie(monsoreCookie) .accept(MediaType.TEXT_PLAIN)) .andExpect(status().isOk()) // .andExpect(content().string(expectedCsv)) @@ -308,7 +344,7 @@ public class OreSiResourcesTest { MockMultipartFile refFile = new MockMultipartFile("file", "data-pem.csv", "text/plain", invalidCsv.getBytes(StandardCharsets.UTF_8)); response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore/data/pem") .file(refFile) - .cookie(authCookie)) + .cookie(monsoreCookie)) .andExpect(status().is4xxClientError()) .andReturn().getResponse().getContentAsString(); log.debug(StringUtils.abbreviate(response, 50)); @@ -327,24 +363,29 @@ public class OreSiResourcesTest { .accept(MediaType.APPLICATION_JSON)) .andReturn().getResponse().getContentAsString(); final String getSites = mockMvc.perform(get("/api/v1/applications/monsore/references/sites") - .cookie(authCookie) + .cookie(monsoreCookie) .accept(MediaType.APPLICATION_JSON)) + .andExpect(status().is2xxSuccessful()) .andReturn().getResponse().getContentAsString(); final String getTypeSites = mockMvc.perform(get("/api/v1/applications/monsore/references/type_de_sites") - .cookie(authCookie) + .cookie(monsoreCookie) .accept(MediaType.APPLICATION_JSON)) + .andExpect(status().is2xxSuccessful()) .andReturn().getResponse().getContentAsString(); final String getProjet = mockMvc.perform(get("/api/v1/applications/monsore/references/projet") - .cookie(authCookie) + .cookie(monsoreCookie) .accept(MediaType.APPLICATION_JSON)) + .andExpect(status().is2xxSuccessful()) .andReturn().getResponse().getContentAsString(); final String getPem = mockMvc.perform(get("/api/v1/applications/monsore/data/pem") - .cookie(authCookie) + .cookie(monsoreCookie) .accept(MediaType.APPLICATION_JSON)) + .andExpect(status().is2xxSuccessful()) .andReturn().getResponse().getContentAsString(); final String getGrantable = mockMvc.perform(get("/api/v1/applications/monsore/dataType/pem/grantable") - .cookie(authCookie) + .cookie(monsoreCookie) .accept(MediaType.APPLICATION_JSON)) + .andExpect(status().is2xxSuccessful()) .andReturn().getResponse().getContentAsString(); registerFile("ui/cypress/fixtures/applications/ore/monsore/monsoere.json", getMonsoere); registerFile("ui/cypress/fixtures/applications/ore/monsore/datatypes/pem.json", getPem); @@ -428,7 +469,8 @@ public class OreSiResourcesTest { // changement du fichier de config avec un mauvais (qui ne permet pas d'importer les fichiers } - public void registerFile(String filePath, String jsonContent) throws IOException { + + public void registerFile(String filePath, String jsonContent) throws IOException { jsonContent = new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(jsonContent); File errorsFile = new File(filePath); log.debug(errorsFile.getAbsolutePath()); @@ -446,7 +488,7 @@ public class OreSiResourcesTest { try (InputStream in = Objects.requireNonNull(resource).openStream()) { MockMultipartFile configuration = new MockMultipartFile("file", "monsore.yaml", "text/plain", in); //définition de l'application - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "monsore"); String response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore") .file(configuration) @@ -474,30 +516,50 @@ public class OreSiResourcesTest { JsonPath.parse(response).read("$.id"); } } + CreateUserResult withRightsUserResult = authenticationService.createUser("withrigths", "xxxxxxxx"); + String withRigthsUserId = withRightsUserResult.getUserId().toString(); + Cookie withRigthsCookie = mockMvc.perform(post("/api/v1/login") + .param("login", "withrigths") + .param("password", "xxxxxxxx")) + .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); // ajout de data String projet = "manche"; String plateforme = "plateforme"; String site = "oir"; resource = getClass().getResource(fixtures.getPemRepositoryDataResourceName(projet, site)); + // on dépose 3 fois le même fichier sans le publier try (InputStream refStream = Objects.requireNonNull(resource).openStream()) { MockMultipartFile refFile = new MockMultipartFile("file", String.format("%s-%s-p1-pem.csv", projet, site), "text/plain", refStream); + + // sans droit dépôt impossible de déposer + response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore/data/pem") + .file(refFile) + .param("params", fixtures.getPemRepositoryParams(projet, plateforme, site, false)) + .cookie(withRigthsCookie)) + .andExpect(status().is4xxClientError()) + .andExpect(content().string("application inconnue 'monsore'")) + .andReturn().getResponse().getContentAsString(); + log.debug(response); + + String createRights = getJsonRightsforMonSoererepository(withRigthsUserId, OperationType.depot.name(), "plateforme.oir.oir__p1", "1984,1,1", "1984,1,5"); + //fileOrUUID.binaryFileDataset/applications/{name}/file/{id} for (int i = 0; i < 3; i++) { response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore/data/pem") .file(refFile) .param("params", fixtures.getPemRepositoryParams(projet, plateforme, site, false)) - .cookie(authCookie)) + .cookie(withRigthsCookie)) .andExpect(status().is2xxSuccessful()) .andReturn().getResponse().getContentAsString(); + log.debug(response); } - log.debug(response); //on regarde les versions déposées response = mockMvc.perform(get("/api/v1/applications/monsore/filesOnRepository/pem") .param("repositoryId", fixtures.getPemRepositoryId(plateforme, projet, site)) - .cookie(authCookie)) + .cookie(withRigthsCookie)) .andExpect(status().is2xxSuccessful()) .andExpect(jsonPath("$").isArray()) .andExpect(jsonPath("$", Matchers.hasSize(3))) @@ -516,13 +578,32 @@ public class OreSiResourcesTest { .andReturn().getResponse().getContentAsString(); log.debug(response); + // on publie le dernier fichier déposé sans les droits + + final Exception exception = mockMvc.perform(multipart("/api/v1/applications/monsore/data/pem") + .param("params", fixtures.getPemRepositoryParamsWithId(projet, plateforme, site, oirFilesUUID, true)) + .cookie(withRigthsCookie)) + .andExpect(status().is4xxClientError()) + .andReturn().getResolvedException(); + + Assert.assertTrue(exception instanceof SiOreIllegalArgumentException); + Assert.assertEquals("noRightForPublish", exception.getMessage()); + Assert.assertEquals("pem", ((SiOreIllegalArgumentException) exception).getParams().get("dataType")); + Assert.assertEquals("monsore", ((SiOreIllegalArgumentException) exception).getParams().get("application")); + + + // on donne les droit publication + + + createRights = getJsonRightsforMonSoererepository(withRigthsUserId, OperationType.publication.name(), "plateforme.oir.oir__p1", "1984,1,1", "1984,1,6"); + // on publie le dernier fichier déposé response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore/data/pem") .param("params", fixtures.getPemRepositoryParamsWithId(projet, plateforme, site, oirFilesUUID, true)) - .cookie(authCookie)) - // .andExpect(status().is2xxSuccessful()) + .cookie(withRigthsCookie)) + .andExpect(status().is2xxSuccessful()) .andReturn().getResponse().getContentAsString(); log.debug(StringUtils.abbreviate(response, 50)); @@ -530,7 +611,7 @@ public class OreSiResourcesTest { response = mockMvc.perform(get("/api/v1/applications/monsore/filesOnRepository/pem") .param("repositoryId", fixtures.getPemRepositoryId(plateforme, projet, site)) - .cookie(authCookie)) + .cookie(withRigthsCookie)) .andExpect(status().is2xxSuccessful()) .andExpect(jsonPath("$").isArray()) .andExpect(jsonPath("$", Matchers.hasSize(3))) @@ -553,26 +634,38 @@ public class OreSiResourcesTest { } //on publie 4 fichiers - publishOrDepublish("manche", "plateforme", "scarff", 68, true, 1, true); - publishOrDepublish("atlantique", "plateforme", "scarff", 34, true, 1, true); - publishOrDepublish("atlantique", "plateforme", "nivelle", 34, true, 1, true); - publishOrDepublish("manche", "plateforme", "nivelle", 34, true, 1, true); + publishOrDepublish(authCookie, "manche", "plateforme", "scarff", 68, true, 1, true); + publishOrDepublish(authCookie, "atlantique", "plateforme", "scarff", 34, true, 1, true); + publishOrDepublish(authCookie, "atlantique", "plateforme", "nivelle", 34, true, 1, true); + publishOrDepublish(authCookie, "manche", "plateforme", "nivelle", 34, true, 1, true); //on publie une autre version - String fileUUID = publishOrDepublish("manche", "plateforme", "nivelle", 34, true, 2, true); + String fileUUID = publishOrDepublish(authCookie, "manche", "plateforme", "nivelle", 34, true, 2, true); // on supprime l'application publiée response = mockMvc.perform(MockMvcRequestBuilders.delete("/api/v1/applications/monsore/file/" + fileUUID) .cookie(authCookie)) .andExpect(status().is2xxSuccessful()) .andReturn().getResponse().getContentAsString(); log.debug(StringUtils.abbreviate(response, 50)); - testFilesAndDataOnServer(plateforme, "manche", "nivelle", 0, 1, fileUUID, false); + try { + publishOrDepublish(withRigthsCookie, "manche", "plateforme", "nivelle", 34, true, 1, true); + + } catch (SiOreIllegalArgumentException e) { + Assert.assertEquals("noRightOnTable", e.getMessage()); + Assert.assertEquals("binaryfile", e.getParams().get("table")); + } + final String createRights = getJsonRightsforMonSoererepository(withRigthsUserId, OperationType.publication.name(), "plateforme.nivelle.nivelle__p1", "1984,1,1", "1984,1,6"); + + //les droit s de publication permettent aussi le dépôt + final String fileUUID2 = publishOrDepublish(withRigthsCookie, "manche", "plateforme", "nivelle", 34, true, 2, true); + testFilesAndDataOnServer(plateforme, "manche", "nivelle", 0, 2, fileUUID2, true); - // on depublie le fichier oir déposé + + // on depublie le fichier oir déposé (les droits publication valent dépublication response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore/data/pem") .param("params", fixtures.getPemRepositoryParamsWithId(projet, plateforme, site, oirFilesUUID, false)) - .cookie(authCookie)) + .cookie(withRigthsCookie)) .andExpect(status().is2xxSuccessful()) .andReturn().getResponse().getContentAsString(); log.debug(StringUtils.abbreviate(response, 50)); @@ -581,7 +674,7 @@ public class OreSiResourcesTest { response = mockMvc.perform(get("/api/v1/applications/monsore/filesOnRepository/pem") .param("repositoryId", fixtures.getPemRepositoryId(plateforme, projet, site)) - .cookie(authCookie)) + .cookie(withRigthsCookie)) .andExpect(status().is2xxSuccessful()) .andExpect(jsonPath("$").isArray()) .andExpect(jsonPath("$", Matchers.hasSize(3))) @@ -590,20 +683,111 @@ public class OreSiResourcesTest { .andReturn().getResponse().getContentAsString(); log.debug(StringUtils.abbreviate(response, 50)); - // on récupère le data en base + // on récupère le data en base si j'ai les droits de publication je peux aussi lire les données avec ces droits + + response = mockMvc.perform(get("/api/v1/applications/monsore/data/pem") + .cookie(withRigthsCookie)) + .andExpect(status().is2xxSuccessful()) + .andExpect(jsonPath("$.rows[*].values.site[?(@.chemin==\"plateforme.nivelle.nivelle__p1\")].chemin", Matchers.hasSize(34))) + .andExpect(jsonPath("$.rows[*].values.site[?(@.chemin==\"plateforme.oir.oir__p1\")].chemin", Matchers.hasSize(34))) + .andExpect(jsonPath("$.totalRows").value(68)) + .andExpect(jsonPath("$.rows[*]", Matchers.hasSize(68))) + .andExpect(jsonPath("$.rows[*].values[? (@.site.chemin == 'oir__p1')][? (@.projet.value == 'projet_manche')]", Matchers.hasSize(0))) + .andReturn().getResponse().getContentAsString(); response = mockMvc.perform(get("/api/v1/applications/monsore/data/pem") .cookie(authCookie)) .andExpect(status().is2xxSuccessful()) - .andExpect(jsonPath("$.totalRows").value(102)) - .andExpect(jsonPath("$.rows[*]", Matchers.hasSize(102))) + .andExpect(jsonPath("$.rows[*].values.site[?(@.chemin==\"plateforme.scarff.scarff__p1\")].chemin", Matchers.hasSize(68))) + .andExpect(jsonPath("$.rows[*].values.site[?(@.chemin==\"plateforme.scarff.scarff__p1\")].chemin", Matchers.hasSize(68))) + .andExpect(jsonPath("$.rows[*].values.site[?(@.chemin==\"plateforme.nivelle.nivelle__p1\")].chemin", Matchers.hasSize(68))) + .andExpect(jsonPath("$.rows[*].values.site[?(@.chemin==\"plateforme.oir.oir__p1\")].chemin", Matchers.hasSize(34))) + .andExpect(jsonPath("$.totalRows").value(170)) + .andExpect(jsonPath("$.rows[*]", Matchers.hasSize(170))) .andExpect(jsonPath("$.rows[*].values[? (@.site.chemin == 'oir__p1')][? (@.projet.value == 'projet_manche')]", Matchers.hasSize(0))) .andReturn().getResponse().getContentAsString(); log.debug(StringUtils.abbreviate(response, 50)); - // on supprime le fic + // on supprime le fichier a les droits car à les droits de publication + mockMvc.perform(delete("/api/v1/applications/monsore/file/" + fileUUID2) + .cookie(withRigthsCookie)) + .andExpect(status().is2xxSuccessful()) + .andExpect(content().string(fileUUID2)); + + } + + private String getJsonRightsforMonSoererepository(String withRigthsUserId, String role, String localization, String from, String to) throws Exception { + final String json = String.format("{\n" + + " \"usersId\":[\"" + withRigthsUserId + "\"],\n" + + " \"applicationNameOrId\":\"monsore\",\n" + + " \"id\": null,\n" + + " \"name\": \"une authorization sur monsore\",\n" + + " \"dataType\":\"pem\",\n" + + " \"authorizations\":{\n" + + " \"%1$s\":[\n" + + " {\n" + + " \"requiredAuthorizations\":{\n" + + " \"projet\":\"projet_manche\",\n" + + " \"localization\":\"%2$s\"\n" + + " },\n" + + " \"datagroups\":[\n" + + " \"all\"\n" + + " ],\n" + + " \"intervalDates\":{\n" + + " \"fromDay\":[%3$s],\n" + + " \"toDay\":[%4$s]\n" + + " }\n" + + " }\n" + + " ]\n" + + "}\n" + + "}", role, localization, from, to); + final MockHttpServletRequestBuilder createRight = post("/api/v1/applications/monsore/dataType/pem/authorization") + .contentType(MediaType.APPLICATION_JSON) + .cookie(authCookie) + .content(json); + return mockMvc.perform(createRight) + .andExpect(status().isCreated()) + .andReturn().getResponse().getContentAsString(); + } + + + private String getJsonRightsForMonsoere(Cookie cookie, String withRigthsUserId, String role) throws Exception { + final String json = String.format("{\n" + + " \"usersId\":[\"" + withRigthsUserId + "\"],\n" + + " \"applicationNameOrId\":\"monsore\",\n" + + " \"id\": null,\n" + + " \"name\": \"une authorization sur monsore\",\n" + + " \"dataType\":\"pem\",\n" + + " \"authorizations\":{\n" + + " \"%1$s\":[\n" + + " {" + + " \"dataGroups\": [],\n" + + " \"requiredAuthorizations\": {\n" + + " \"projet\": \"projet_atlantique\"\n" + + " },\n" + + " \"fromDay\": null,\n" + + " \"toDay\": null\n" + + " },\n" + + " {\n" + + " \"dataGroups\": [],\n" + + " \"requiredAuthorizations\": {\n" + + " \"projet\": \"projet_manche\"\n" + + " },\n" + + " \"fromDay\": null,\n" + + " \"toDay\": null\n" + + " }" + + " ]\n" + + "}\n" + + "}", role); + final MockHttpServletRequestBuilder createRight = post("/api/v1/applications/monsore/dataType/pem/authorization") + .contentType(MediaType.APPLICATION_JSON) + .cookie(cookie) + .content(json); + return mockMvc.perform(createRight) + .andExpect(status().isCreated()) + .andReturn().getResponse().getContentAsString(); } - private String publishOrDepublish(String projet, String plateforme, String site, int expected, boolean toPublish, int numberOfVersions, boolean published) throws Exception { + private String publishOrDepublish(Cookie cookie, String projet, String plateforme, String site, int expected, boolean toPublish, int numberOfVersions, boolean published) throws Exception { URL resource; String response; resource = getClass().getResource(fixtures.getPemRepositoryDataResourceName(projet, site)); @@ -612,18 +796,18 @@ public class OreSiResourcesTest { //dépôt et publication d'un fichier projet site__p1 MockMultipartFile refFile = new MockMultipartFile("file", String.format("%s-%s-p1-pem.csv", projet, site), "text/plain", refStream); refFile.transferTo(Path.of("/tmp/pem.csv")); - response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/monsore/data/pem") + final MvcResult mockResponse = mockMvc.perform(multipart("/api/v1/applications/monsore/data/pem") .file(refFile) .param("params", fixtures.getPemRepositoryParams(projet, plateforme, site, toPublish)) - .cookie(authCookie)) - .andExpect(status().is2xxSuccessful()) - .andReturn().getResponse().getContentAsString(); - String fileUUID = JsonPath.parse(response).read("$.fileId"); - - //liste des fichiers projet/site - testFilesAndDataOnServer(plateforme, projet, site, expected, numberOfVersions, fileUUID, published); - log.debug(StringUtils.abbreviate(response, 50)); - return fileUUID; + .cookie(cookie)) + .andReturn(); + if (mockResponse.getResponse().getStatus() >= 200 && mockResponse.getResponse().getStatus() < 300) { + String fileUUID = JsonPath.parse(mockResponse.getResponse().getContentAsString()).read("$.fileId"); + testFilesAndDataOnServer(plateforme, projet, site, expected, numberOfVersions, fileUUID, published); + log.debug(StringUtils.abbreviate(mockResponse.getResponse().getContentAsString(), 50)); + return fileUUID; + } + throw mockResponse.getResolvedException(); } } @@ -635,12 +819,12 @@ public class OreSiResourcesTest { */ @Test public void testProgressiveYamlWithoutAuthorization() throws Exception { - + String authorizationId; URL resource = getClass().getResource(fixtures.getProgressiveYaml().get("yamlWithoutAuthorization")); try (InputStream in = Objects.requireNonNull(resource).openStream()) { MockMultipartFile configuration = new MockMultipartFile("file", "progressive.yaml", "text/plain", in); //définition de l'application - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "progressive"); String result = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/progressive") .file(configuration) @@ -652,7 +836,7 @@ public class OreSiResourcesTest { progressiveYamlAddData(); String lambdaUserId = lambdaUser.getUserId().toString(); - Cookie authReaderCookie = mockMvc.perform(post("/api/v1/login") + Cookie readerCookies = mockMvc.perform(post("/api/v1/login") .param("login", "lambda") .param("password", "xxxxxxxx")) .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); @@ -660,14 +844,14 @@ public class OreSiResourcesTest { { String response = mockMvc.perform(get("/api/v1/applications") - .cookie(authReaderCookie) + .cookie(readerCookies) ).andReturn().getResponse().getContentAsString(); Assert.assertFalse("On ne devrait pas voir l'application car les droits n'ont pas encore été accordés", response.contains("progressive")); } { mockMvc.perform(get("/api/v1/applications/progressive/data/date_de_visite") - .cookie(authReaderCookie) + .cookie(readerCookies) .accept(MediaType.TEXT_PLAIN)) .andExpect(status().is4xxClientError()); } @@ -704,31 +888,59 @@ public class OreSiResourcesTest { "}\n" + "}"; + // L'utilisateur sans droit ne peut voir les applications + String response = mockMvc.perform(get("/api/v1/applications") + .cookie(readerCookies) + ) + .andExpect(jsonPath("$[*].name", Matchers.hasSize(0))) + .andReturn().getResponse().getContentAsString(); + + MockHttpServletRequestBuilder create = post("/api/v1/applications/progressive/dataType/date_de_visite/authorization") .contentType(MediaType.APPLICATION_JSON) .cookie(authCookie) .content(json); - String response = mockMvc.perform(create) + response = mockMvc.perform(create) .andExpect(status().isCreated()) .andReturn().getResponse().getContentAsString(); + authorizationId = JsonPath.parse(response).read("$.authorizationId", String.class); log.debug(StringUtils.abbreviate(response, 50)); } { + // Une fois l'accès donné, on doit pouvoir avec l'application dans la liste" String response = mockMvc.perform(get("/api/v1/applications") - .cookie(authReaderCookie) - ).andReturn().getResponse().getContentAsString(); - Assert.assertTrue("Une fois l'accès donné, on doit pouvoir avec l'application dans la liste", response.contains("progressive")); + .cookie(readerCookies) + ) + .andExpect(jsonPath("$[*].name", Matchers.hasSize(1))) + .andExpect(jsonPath("$[*].name", Matchers.contains("progressive"))) + .andReturn().getResponse().getContentAsString(); } { String json = mockMvc.perform(get("/api/v1/applications/progressive/data/date_de_visite") - .cookie(authReaderCookie) + .cookie(readerCookies) .accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.rows[*].values.relevant.numero").value(hasItemInArray(equalTo("125")), String[].class)) .andReturn().getResponse().getContentAsString(); } + MockHttpServletRequestBuilder delete = delete(String.format("/api/v1/applications/progressive/dataType/date_de_visite/authorization/%s", authorizationId)) + .contentType(MediaType.APPLICATION_JSON) + .cookie(authCookie); + mockMvc.perform(delete) + .andExpect(status().is2xxSuccessful()) + .andReturn().getResponse().getContentAsString(); + // L'utilisateur sans droit ne peut voir les applications + + //TODO + + /*String response = mockMvc.perform(get("/api/v1/applications") + .cookie(readerCookies) + ) + .andExpect(jsonPath("$[*].name", Matchers.hasSize(0))) + .andReturn().getResponse().getContentAsString();*/ + } @@ -739,7 +951,7 @@ public class OreSiResourcesTest { try (InputStream in = Objects.requireNonNull(resource).openStream()) { MockMultipartFile configuration = new MockMultipartFile("file", "progressive.yaml", "text/plain", in); //définition de l'application - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "progressive"); String result = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/progressive") .file(configuration) @@ -765,7 +977,7 @@ public class OreSiResourcesTest { try (InputStream in = Objects.requireNonNull(resource).openStream()) { MockMultipartFile configuration = new MockMultipartFile("file", "progressive.yaml", "text/plain", in); //définition de l'application - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "progressive"); BadApplicationConfigurationException exception = (BadApplicationConfigurationException) mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/progressive") .file(configuration) @@ -791,7 +1003,7 @@ public class OreSiResourcesTest { try (InputStream in = Objects.requireNonNull(resource).openStream()) { MockMultipartFile configuration = new MockMultipartFile("file", "progressive.yaml", "text/plain", in); //définition de l'application - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "progressive"); final ResultActions resultActions = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/progressive") .file(configuration) @@ -810,7 +1022,7 @@ public class OreSiResourcesTest { try (InputStream in = Objects.requireNonNull(resource).openStream()) { MockMultipartFile configuration = new MockMultipartFile("file", "progressive.yaml", "text/plain", in); //définition de l'application - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "progressive"); final ResultActions resultActions = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/progressive") .file(configuration) @@ -834,7 +1046,7 @@ public class OreSiResourcesTest { try (InputStream in = Objects.requireNonNull(resource).openStream()) { MockMultipartFile configuration = new MockMultipartFile("file", "progressive.yaml", "text/plain", in); //définition de l'application - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "progressive"); String response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/progressive") .file(configuration) @@ -889,7 +1101,7 @@ public class OreSiResourcesTest { try (InputStream in = Objects.requireNonNull(resource).openStream()) { MockMultipartFile configuration = new MockMultipartFile("file", "recursivity.yaml", "text/plain", in); //définition de l'application - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "recursivite"); String response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/recursivite") .file(configuration) @@ -905,9 +1117,9 @@ public class OreSiResourcesTest { .cookie(authCookie)) .andExpect(status().is2xxSuccessful()) .andExpect(jsonPath("$.references.taxon.dynamicColumns['propriétés de taxons'].reference", IsEqual.equalTo("proprietes_taxon"))) - .andExpect(jsonPath("$.references.taxon.dynamicColumns['propriétés de taxons'].headerPrefix", IsEqual.equalTo("pt_"))) - .andExpect(jsonPath("$.internationalization.references.taxon.internationalizedDynamicColumns['propriétés de taxons'].en", IsEqual.equalTo("Properties of Taxa"))) - .andReturn().getResponse().getContentAsString(); + .andExpect(jsonPath("$.references.taxon.dynamicColumns['propriétés de taxons'].headerPrefix", IsEqual.equalTo("pt_"))) + .andExpect(jsonPath("$.internationalization.references.taxon.internationalizedDynamicColumns['propriétés de taxons'].en", IsEqual.equalTo("Properties of Taxa"))) + .andReturn().getResponse().getContentAsString(); } @@ -981,8 +1193,7 @@ public class OreSiResourcesTest { @Test @Category(ACBB_TEST.class) public void addApplicationAcbb() throws Exception { - authenticationService.addUserRightCreateApplication(userId); - + addUserRightCreateApplication(authUserId, "acbb"); URL resource = getClass().getResource(fixtures.getAcbbApplicationConfigurationResourceName()); assert resource != null; try (InputStream in = resource.openStream()) { @@ -1004,6 +1215,18 @@ public class OreSiResourcesTest { addDataSWC(); } + private void addUserRightCreateApplication(UUID userId, String pattern) throws Exception { + ResultActions resultActions = mockMvc.perform(put("/api/v1/authorization/applicationCreator") + .param("userIdOrLogin", userId.toString()) + .param("applicationPattern", pattern) + .cookie(authCookie)) + .andExpect(status().is2xxSuccessful()) + .andExpect(jsonPath("$.roles.currentUser", IsEqual.equalTo(userId.toString()))) + .andExpect(jsonPath("$.roles.memberOf", Matchers.hasItem("applicationCreator"))) + .andExpect(jsonPath("$.authorizations", Matchers.hasItem(pattern))) + .andExpect(jsonPath("$.id", IsEqual.equalTo(userId.toString()))); + } + private void addDataSWC() throws Exception { try (InputStream in = fixtures.openSwcDataResourceName(true)) { MockMultipartFile file = new MockMultipartFile("file", "SWC.csv", "text/plain", in); @@ -1159,7 +1382,7 @@ public class OreSiResourcesTest { @Test @Category(HAUTE_FREQUENCE_TEST.class) public void addApplicationHauteFrequence() throws Exception { - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "hautefrequence"); try (InputStream configurationFile = fixtures.getClass().getResourceAsStream(fixtures.getHauteFrequenceApplicationConfigurationResourceName())) { MockMultipartFile configuration = new MockMultipartFile("file", "hautefrequence.yaml", "text/plain", configurationFile); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/hautefrequence") @@ -1192,7 +1415,7 @@ public class OreSiResourcesTest { @Test @Category(OTHERS_TEST.class) public void addDuplicatedTest() throws Exception { - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "duplicated"); try (InputStream configurationFile = fixtures.getClass().getResourceAsStream(fixtures.getDuplicatedApplicationConfigurationResourceName())) { MockMultipartFile configuration = new MockMultipartFile("file", "duplicated.yaml", "text/plain", configurationFile); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/duplicated") @@ -1447,7 +1670,7 @@ on test le dépôt d'un fichier récursif @Test @Category(OTHERS_TEST.class) public void addApplicationOLAC() throws Exception { - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "olac"); try (InputStream configurationFile = fixtures.getClass().getResourceAsStream(fixtures.getOlaApplicationConfigurationResourceName())) { MockMultipartFile configuration = new MockMultipartFile("file", "olac.yaml", "text/plain", configurationFile); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/olac") @@ -1535,7 +1758,7 @@ on test le dépôt d'un fichier récursif @Test @Category(OTHERS_TEST.class) public void addApplicationFORET_essai() throws Exception { - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "foret"); try (InputStream configurationFile = fixtures.getClass().getResourceAsStream(fixtures.getForetEssaiApplicationConfigurationResourceName())) { MockMultipartFile configuration = new MockMultipartFile("file", "foret_essai.yaml", "text/plain", configurationFile); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/foret") @@ -1567,7 +1790,7 @@ on test le dépôt d'un fichier récursif if (entry.getKey().equals("swc_j")) { authenticationService.setRoleAdmin(); - final String responseForBuildSynthesis = mockMvc.perform(MockMvcRequestBuilders.put("/api/v1/applications/foret/synthesis/{refType}", entry.getKey()) + final String responseForBuildSynthesis = mockMvc.perform(put("/api/v1/applications/foret/synthesis/{refType}", entry.getKey()) .cookie(authCookie)) .andExpect(jsonPath("$.SWC", Matchers.hasSize(8))) .andReturn().getResponse().getContentAsString(); @@ -1584,7 +1807,7 @@ on test le dépôt d'un fichier récursif @Test @Category(OTHERS_TEST.class) public void addApplicationFORET() throws Exception { - authenticationService.addUserRightCreateApplication(userId); + addUserRightCreateApplication(authUserId, "foret"); try (InputStream configurationFile = fixtures.getClass().getResourceAsStream(fixtures.getForetApplicationConfigurationResourceName())) { MockMultipartFile configuration = new MockMultipartFile("file", "foret.yaml", "text/plain", configurationFile); mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/foret") diff --git a/src/test/java/fr/inra/oresing/rest/RelationalServiceTest.java b/src/test/java/fr/inra/oresing/rest/RelationalServiceTest.java index cfaaae1618651cde816a2adb4469da8d3d35d4df..887e3d7ea1b9fa0ce257f66e16e95cdc532ac644 100644 --- a/src/test/java/fr/inra/oresing/rest/RelationalServiceTest.java +++ b/src/test/java/fr/inra/oresing/rest/RelationalServiceTest.java @@ -46,7 +46,7 @@ public class RelationalServiceTest { //fixtures.addApplicationPRO(); fixtures.addApplicationOLAC(); fixtures.addApplicationFORET(); - fixtures.addApplicationAcbb(); + fixtures.addApplicationAcbb(null); fixtures.addApplicationRecursivity(); } diff --git a/src/test/java/fr/inra/oresing/rest/TestReferencesErrors.java b/src/test/java/fr/inra/oresing/rest/TestReferencesErrors.java index 12c0b127c5a0bbbf1dd12cce30255810918f0af7..0e723fa98532a1dead20c286290b3957ab17d792 100644 --- a/src/test/java/fr/inra/oresing/rest/TestReferencesErrors.java +++ b/src/test/java/fr/inra/oresing/rest/TestReferencesErrors.java @@ -1,35 +1,25 @@ package fr.inra.oresing.rest; import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.collect.Iterables; -import com.google.common.io.Resources; import com.jayway.jsonpath.JsonPath; import fr.inra.oresing.OreSiNg; -import fr.inra.oresing.OreSiTechnicalException; -import fr.inra.oresing.ValidationLevel; -import fr.inra.oresing.checker.InvalidDatasetContentException; import fr.inra.oresing.persistence.AuthenticationService; import fr.inra.oresing.persistence.JsonRowMapper; -import fr.inra.oresing.rest.exceptions.configuration.BadApplicationConfigurationException; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; -import org.hamcrest.CoreMatchers; import org.hamcrest.Matchers; -import org.hamcrest.core.Is; import org.hamcrest.core.IsEqual; import org.hamcrest.core.IsNull; -import org.json.JSONArray; -import org.junit.*; -import org.junit.experimental.categories.Category; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureWebMvc; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.http.MediaType; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.mock.web.MockMultipartFile; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.TestExecutionListeners; @@ -38,25 +28,21 @@ import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.support.DirtiesContextTestExecutionListener; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; -import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; -import org.springframework.web.util.NestedServletException; +import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.Cookie; import java.io.*; import java.net.URL; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.nio.file.Path; import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import static org.hamcrest.Matchers.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @RunWith(SpringRunner.class) @SpringBootTest(classes = OreSiNg.class) @@ -81,6 +67,8 @@ public class TestReferencesErrors { @Autowired private Fixtures fixtures; + @Autowired + private NamedParameterJdbcTemplate namedParameterJdbcTemplate; private Cookie authCookie; @@ -88,14 +76,22 @@ public class TestReferencesErrors { private CreateUserResult lambdaUser; public static final Map<String, String> responses = new HashMap<>(); + @Before public void createUser() throws Exception { - userId = authenticationService.createUser("poussin", "xxxxxxxx").getUserId(); + final CreateUserResult authUser = authenticationService.createUser("poussin", "xxxxxxxx"); + userId = authUser.getUserId(); lambdaUser = authenticationService.createUser("lambda", "xxxxxxxx"); authCookie = mockMvc.perform(post("/api/v1/login") .param("login", "poussin") .param("password", "xxxxxxxx")) .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); + addRoleAdmin(authUser); + } + + @Transactional + void addRoleAdmin(CreateUserResult dbUserResult) { + namedParameterJdbcTemplate.update("grant \"superadmin\" to \"" + dbUserResult.getUserId().toString() + "\"", Map.of()); } @AfterClass public static void registerErrors() throws IOException { @@ -111,14 +107,21 @@ public class TestReferencesErrors { public void testRecursivity() throws Exception { URL resource = getClass().getResource(fixtures.getRecursivityApplicationConfigurationResourceName()); + Cookie recursivityCookie; try (InputStream in = Objects.requireNonNull(resource).openStream()) { MockMultipartFile configuration = new MockMultipartFile("file", "recursivity.yaml", "text/plain", in); //définition de l'application - authenticationService.addUserRightCreateApplication(userId); + final CreateUserResult recursivityUser = authenticationService.createUser("recursivity", "xxxxxxxx"); + UUID recursivityUserId = recursivityUser.getUserId(); + addUserRightCreateApplication(recursivityUserId, "recursivite"); + recursivityCookie = mockMvc.perform(post("/api/v1/login") + .param("login", "recursivity") + .param("password", "xxxxxxxx")) + .andReturn().getResponse().getCookie(AuthHelper.JWT_COOKIE_NAME); String response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/recursivite") .file(configuration) - .cookie(authCookie)) + .cookie(recursivityCookie)) .andExpect(status().isCreated()) .andExpect(jsonPath("$.id", IsNull.notNullValue())) .andReturn().getResponse().getContentAsString(); @@ -127,7 +130,7 @@ public class TestReferencesErrors { response = mockMvc.perform(MockMvcRequestBuilders.get("/api/v1/applications/recursivite") - .cookie(authCookie)) + .cookie(recursivityCookie)) .andExpect(status().is2xxSuccessful()) .andExpect(jsonPath("$.references.taxon.dynamicColumns['propriétés de taxons'].reference", IsEqual.equalTo("proprietes_taxon"))) .andExpect(jsonPath("$.references.taxon.dynamicColumns['propriétés de taxons'].headerPrefix", IsEqual.equalTo("pt_"))) @@ -158,7 +161,7 @@ public class TestReferencesErrors { log.info(e.getKey()); response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/recursivite/references/{refType}","proprietes_taxon") .file(refFile) - .cookie(authCookie)) + .cookie(recursivityCookie)) .andExpect(status().is4xxClientError()) .andReturn().getResponse().getContentAsString(); @@ -172,7 +175,7 @@ public class TestReferencesErrors { response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/recursivite/references/{refType}", e.getKey()) .file(refFile) - .cookie(authCookie)) + .cookie(recursivityCookie)) .andExpect(status().isCreated()) .andExpect(jsonPath("$.id", IsNull.notNullValue())) .andReturn().getResponse().getContentAsString(); @@ -201,7 +204,7 @@ public class TestReferencesErrors { log.info(e.getKey()); response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/recursivite/data/phytoplancton_aggregated") .file(refFile) - .cookie(authCookie)) + .cookie(recursivityCookie)) .andExpect(MockMvcResultMatchers.status().is4xxClientError()) .andReturn().getResponse().getContentAsString(); @@ -230,7 +233,7 @@ public class TestReferencesErrors { log.info(e.getKey()); response = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/applications/recursivite/data/condition_prelevements") .file(refFile) - .cookie(authCookie)) + .cookie(recursivityCookie)) .andExpect(MockMvcResultMatchers.status().is4xxClientError()) .andReturn().getResponse().getContentAsString(); @@ -239,4 +242,16 @@ public class TestReferencesErrors { } } } -} + + private void addUserRightCreateApplication(UUID userId, String pattern) throws Exception { + ResultActions resultActions = mockMvc.perform(put("/api/v1/authorization/applicationCreator") + .param("userIdOrLogin", userId.toString()) + .param("applicationPattern", pattern) + .cookie(authCookie)) + .andExpect(status().is2xxSuccessful()) + .andExpect(jsonPath("$.roles.currentUser", IsEqual.equalTo(userId.toString()))) + .andExpect(jsonPath("$.roles.memberOf", Matchers.hasItem("applicationCreator"))) + .andExpect(jsonPath("$.authorizations", Matchers.hasItem(pattern))) + .andExpect(jsonPath("$.id", IsEqual.equalTo(userId.toString()))); + } +} \ No newline at end of file diff --git a/ui/.gitignore b/ui/.gitignore index 8b90ea902aad6409b1096dbc3cfeb1596e35d0ee..0c74df764f03ea13ddbf19e6736994770683fc0e 100644 --- a/ui/.gitignore +++ b/ui/.gitignore @@ -28,3 +28,4 @@ ui/cypress/screenshots ui/cypress/downloads /public/files/ /cypress/videos/ +/cypress/screenshots/ diff --git a/ui/cypress.json b/ui/cypress.json index 11bb6e2a13a397d381dc729b5ad4fd9c0094df8f..449a3b3c8ae67aa073fcb20813145c6d0fc4bb47 100644 --- a/ui/cypress.json +++ b/ui/cypress.json @@ -15,4 +15,4 @@ "videoUploadOnPasses": false, "video": true, "videoCompression": false -} \ No newline at end of file +} diff --git a/ui/cypress/fixtures/applications/errors/errors.json b/ui/cypress/fixtures/applications/errors/errors.json index 8d864dc1e17032b807e850c7cc835514c57413c4..cf81c56b85809591659024cc4cbeefac85a105d6 100644 --- a/ui/cypress/fixtures/applications/errors/errors.json +++ b/ui/cypress/fixtures/applications/errors/errors.json @@ -195,32 +195,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -988,8 +988,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -999,8 +999,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -1010,8 +1010,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -1021,8 +1021,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -1032,8 +1032,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -1059,32 +1059,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -1301,32 +1301,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -2094,8 +2094,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -2105,8 +2105,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -2116,8 +2116,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -2127,8 +2127,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -2138,8 +2138,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -2165,32 +2165,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -2407,32 +2407,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -3200,8 +3200,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -3211,8 +3211,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -3222,8 +3222,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -3233,8 +3233,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -3244,8 +3244,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -3271,32 +3271,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -3527,32 +3527,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -4320,8 +4320,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -4331,8 +4331,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -4342,8 +4342,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -4353,8 +4353,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -4364,8 +4364,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -4391,32 +4391,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -4635,32 +4635,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -5428,8 +5428,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -5439,8 +5439,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -5450,8 +5450,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -5461,8 +5461,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -5472,8 +5472,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -5499,32 +5499,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -5552,10 +5552,10 @@ "level" : "ERROR", "message" : "invalidFormat", "messageParams" : { - "lineNumber" : 133, - "authorizedValues" : " [RegularExpression, GroovyExpression, Reference, Float, Integer, Date]", - "columnNumber" : 17, "value" : "Flaot", + "columnNumber" : 17, + "authorizedValues" : " [RegularExpression, GroovyExpression, Reference, Float, Integer, Date]", + "lineNumber" : 133, "path" : "references->proprietes_taxon->validations->floats->checker->name" }, "error" : true, @@ -5770,32 +5770,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -6563,8 +6563,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -6574,8 +6574,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -6585,8 +6585,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -6596,8 +6596,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -6607,8 +6607,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -6634,32 +6634,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -6876,32 +6876,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -7669,8 +7669,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -7680,8 +7680,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -7691,8 +7691,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -7702,8 +7702,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -7713,8 +7713,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -7740,32 +7740,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -7983,32 +7983,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -8776,8 +8776,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -8787,8 +8787,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -8798,8 +8798,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -8809,8 +8809,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -8820,8 +8820,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -8847,32 +8847,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -9090,32 +9090,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -9883,8 +9883,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -9894,8 +9894,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -9905,8 +9905,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -9916,8 +9916,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -9927,8 +9927,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -9954,32 +9954,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -10199,32 +10199,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -10992,8 +10992,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -11003,8 +11003,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -11014,8 +11014,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -11025,8 +11025,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -11036,8 +11036,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -11063,32 +11063,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -11306,32 +11306,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -12099,8 +12099,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -12110,8 +12110,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -12121,8 +12121,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -12132,8 +12132,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -12143,8 +12143,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -12170,32 +12170,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -12430,32 +12430,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -13223,8 +13223,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -13234,8 +13234,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -13245,8 +13245,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -13256,8 +13256,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -13267,8 +13267,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -13294,32 +13294,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -13537,32 +13537,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -14330,8 +14330,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -14341,8 +14341,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -14352,8 +14352,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -14363,8 +14363,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -14374,8 +14374,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -14401,32 +14401,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -14648,32 +14648,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -15464,8 +15464,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -15475,8 +15475,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -15486,8 +15486,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -15497,8 +15497,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -15508,8 +15508,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -15535,32 +15535,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -15778,32 +15778,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -16571,8 +16571,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -16582,8 +16582,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -16593,8 +16593,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -16604,8 +16604,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -16615,8 +16615,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -16642,32 +16642,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -16895,32 +16895,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -17688,8 +17688,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -17699,8 +17699,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -17710,8 +17710,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -17721,8 +17721,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -17732,8 +17732,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -17759,32 +17759,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -18016,32 +18016,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -18809,8 +18809,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -18820,8 +18820,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -18831,8 +18831,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -18842,8 +18842,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -18853,8 +18853,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -18880,32 +18880,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -19123,32 +19123,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -19916,8 +19916,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -19927,8 +19927,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -19938,8 +19938,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -19949,8 +19949,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -19960,8 +19960,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -19987,32 +19987,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -20231,32 +20231,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -21013,8 +21013,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -21024,8 +21024,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -21035,8 +21035,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -21046,8 +21046,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -21057,8 +21057,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -21084,32 +21084,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -21137,10 +21137,10 @@ "level" : "ERROR", "message" : "invalidFormat", "messageParams" : { - "lineNumber" : 338, - "authorizedValues" : "", - "columnNumber" : 21, "value" : "pas_un_chiffre", + "columnNumber" : 21, + "authorizedValues" : "", + "lineNumber" : 338, "path" : "dataTypes->site->format->firstRowLine" }, "error" : true, @@ -21344,32 +21344,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -22137,8 +22137,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -22148,8 +22148,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -22159,8 +22159,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -22170,8 +22170,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -22181,8 +22181,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -22208,32 +22208,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -22451,32 +22451,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -23244,8 +23244,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -23255,8 +23255,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -23266,8 +23266,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -23277,8 +23277,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -23288,8 +23288,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -23315,32 +23315,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -23558,32 +23558,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -24351,8 +24351,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -24362,8 +24362,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -24373,8 +24373,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -24384,8 +24384,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -24395,8 +24395,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -24422,32 +24422,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -24667,32 +24667,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -25460,8 +25460,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -25471,8 +25471,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -25482,8 +25482,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -25493,8 +25493,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -25504,8 +25504,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -25531,32 +25531,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -25774,32 +25774,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -26567,8 +26567,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -26578,8 +26578,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -26589,8 +26589,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -26600,8 +26600,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -26611,8 +26611,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -26638,32 +26638,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -26890,32 +26890,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -27683,8 +27683,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -27694,8 +27694,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -27705,8 +27705,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -27716,8 +27716,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -27727,8 +27727,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -27754,32 +27754,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -27997,32 +27997,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -28795,8 +28795,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -28806,8 +28806,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -28817,8 +28817,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -28828,8 +28828,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -28839,8 +28839,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -28866,32 +28866,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -29110,32 +29110,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -29903,8 +29903,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -29914,8 +29914,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -29925,8 +29925,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -29936,8 +29936,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -29947,8 +29947,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -29974,32 +29974,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -30215,32 +30215,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -31008,8 +31008,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -31019,8 +31019,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -31030,8 +31030,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -31041,8 +31041,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -31052,8 +31052,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -31079,32 +31079,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -31324,32 +31324,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -32117,8 +32117,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -32128,8 +32128,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -32139,8 +32139,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -32150,8 +32150,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -32161,8 +32161,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -32188,32 +32188,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -32452,32 +32452,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -33245,8 +33245,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -33256,8 +33256,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -33267,8 +33267,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -33278,8 +33278,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -33289,8 +33289,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -33316,32 +33316,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -33369,10 +33369,10 @@ "level" : "ERROR", "message" : "invalidFormat", "messageParams" : { - "lineNumber" : 270, - "authorizedValues" : " [RegularExpression, GroovyExpression, Reference, Float, Integer, Date]", - "columnNumber" : 21, "value" : "Dates", + "columnNumber" : 21, + "authorizedValues" : " [RegularExpression, GroovyExpression, Reference, Float, Integer, Date]", + "lineNumber" : 270, "path" : "dataTypes->site->data->date->components->day->checker->name" }, "error" : true, @@ -33575,32 +33575,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -34368,8 +34368,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -34379,8 +34379,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -34390,8 +34390,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -34401,8 +34401,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -34412,8 +34412,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -34439,32 +34439,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -34682,32 +34682,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -35475,8 +35475,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -35486,8 +35486,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -35497,8 +35497,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -35508,8 +35508,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -35519,8 +35519,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -35546,32 +35546,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -35788,32 +35788,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -36575,8 +36575,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -36586,8 +36586,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -36597,8 +36597,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -36608,8 +36608,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -36619,8 +36619,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -36646,32 +36646,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -36889,32 +36889,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -37682,8 +37682,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -37693,8 +37693,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -37704,8 +37704,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -37715,8 +37715,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -37726,8 +37726,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -37753,32 +37753,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -37998,32 +37998,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -38791,8 +38791,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -38802,8 +38802,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -38813,8 +38813,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -38824,8 +38824,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -38835,8 +38835,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -38862,32 +38862,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -39105,32 +39105,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -39898,8 +39898,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -39909,8 +39909,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -39920,8 +39920,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -39931,8 +39931,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -39942,8 +39942,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -39969,32 +39969,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -40239,32 +40239,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -41021,8 +41021,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -41032,8 +41032,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -41043,8 +41043,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -41054,8 +41054,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -41065,8 +41065,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -41092,32 +41092,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -41335,32 +41335,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -42128,8 +42128,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -42139,8 +42139,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -42150,8 +42150,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -42161,8 +42161,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -42172,8 +42172,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -42199,32 +42199,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -42442,32 +42442,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -43235,8 +43235,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -43246,8 +43246,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -43257,8 +43257,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -43268,8 +43268,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -43279,8 +43279,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -43306,32 +43306,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -43549,32 +43549,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -44342,8 +44342,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -44353,8 +44353,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -44364,8 +44364,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -44375,8 +44375,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -44386,8 +44386,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -44413,32 +44413,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -44472,7 +44472,7 @@ "compilationError" : { "lineNumber" : -1, "columnNumber" : -1, - "message" : "startup failed:\nScript4.groovy: 1: unexpected token: } @ line 1, column 4.\n if(}\n ^\n\n1 error\n" + "message" : "startup failed:\nScript32.groovy: 1: unexpected token: } @ line 1, column 4.\n if(}\n ^\n\n1 error\n" } }, "error" : true, @@ -44661,32 +44661,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -45454,8 +45454,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -45465,8 +45465,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -45476,8 +45476,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -45487,8 +45487,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -45498,8 +45498,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -45525,32 +45525,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -45774,32 +45774,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -46590,8 +46590,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -46601,8 +46601,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -46612,8 +46612,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -46623,8 +46623,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -46634,8 +46634,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -46661,32 +46661,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -46902,32 +46902,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -47695,8 +47695,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -47706,8 +47706,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -47717,8 +47717,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -47728,8 +47728,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -47739,8 +47739,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -47766,32 +47766,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -48010,32 +48010,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -48803,8 +48803,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -48814,8 +48814,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -48825,8 +48825,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -48836,8 +48836,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -48847,8 +48847,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -48874,32 +48874,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -49115,32 +49115,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -49908,8 +49908,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -49919,8 +49919,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -49930,8 +49930,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -49941,8 +49941,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -49952,8 +49952,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -49979,32 +49979,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -50032,10 +50032,10 @@ "level" : "ERROR", "message" : "invalidFormat", "messageParams" : { - "lineNumber" : 325, - "authorizedValues" : " [RegularExpression, GroovyExpression, Reference, Float, Integer, Date]", - "columnNumber" : 17, "value" : "GroovyExpressions", + "columnNumber" : 17, + "authorizedValues" : " [RegularExpression, GroovyExpression, Reference, Float, Integer, Date]", + "lineNumber" : 325, "path" : "dataTypes->site->validations->exempledeDeRegleDeValidation->checker->name" }, "error" : true, @@ -50239,32 +50239,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -51032,8 +51032,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -51043,8 +51043,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -51054,8 +51054,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -51065,8 +51065,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -51076,8 +51076,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -51103,32 +51103,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -51347,32 +51347,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -52140,8 +52140,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -52151,8 +52151,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -52162,8 +52162,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -52173,8 +52173,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -52184,8 +52184,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -52211,32 +52211,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -52466,32 +52466,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -53259,8 +53259,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -53270,8 +53270,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -53281,8 +53281,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -53292,8 +53292,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -53303,8 +53303,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -53330,32 +53330,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -53574,32 +53574,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -54350,8 +54350,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -54361,8 +54361,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -54372,8 +54372,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -54383,8 +54383,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -54394,8 +54394,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -54421,32 +54421,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -54664,32 +54664,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -55457,8 +55457,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -55468,8 +55468,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -55479,8 +55479,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -55490,8 +55490,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -55501,8 +55501,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -55528,32 +55528,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -55780,32 +55780,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -56550,8 +56550,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -56561,8 +56561,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -56572,8 +56572,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -56583,8 +56583,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -56594,8 +56594,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -56621,32 +56621,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -56862,32 +56862,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -57655,8 +57655,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -57666,8 +57666,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -57677,8 +57677,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -57688,8 +57688,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -57699,8 +57699,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -57726,32 +57726,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -57977,32 +57977,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -58770,8 +58770,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -58781,8 +58781,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -58792,8 +58792,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -58803,8 +58803,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -58814,8 +58814,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -58841,32 +58841,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -59088,32 +59088,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -59904,8 +59904,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -59915,8 +59915,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -59926,8 +59926,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -59937,8 +59937,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -59948,8 +59948,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -59975,32 +59975,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -60219,32 +60219,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -61012,8 +61012,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -61023,8 +61023,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -61034,8 +61034,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -61045,8 +61045,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -61056,8 +61056,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -61083,32 +61083,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -61326,32 +61326,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -62138,8 +62138,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -62149,8 +62149,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -62160,8 +62160,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -62171,8 +62171,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -62182,8 +62182,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -62209,32 +62209,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -62452,32 +62452,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -63263,8 +63263,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -63274,8 +63274,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -63285,8 +63285,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -63296,8 +63296,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -63307,8 +63307,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -63334,32 +63334,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -63590,32 +63590,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -64383,8 +64383,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -64394,8 +64394,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -64405,8 +64405,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -64416,8 +64416,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -64427,8 +64427,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -64454,32 +64454,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -64698,32 +64698,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -65491,8 +65491,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -65502,8 +65502,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -65513,8 +65513,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -65524,8 +65524,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -65535,8 +65535,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -65562,32 +65562,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -65820,32 +65820,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -66613,8 +66613,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -66624,8 +66624,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -66635,8 +66635,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -66646,8 +66646,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -66657,8 +66657,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -66684,32 +66684,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -66928,32 +66928,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } @@ -67721,8 +67721,8 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" }, "internationalizedColumns" : null, "display" : true, @@ -67732,8 +67732,8 @@ }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" }, "internationalizedColumns" : null, "display" : true, @@ -67743,8 +67743,8 @@ }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" }, "internationalizedColumns" : null, "display" : true, @@ -67754,8 +67754,8 @@ }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" }, "internationalizedColumns" : null, "display" : true, @@ -67765,8 +67765,8 @@ }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" }, "internationalizedColumns" : null, "display" : true, @@ -67792,32 +67792,32 @@ "columnsDescription" : { "depot" : { "internationalizationName" : { - "fr" : "Dépôt", - "en" : "Deposit" + "en" : "Deposit", + "fr" : "Dépôt" } }, "publication" : { "internationalizationName" : { - "fr" : "Publication", - "en" : "Publication" + "en" : "Publication", + "fr" : "Publication" } }, "admin" : { "internationalizationName" : { - "fr" : "Administration", - "en" : "Administration" + "en" : "Administration", + "fr" : "Administration" } }, "extraction" : { "internationalizationName" : { - "fr" : "Extraction", - "en" : "Extraction" + "en" : "Extraction", + "fr" : "Extraction" } }, "delete" : { "internationalizationName" : { - "fr" : "Suppression", - "en" : "Deletion" + "en" : "Deletion", + "fr" : "Suppression" } } } diff --git a/ui/cypress/fixtures/applications/ore/foret/swc_j.json b/ui/cypress/fixtures/applications/ore/foret/swc_j.json index 305c154ad46f578b10ffaca23f72fec7d677711b..0c02f808b21ce68c2d4f9c246e9e407706ebcf0c 100644 --- a/ui/cypress/fixtures/applications/ore/foret/swc_j.json +++ b/ui/cypress/fixtures/applications/ore/foret/swc_j.json @@ -11,7 +11,7 @@ "params": { "binaryFiledataset": { "datatype": "swc_j", - "requiredauthorizations": { + "requiredAuthorizations": { "localization": { "sql": "fougeres.fougeres__fou_4" } diff --git a/ui/cypress/fixtures/applications/ore/foret/swc_j2.json b/ui/cypress/fixtures/applications/ore/foret/swc_j2.json index 1f3131d161dfd63617cd0cba0c1f88af253d28d8..ea101c81790c11830bb7298c3394042b4519594a 100644 --- a/ui/cypress/fixtures/applications/ore/foret/swc_j2.json +++ b/ui/cypress/fixtures/applications/ore/foret/swc_j2.json @@ -11,7 +11,7 @@ "params": { "binaryFiledataset": { "datatype": "swc_j", - "requiredauthorizations": { + "requiredAuthorizations": { "localization": { "sql": "fougeres.fougeres__fou_2" } diff --git a/ui/cypress/fixtures/applications/ore/monsore/datatypes/authorisation/grantable.json b/ui/cypress/fixtures/applications/ore/monsore/datatypes/authorisation/grantable.json index 6bbfb3cc8f9e6a458bae1da2465ae94c4bd348b4..0ca2fe45c7edf45407bebb681a7844c796dd8c57 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/datatypes/authorisation/grantable.json +++ b/ui/cypress/fixtures/applications/ore/monsore/datatypes/authorisation/grantable.json @@ -1 +1 @@ -"{\"users\":[{\"id\":\"d71c81f1-2d29-47d5-aa2e-2ecdfd7abd52\",\"label\":\"lambda\"},{\"id\":\"6ed92b8d-edf9-48f2-8835-1f6cf5d9ada9\",\"label\":\"poussin\"}],\"dataGroups\":[{\"id\":\"qualitatif\",\"label\":\"Données qualitatives\"},{\"id\":\"quantitatif\",\"label\":\"Données quantitatives\"},{\"id\":\"referentiel\",\"label\":\"Référentiel\"}],\"authorizationScopes\":[{\"id\":\"localization\",\"label\":\"localization\",\"options\":[{\"id\":\"bassin_versant\",\"label\":\"bassin_versant\",\"children\":[{\"id\":\"bassin_versant.nivelle\",\"label\":\"bassin_versant.nivelle\",\"children\":[]},{\"id\":\"bassin_versant.oir\",\"label\":\"bassin_versant.oir\",\"children\":[]},{\"id\":\"bassin_versant.scarff\",\"label\":\"bassin_versant.scarff\",\"children\":[]}]},{\"id\":\"plateforme\",\"label\":\"plateforme\",\"children\":[{\"id\":\"plateforme.nivelle.nivelle__p1\",\"label\":\"plateforme.nivelle.nivelle__p1\",\"children\":[]},{\"id\":\"plateforme.oir.oir__p1\",\"label\":\"plateforme.oir.oir__p1\",\"children\":[]},{\"id\":\"plateforme.oir.oir__p1.oir__p1__a\",\"label\":\"plateforme.oir.oir__p1.oir__p1__a\",\"children\":[]},{\"id\":\"plateforme.oir.oir__p1.oir__p1__b\",\"label\":\"plateforme.oir.oir__p1.oir__p1__b\",\"children\":[]},{\"id\":\"plateforme.oir.oir__p2\",\"label\":\"plateforme.oir.oir__p2\",\"children\":[]},{\"id\":\"plateforme.scarff.scarff__p1\",\"label\":\"plateforme.scarff.scarff__p1\",\"children\":[]}]}]},{\"id\":\"projet\",\"label\":\"projet\",\"options\":[{\"id\":\"projet_atlantique\",\"label\":\"projet_atlantique\",\"children\":[]},{\"id\":\"projet_manche\",\"label\":\"projet_manche\",\"children\":[]}]}],\"columnsDescription\":{\"admin\":{\"display\":true,\"title\":\"admin\",\"withPeriods\":false,\"withDataGroups\":false,\"internationalizationName\":{\"en\":\"Administration\",\"fr\":\"Administration\"}},\"delete\":{\"display\":true,\"title\":\"delete\",\"withPeriods\":false,\"withDataGroups\":false,\"internationalizationName\":{\"en\":\"Deletion\",\"fr\":\"Suppression\"}},\"depot\":{\"display\":true,\"title\":\"depot\",\"withPeriods\":false,\"withDataGroups\":false,\"internationalizationName\":{\"en\":\"Deposit\",\"fr\":\"Dépôt\"}},\"extraction\":{\"display\":true,\"title\":\"extraction\",\"withPeriods\":true,\"withDataGroups\":true,\"internationalizationName\":{\"en\":\"Extraction\",\"fr\":\"Extraction\"}},\"publication\":{\"display\":true,\"title\":\"publication\",\"withPeriods\":false,\"withDataGroups\":false,\"internationalizationName\":{\"en\":\"Publication\",\"fr\":\"Publication\"}}}}" \ No newline at end of file +"{\"users\":[{\"id\":\"8dc9d2f9-b62b-4e42-bb0c-bb7c8f05999c\",\"label\":\"withrigths\"},{\"id\":\"bd2f43c9-4162-4401-a000-1cf33c630dc3\",\"label\":\"monsore\"},{\"id\":\"0fa72228-a5d0-4fd2-afb2-8081e3ae8940\",\"label\":\"poussin\"},{\"id\":\"202bb300-1507-4755-a835-6d84bc8c511f\",\"label\":\"lambda\"}],\"dataGroups\":[{\"id\":\"qualitatif\",\"label\":\"Données qualitatives\"},{\"id\":\"quantitatif\",\"label\":\"Données quantitatives\"},{\"id\":\"referentiel\",\"label\":\"Référentiel\"}],\"authorizationScopes\":[{\"id\":\"localization\",\"label\":\"localization\",\"options\":[{\"id\":\"bassin_versant\",\"label\":\"bassin_versant\",\"children\":[{\"id\":\"bassin_versant.nivelle\",\"label\":\"bassin_versant.nivelle\",\"children\":[]},{\"id\":\"bassin_versant.oir\",\"label\":\"bassin_versant.oir\",\"children\":[]},{\"id\":\"bassin_versant.scarff\",\"label\":\"bassin_versant.scarff\",\"children\":[]}]},{\"id\":\"plateforme\",\"label\":\"plateforme\",\"children\":[{\"id\":\"plateforme.nivelle.nivelle__p1\",\"label\":\"plateforme.nivelle.nivelle__p1\",\"children\":[]},{\"id\":\"plateforme.oir.oir__p1\",\"label\":\"plateforme.oir.oir__p1\",\"children\":[]},{\"id\":\"plateforme.oir.oir__p1.oir__p1__a\",\"label\":\"plateforme.oir.oir__p1.oir__p1__a\",\"children\":[]},{\"id\":\"plateforme.oir.oir__p1.oir__p1__b\",\"label\":\"plateforme.oir.oir__p1.oir__p1__b\",\"children\":[]},{\"id\":\"plateforme.oir.oir__p2\",\"label\":\"plateforme.oir.oir__p2\",\"children\":[]},{\"id\":\"plateforme.scarff.scarff__p1\",\"label\":\"plateforme.scarff.scarff__p1\",\"children\":[]}]}]},{\"id\":\"projet\",\"label\":\"projet\",\"options\":[{\"id\":\"projet_atlantique\",\"label\":\"projet_atlantique\",\"children\":[]},{\"id\":\"projet_manche\",\"label\":\"projet_manche\",\"children\":[]}]}],\"columnsDescription\":{\"admin\":{\"display\":true,\"title\":\"admin\",\"withPeriods\":false,\"withDataGroups\":false,\"internationalizationName\":{\"en\":\"Administration\",\"fr\":\"Administration\"}},\"delete\":{\"display\":true,\"title\":\"delete\",\"withPeriods\":false,\"withDataGroups\":false,\"internationalizationName\":{\"en\":\"Deletion\",\"fr\":\"Suppression\"}},\"depot\":{\"display\":true,\"title\":\"depot\",\"withPeriods\":false,\"withDataGroups\":false,\"internationalizationName\":{\"en\":\"Deposit\",\"fr\":\"Dépôt\"}},\"extraction\":{\"display\":true,\"title\":\"extraction\",\"withPeriods\":true,\"withDataGroups\":true,\"internationalizationName\":{\"en\":\"Extraction\",\"fr\":\"Extraction\"}},\"publication\":{\"display\":true,\"title\":\"publication\",\"withPeriods\":false,\"withDataGroups\":false,\"internationalizationName\":{\"en\":\"Publication\",\"fr\":\"Publication\"}}}}" \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/ore/monsore/datatypes/pem.json b/ui/cypress/fixtures/applications/ore/monsore/datatypes/pem.json index 41d5f7ce42c4dd7c6f309e567bb72721f2e538a7..6d87ae5da5cf329c21aeb545e7cb190fe14075d8 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/datatypes/pem.json +++ b/ui/cypress/fixtures/applications/ore/monsore/datatypes/pem.json @@ -1 +1 @@ -"{\"variables\":[\"date\",\"projet\",\"site\",\"Couleur des individus\",\"Nombre d'individus\",\"espece\"],\"rows\":[{\"rowId\":\"b2166788-3282-4594-b6da-d3f78370130b\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":187},{\"rowId\":\"f20e7ddd-ea2b-441e-aeb3-d71228c94083\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":259},{\"rowId\":\"3d57908d-32d8-4200-a02c-68a89c25437f\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":62},{\"rowId\":\"a99eaed9-a18c-4c0d-8578-6450eda2ae36\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":178},{\"rowId\":\"ae4b7d88-3382-451e-bc00-6ffc2bac2b9d\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":182},{\"rowId\":\"e50e8d6e-998f-42fb-8897-021d6eaad046\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":237},{\"rowId\":\"cabbdd46-f434-40e2-9119-2f46bf83fd8a\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":207},{\"rowId\":\"8da20352-5087-4c1f-a6c0-aefed2f4eacc\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":152},{\"rowId\":\"467ab8a7-afb1-48a5-89ed-1eb9a599461a\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":79},{\"rowId\":\"44a99711-e258-411c-b0c6-deafacfc2a22\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":75},{\"rowId\":\"e2acd0d1-ee91-4f31-b2b4-089c90784aa3\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":232},{\"rowId\":\"6050c685-776e-4c75-ab19-257f372ea6d1\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":109},{\"rowId\":\"61dd5ceb-7a2a-41f4-aa86-7d96a677fa9b\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":114},{\"rowId\":\"f3f3c3d5-b741-4c80-9a0c-a8090d8c2ad8\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":262},{\"rowId\":\"4d1a4d78-34d7-460b-a891-5f045064f911\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":90},{\"rowId\":\"6f462a01-4f24-4e39-99f0-d19b33e8430d\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":124},{\"rowId\":\"03792e70-ec07-4a83-bb4f-60b12fcfb816\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":5},{\"rowId\":\"6053f8ec-232a-40bc-a529-d2569c58133b\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":110},{\"rowId\":\"f7e2ab2d-090e-4f5b-8891-9de905b0899e\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":266},{\"rowId\":\"7882c45d-6faf-4822-8326-6178cf60ba28\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":130},{\"rowId\":\"a6adbdb7-fc45-4d89-a880-981f89129709\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":175},{\"rowId\":\"69719458-a17b-4925-9435-cae47b1782be\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":118},{\"rowId\":\"903adc52-1875-4b78-b009-a972b2f973b7\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":153},{\"rowId\":\"0169c70f-33eb-4272-b643-cfa2ef03215d\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":4},{\"rowId\":\"c9193738-58ef-45c5-ac77-be33d5906110\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":206},{\"rowId\":\"7373d5e6-2e08-4cac-93c8-7341ab113f71\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":127},{\"rowId\":\"e9673486-3082-450f-894f-78b571d6384c\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":245},{\"rowId\":\"287f734b-2344-4fa5-a8e2-badeb4129b91\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":39},{\"rowId\":\"fecd81c4-7d1f-4df7-9ad7-af237ae01730\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":272},{\"rowId\":\"14668bdf-49ad-4942-aef1-6fcd12ca4d1f\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":21},{\"rowId\":\"cfbdb4d0-715b-462b-9634-bd04e2db651a\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":213},{\"rowId\":\"37bb0d6e-7173-43df-b94b-0699829b6a7b\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":57},{\"rowId\":\"b06e2600-2959-4a0e-b9d4-f31f85839f0e\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":183},{\"rowId\":\"4dcec71c-bcc8-43c4-a11f-9bb03aca385d\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":95},{\"rowId\":\"7e3273c8-ee9c-4687-bffe-1de985ca7441\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":134},{\"rowId\":\"6ceb9501-367b-4653-9d70-7e15cb592a4e\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":121},{\"rowId\":\"8981da80-0b70-4083-94e3-90875a0524d0\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":144},{\"rowId\":\"401f8ef0-3a45-4466-8e67-929ecacb17ea\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":67},{\"rowId\":\"0e1497fd-e373-4ccb-85da-87f72563e649\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":15},{\"rowId\":\"cc2c961d-01ea-455c-b400-1e93134dcd51\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":210},{\"rowId\":\"34828479-dab4-4527-b20b-703dd75e0e9e\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":52},{\"rowId\":\"2015891b-a703-4f22-8c40-63d0f36f396f\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":33},{\"rowId\":\"f8d83259-c855-462a-b0bd-74e64ff8ec12\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":267},{\"rowId\":\"4a355218-b135-40e7-ba4a-629b1581ee8a\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":83},{\"rowId\":\"9780eb3e-1ffe-4613-8af8-8f017e93176f\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":162},{\"rowId\":\"43319fb2-803b-4ea5-9eaa-e19f04635096\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":72},{\"rowId\":\"e402eb5e-f074-44d6-8b97-04bc1c2752cf\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":235},{\"rowId\":\"6987987f-d2f0-4e54-941f-7f248d91b0a9\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":119},{\"rowId\":\"4c036dc7-619a-4999-bdcc-70ea60981d84\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":86},{\"rowId\":\"9bdf18a8-306e-4b52-bcf2-60f235765e2f\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":166},{\"rowId\":\"93d473cf-678e-46eb-8df7-5dbfa2fb3ec4\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":159},{\"rowId\":\"9365770c-c602-475d-a6c7-0aa5696457b3\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":158},{\"rowId\":\"baa9ff5f-7127-4119-ae68-e961f6dda34b\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":194},{\"rowId\":\"5d00a259-9e79-44f3-98e8-d7e8f7786247\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":105},{\"rowId\":\"3703c955-82d1-4521-9a6e-c2dec04eae10\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":55},{\"rowId\":\"e317ed0d-763c-49b7-b365-683976bc06b3\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":233},{\"rowId\":\"b5898009-a675-4a91-9a2c-6bd4cf8843b5\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":190},{\"rowId\":\"418161df-9b82-44d6-a7e6-6510dd2ad4e2\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":69},{\"rowId\":\"fcf9625c-108e-483a-aabe-90ab99979200\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":269},{\"rowId\":\"9c47e84c-6afe-4869-bd3b-c639798e5dc4\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":167},{\"rowId\":\"a6611fa1-6ab9-4061-8d5c-760811b5b80e\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":174},{\"rowId\":\"4412908f-30af-4c59-98d0-349bdd769a7d\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":73},{\"rowId\":\"79f44571-bc30-4187-816a-10d297da19dc\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":131},{\"rowId\":\"1eed33d2-27a0-4d5e-b4b7-8d049280663e\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":31},{\"rowId\":\"1b6b6f3f-618d-4442-89fd-1ec87a5b5dd2\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":26},{\"rowId\":\"da53d554-112e-4436-9e55-ad21174d09b9\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":225},{\"rowId\":\"bdc67182-a3de-48f8-aa4f-ee304e2d3853\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":197},{\"rowId\":\"17ea2a3e-5d48-40cd-ab37-88b4b468ec2d\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":24},{\"rowId\":\"5be129fc-e114-461e-897d-12523d7a9667\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":104},{\"rowId\":\"974d9326-73b4-4296-b477-57ca91f4aeeb\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":161},{\"rowId\":\"53ca6919-1b9d-4cfb-8fa2-59181ae4a1a3\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":102},{\"rowId\":\"657de7f5-fca7-45b0-a8dc-adcc2cd9253f\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":115},{\"rowId\":\"fd42e729-001c-4af0-b363-3b0ca872519d\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":270},{\"rowId\":\"76c4a816-c535-494f-b571-d5da275f31c2\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":128},{\"rowId\":\"3308fa64-c20e-4f77-a35b-9ffeb052ecf2\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":50},{\"rowId\":\"093f35ab-acc6-4f7a-8235-d97891448fb3\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":7},{\"rowId\":\"e55c54dc-8df9-457f-8e5f-ec229223f317\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":239},{\"rowId\":\"29f520c5-42ce-426f-b6b8-fd5712f8ff05\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":42},{\"rowId\":\"7a6580dd-10a0-45ad-a5ca-274db7f48881\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":132},{\"rowId\":\"c6bb6b21-cd34-40bd-a208-714eb0f34305\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":203},{\"rowId\":\"71ba23ee-8398-42d2-b623-977d2cf9b44e\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":126},{\"rowId\":\"67b3dca9-9c9d-4af9-9292-671c7123adc8\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":116},{\"rowId\":\"2b416d85-3351-48c8-9b20-6161ff391f9f\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":43},{\"rowId\":\"48bd9fa6-5092-436b-9311-dad69307b9e2\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":81},{\"rowId\":\"c87309b7-bd30-4993-a034-d0688a15a4e3\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":204},{\"rowId\":\"d5b14711-5667-4f91-96d2-5f9e5a8c539c\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":220},{\"rowId\":\"3ad6b438-48a1-49f7-a42c-9e9b0ded6557\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":59},{\"rowId\":\"f2d8c7f2-036c-417d-8fe2-b691ca75b436\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":260},{\"rowId\":\"9285335d-f9ce-4b19-baf0-34e29a54b746\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":156},{\"rowId\":\"0dd429ab-0e76-49ee-ba1f-b139dfb72d3f\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":14},{\"rowId\":\"61188b13-11fb-40ab-82d9-9cefe6e98e01\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":111},{\"rowId\":\"f7b39b5d-e718-4fc9-864d-198a09164e01\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":265},{\"rowId\":\"efd4ebc1-503f-4333-911c-33ed2bee3570\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":254},{\"rowId\":\"f153e20c-04a8-4b92-a88d-29e8a891656a\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"50\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":256},{\"rowId\":\"0fb8c630-5400-442e-9bac-435d3f6ad7f6\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":17},{\"rowId\":\"0bcbae99-1651-4c90-9e0e-2d43d13267d4\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":11},{\"rowId\":\"931773b5-b694-4348-9705-a4c639a4cc66\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":157},{\"rowId\":\"2d3cffaa-c138-4ec3-bb13-76b703db77b7\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":48},{\"rowId\":\"cda48524-b869-4f86-ab0a-51f49747bd38\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":211},{\"rowId\":\"8cc4dd02-feeb-45df-a1bd-e417197d374a\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":151},{\"rowId\":\"87ab83de-c7c6-4fdd-845e-50fe10a7e019\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":143},{\"rowId\":\"87537a7f-af38-42f5-b35f-7e0393a3aae9\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":142},{\"rowId\":\"87277159-fcda-41b9-bcbe-514792dc73da\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":140},{\"rowId\":\"4d15f3ac-dcdb-4816-b6f7-084c5d1af95b\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":89},{\"rowId\":\"915a2026-3c11-4709-ace0-0d2b6d536507\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":154},{\"rowId\":\"1c1522c9-3a0e-425e-a121-910b5533714a\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":28},{\"rowId\":\"4dbb3da1-a30e-4b66-9aa4-5b2ec813d6f6\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":93},{\"rowId\":\"7d7fe720-a111-4640-adbe-65ae80797d96\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":133},{\"rowId\":\"ad510495-e07e-4699-bd46-394fd01c764f\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":180},{\"rowId\":\"dee23487-c32b-49fa-834d-d520607b4946\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":228},{\"rowId\":\"dd62f32d-07a4-4286-aac0-8339c467b15b\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":226},{\"rowId\":\"e9d7e5b4-e6a5-4dd0-98c2-6126f59ea68c\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":246},{\"rowId\":\"cb3bf331-48ad-40a2-96c2-d109155c70ea\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":209},{\"rowId\":\"b1a09f56-0602-4dd2-91f9-b170b8144399\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":184},{\"rowId\":\"15809930-aa5f-4100-940b-c70a58f7b975\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":22},{\"rowId\":\"d3189193-a855-4765-ae8c-cec1c2ac2199\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":219},{\"rowId\":\"f0e5795c-cbeb-458c-85ea-35d27b1a70e9\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":255},{\"rowId\":\"f381ea06-e159-4972-89c1-174a9d906b73\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":261},{\"rowId\":\"004c2145-134d-4180-8d1b-b3161defc9be\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":1},{\"rowId\":\"2c9d933f-d203-48e4-961d-98cba04666a7\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":46},{\"rowId\":\"363ec858-f357-4969-b2ee-569eb9ae6d24\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":54},{\"rowId\":\"618363fa-8eef-43da-950b-b7d0bfd1b999\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":113},{\"rowId\":\"bf1d80c3-d835-4b72-81f5-6c955abc8119\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":198},{\"rowId\":\"cfbe18a0-52c0-4bbf-b141-8bf85f6b9ff0\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":214},{\"rowId\":\"8b4bb525-4fe2-42cb-82c0-46366a4ec4ec\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":148},{\"rowId\":\"615ce4b6-9c51-43b6-aa27-d66cd40690c2\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":112},{\"rowId\":\"2bbced91-57bf-4ba3-a431-b360909c09bf\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":45},{\"rowId\":\"3ed92e5f-504a-49ce-8155-6157bef6ed0e\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":65},{\"rowId\":\"80735717-508f-48eb-a817-2d801f2c8984\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":135},{\"rowId\":\"b69ff189-2858-45a7-b270-66c557a8e650\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":191},{\"rowId\":\"da07e79b-f8e5-4546-bd9b-963c385e1ec2\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":223},{\"rowId\":\"4afd162a-061c-471f-8e3a-0af1153d51ee\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":84},{\"rowId\":\"85fa1c27-7524-4d4e-9166-16921a9993c8\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":139},{\"rowId\":\"f52bf8aa-e116-41d8-b0dd-6e676bbf2a81\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":264},{\"rowId\":\"872a8a08-a9f8-4657-90c4-43099176249d\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":141},{\"rowId\":\"eec4cfd5-189a-4470-b205-13a861e934bf\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":251},{\"rowId\":\"bf7eb934-8a86-4485-a88b-41d4b8135e5c\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":199},{\"rowId\":\"e53a084e-1796-4203-93cd-3c1d820cace2\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":238},{\"rowId\":\"6efe1dbd-30c0-48a7-815e-2223ec25f7fd\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":122},{\"rowId\":\"ef1c528c-4db0-43b1-ae56-8d942e9c94aa\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":252},{\"rowId\":\"cee012c3-59f2-456d-b1d4-2e65ad94ae89\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":212},{\"rowId\":\"299c27c5-9abe-448f-89ac-f71ac2aa7f63\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":41},{\"rowId\":\"a534afdf-ba9c-4ecb-8f03-7ee7255230d7\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":173},{\"rowId\":\"f1e448c9-cee4-4d41-b6c2-3d301d8946d7\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":258},{\"rowId\":\"0058a771-d5cc-4bb6-b03b-52ff1b24eff3\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"20\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":2},{\"rowId\":\"d0d872ee-6190-49e7-8c6a-5622d30f7c02\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"20\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":216},{\"rowId\":\"da220987-c509-4a6a-96f1-6905ad9e77f8\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":224},{\"rowId\":\"e1f18e5d-7207-4030-8ac4-9de0c19ae9be\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":231},{\"rowId\":\"3a5cca44-f97a-418a-a6c9-9b1f8b73de22\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":58},{\"rowId\":\"3ea190c4-d56e-454f-ab97-428901069c62\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":64},{\"rowId\":\"0d20ae05-6865-40e3-b0d6-95f27f73e8b5\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":13},{\"rowId\":\"85775e30-313a-46b3-926b-7058822d0e5c\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":137},{\"rowId\":\"8a290f70-e8e6-42bf-b252-0d0b49d5e62a\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":146},{\"rowId\":\"4856d0e9-5eb0-4bf8-9bee-2bced6f744d2\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":80},{\"rowId\":\"9f3db522-ad18-4822-8386-873815881dac\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":169},{\"rowId\":\"1e69cce0-0fd0-4c5d-a7a1-7b59f21af6db\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":30},{\"rowId\":\"68466721-1351-44ee-a5d1-55fce82977b3\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":117},{\"rowId\":\"3dadfdbe-dd5c-4229-8563-0b277365808f\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":63},{\"rowId\":\"12d61b96-4b1e-417a-a095-ff5e1ec62f6f\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":20},{\"rowId\":\"a3039e73-d3a9-4b32-8d2b-cac789432c27\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":171},{\"rowId\":\"4d725873-db14-4423-b5e9-45b8f47cc8f6\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":92},{\"rowId\":\"adbcbb6d-f824-4db5-8726-d956301e4413\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":181},{\"rowId\":\"099e66da-f9da-495c-9b23-ce2693cbb62d\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":8},{\"rowId\":\"a51a707a-444b-447d-93cb-e007da8e6b5b\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":172},{\"rowId\":\"fb6b431b-b296-4d5c-b0c6-f77f84fd5304\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":268},{\"rowId\":\"77fdd291-43fd-4895-b38f-8e3886cce3b8\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":129},{\"rowId\":\"3c658294-e439-41e1-9c05-a770fbd63f2a\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":61},{\"rowId\":\"325e1006-24b1-4fc8-9fe7-33a7ce23e405\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":49},{\"rowId\":\"43312962-e9c4-4176-a0bc-3f4860a570b2\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":71},{\"rowId\":\"3b4bae15-14f4-48fa-b4dc-14e59f10a1bd\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":60},{\"rowId\":\"c0549aae-8af1-4d2a-967d-2a749f62bad7\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":200},{\"rowId\":\"4c4afc06-c97e-4612-8642-002c01b818be\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":88},{\"rowId\":\"97e8b737-04cf-466e-ae55-594d963c0744\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":163},{\"rowId\":\"50de2109-7799-4d02-bffb-758e15e02224\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":100},{\"rowId\":\"10a8bbdd-db82-442f-97bf-f4736241aad7\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":19},{\"rowId\":\"d2e0bf3a-dc4a-4eb9-9d71-b3b7fa2a328e\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":218},{\"rowId\":\"37579d56-05d2-4b01-b323-b3107c8365bc\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":56},{\"rowId\":\"707aaa7f-b996-4eff-93cd-c6d8543cbcc7\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":125},{\"rowId\":\"ecdacae0-4d5b-4bcc-96ac-f06e49a0c9fe\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":250},{\"rowId\":\"0a2cfa53-4d35-4498-8cb0-43519e6b98b5\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":10},{\"rowId\":\"b4ce397f-eff9-4426-936e-3d4b2304248a\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":189},{\"rowId\":\"50871f2d-2904-4d70-9aaf-d03ec65cc386\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":98},{\"rowId\":\"836baa5c-81ce-4e67-a097-713f501aeeb5\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":136},{\"rowId\":\"4eadf7b4-be31-4de8-ba26-99bc6f59adf7\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":96},{\"rowId\":\"4d1d3d17-1e90-4a65-b5a1-b12aec365f2f\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":91},{\"rowId\":\"a801840e-ae6e-4d8d-af12-1206589fe342\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":176},{\"rowId\":\"2d08a005-a42e-4e12-8bb4-09d77e04d0fb\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":47},{\"rowId\":\"d2260243-473e-40dc-94fc-369ac0818176\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":217},{\"rowId\":\"8acb74cc-9e96-44a6-a505-8f2a5da93269\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":147},{\"rowId\":\"9949e7bf-b47a-483a-bff6-5215ff418363\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":165},{\"rowId\":\"34277a74-e920-4d9b-a0d3-04a3ea197b48\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":51},{\"rowId\":\"46287686-22d6-4021-b4c5-79d1117b5fd2\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":78},{\"rowId\":\"4919e96e-4611-4247-949b-8d76e6812856\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":82},{\"rowId\":\"6c42f047-3fc8-47f8-a99a-d9aee4463bdb\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":120},{\"rowId\":\"f1934de6-9a74-42c8-aa0d-3d7fd847c268\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":257},{\"rowId\":\"8b6703d4-5c7b-44eb-803b-dcceb4c1c166\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":149},{\"rowId\":\"9ec61409-250e-4271-8293-46905f27e004\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":168},{\"rowId\":\"34f33157-6623-4733-93ce-e4d1d99e0a1d\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":53},{\"rowId\":\"bbee92a1-e25a-4b94-ae05-0a8389626f64\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":196},{\"rowId\":\"0c8a1fe0-1816-412b-8e05-5138b4bc95f7\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"20\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":12},{\"rowId\":\"45626238-8cf8-4ff8-abca-592dbaab012e\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":77},{\"rowId\":\"5d7a8fc2-fe63-433b-992e-3510caa08488\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":107},{\"rowId\":\"e6307ba5-5513-4511-8471-91946770b7ed\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":241},{\"rowId\":\"228e71b1-bbac-4c96-80b0-fdfa46b6b1dc\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":37},{\"rowId\":\"203f1282-f65c-4b01-9a19-983d9986ffa9\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":34},{\"rowId\":\"e053d575-5068-4a8e-8ff2-fd6625cbbcfa\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":230},{\"rowId\":\"1077682b-4251-408d-892f-f94377559681\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":18},{\"rowId\":\"2b9781ae-bc0c-4975-ae54-9d23eeb569b2\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":44},{\"rowId\":\"4dc334d2-710f-4a62-a8d8-99e73540694d\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":94},{\"rowId\":\"51047c40-847b-41c8-a930-c6cac98d7c48\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":101},{\"rowId\":\"596787f9-ab19-4757-a688-26954eae0234\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":103},{\"rowId\":\"e73a5e76-35cb-4eef-8889-b48ed00a8ab0\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":244},{\"rowId\":\"2910b03d-93f9-4f4e-9040-8d0378105216\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":40},{\"rowId\":\"ebae457f-eb45-4fbe-9898-b33894e23052\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":247},{\"rowId\":\"185311b5-4994-4356-abd3-3c342423ed53\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":25},{\"rowId\":\"b1f5184b-ab9b-4d54-8989-830cff810e0d\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":186},{\"rowId\":\"bac8b63a-1fc6-48ad-bae6-d8ec5610b2c0\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":195},{\"rowId\":\"0f4614d7-10af-476a-8815-c54a54797a7b\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":16},{\"rowId\":\"28282672-fe40-41b4-92af-0b3baaf4d3e1\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":38},{\"rowId\":\"f45d4a94-9b04-493a-9650-b2ee990a6149\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":263},{\"rowId\":\"85f7f970-8086-4952-b3fc-7e878d39a1a6\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":138},{\"rowId\":\"d67190b2-fdc0-4b4f-9489-8557caaaba05\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":221},{\"rowId\":\"5ead4c2b-e323-4507-ac72-b6884ab8a4dd\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":108},{\"rowId\":\"b2a03c66-e1de-401e-9f35-a31d6a732457\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":188},{\"rowId\":\"4103e87e-c3d3-4aa8-b3cb-68d018ede594\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":68},{\"rowId\":\"c8d1f170-64f8-4b6c-bd92-b272c78ebfaf\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":205},{\"rowId\":\"cb2d277e-bcd8-49c4-a0e4-048a6c1ce872\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":208},{\"rowId\":\"d7bb03cf-0fd2-4680-9dc8-c921a5c2b435\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":222},{\"rowId\":\"e3d3e400-d558-4f97-85c4-efcf36c677c0\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":234},{\"rowId\":\"160ad65a-6476-4644-8b81-7d1d5abc49c3\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"plateforme\":null,\"site_bassin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":23},{\"rowId\":\"1bfceeda-332d-4278-b831-4f581b79328d\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":27},{\"rowId\":\"2074f316-ae35-4be2-a81e-997b571f72c1\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":35},{\"rowId\":\"91b1fbd6-69d0-44a2-b64b-7aec9e7f70f4\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":155},{\"rowId\":\"fe6a8163-6b9e-46dc-a33c-f8e8d0de17e7\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":271},{\"rowId\":\"1f65c50e-0e27-49b9-826c-1cf2054e2392\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":32},{\"rowId\":\"44fc957e-c384-4d3b-ae37-cd03f407f008\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":76},{\"rowId\":\"b1b97563-659a-410e-9d9a-1d78b09772be\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":185},{\"rowId\":\"20937450-98f5-4bba-bd0f-246414ad632b\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":36},{\"rowId\":\"d0357950-727f-41a7-b3ff-dcba07962caa\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":215},{\"rowId\":\"4f292f10-4738-4ad5-a546-92b680d38573\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":97},{\"rowId\":\"c420e4a7-240c-4f0a-a9b2-1df6ef276f56\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":202},{\"rowId\":\"4485fa5a-59b4-4250-9c0d-551d9b8a12d3\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":74},{\"rowId\":\"42b90e90-4b0c-498a-bce8-b48c41bc9d7b\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":70},{\"rowId\":\"039d644d-d5b8-4fa1-894f-1d80f03a71ca\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":6},{\"rowId\":\"8c74bf93-1b42-405c-be2e-8b30d65283c5\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":150},{\"rowId\":\"ef7ac7f1-57e8-41ec-bce3-ce04c0b25ad0\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":253},{\"rowId\":\"4c442d6e-91f1-4c7b-a9e8-08cbdd84cf79\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":87},{\"rowId\":\"0138d7a3-fb7a-4db1-97a0-2f7444b1968b\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":3},{\"rowId\":\"a9f5a497-2876-45a6-bed8-512ed24618d4\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":179},{\"rowId\":\"e60992d7-5a7e-4ffe-a7b4-664cbc751bc1\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":240},{\"rowId\":\"96a0d158-507c-4cd1-9d8c-abeb13e9b288\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"plateforme\":null,\"site_bassin\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":160},{\"rowId\":\"09ae79e5-aaf1-4602-bcf5-75a5cc38eaa2\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":9},{\"rowId\":\"ba617fee-e618-44e4-9334-3d477b5b42f7\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":193},{\"rowId\":\"ec9ffb6c-6203-44b0-959e-f9bace76f06d\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":249},{\"rowId\":\"c096d5b7-ed90-461c-94e5-667c96bafd16\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":201},{\"rowId\":\"4bc92ad7-03ee-4bf7-bab9-ff0d3a624c5f\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":85},{\"rowId\":\"1d7ed070-af9a-4495-8114-f13d510e6faa\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":29},{\"rowId\":\"e6378173-a4c4-4078-974d-c35a0fb750d0\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":242},{\"rowId\":\"3f34c6cc-43a7-4aa7-926d-f24732de9159\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":66},{\"rowId\":\"50a9ad1f-0813-4380-9938-3759cbe4ea50\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":99},{\"rowId\":\"5d299195-e0c1-449b-8f71-2eab06f482ac\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":106},{\"rowId\":\"e4a41976-c1f9-4fe8-8e49-3d8225c73269\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":236},{\"rowId\":\"df797ed0-44cd-461d-862b-aa6d5ef3f7e8\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":229},{\"rowId\":\"6f1d286e-96c4-4275-8978-2365681ce60a\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":123},{\"rowId\":\"e70b5327-ea45-4824-9db0-f5a1c8077af6\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"plateforme\":null,\"site_bassin\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":243},{\"rowId\":\"9f483cac-fd5a-45a0-8414-bbafd510a946\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":170},{\"rowId\":\"b7983a0b-3b79-4bcf-bdad-8f290b1e8f95\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":192},{\"rowId\":\"de2c6d72-50da-41cd-82ae-daf1958d96d4\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\"}},\"totalRows\":272,\"rowNumber\":227},{\"rowId\":\"a871d51a-2ecd-499d-892e-5e02e3f104bb\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":177},{\"rowId\":\"985b6767-a8f4-4450-8c10-08d63eaf60c9\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":164},{\"rowId\":\"ebf962b4-e960-4978-be9b-c76f72b65db7\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\"}},\"totalRows\":272,\"rowNumber\":248},{\"rowId\":\"8986a882-fbad-4741-b66f-27ee2f124e40\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"plateforme\":null,\"site_bassin\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\"},\"espece\":{\"value\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\"},\"projet\":{\"value\":\"57c36c27-12d9-458a-b378-e67f69e44826\"},\"Nombre d'individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":null},\"Couleur des individus\":{\"unit\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"value\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"}},\"totalRows\":272,\"rowNumber\":145}],\"totalRows\":272,\"checkedFormatVariableComponents\":{\"DateLineChecker\":{\"date_value\":{\"target\":{\"variable\":\"date\",\"component\":\"value\",\"id\":\"date_value\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"configuration\":{\"pattern\":\"dd/MM/yyyy\",\"refType\":null,\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":false,\"multiplicity\":\"ONE\"},\"pattern\":\"dd/MM/yyyy\",\"sqlType\":\"COMPOSITE_DATE\"}},\"ReferenceLineChecker\":{\"espece_value\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@1c1ea\":\"75a2ef18-cf88-4890-8813-82c421dadbf6\",\"fr.inra.oresing.persistence.Ltree@179df\":\"b17ca780-d2f4-4989-994d-2f9ab2750487\",\"fr.inra.oresing.persistence.Ltree@1bc21\":\"36b12b17-279d-4ad1-9dae-0b6fc1a1e753\",\"fr.inra.oresing.persistence.Ltree@1a3a4\":\"c24a49d3-730c-4d5b-adfd-48f28e3bf8b3\",\"fr.inra.oresing.persistence.Ltree@1c1e3\":\"aa029be1-750f-4b89-9bbe-db996d51b3b5\",\"fr.inra.oresing.persistence.Ltree@17a15\":\"a8e19ebd-d50e-4be2-94ab-454198a1ac59\",\"fr.inra.oresing.persistence.Ltree@1a39d\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\"},\"configuration\":{\"pattern\":null,\"refType\":\"especes\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":true,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"espece\",\"component\":\"value\",\"id\":\"espece_value\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"especes\"},\"referenceValues\":{\"id\":\"d392c4e5-9a9e-4586-b61d-05ad9caa5c74\",\"creationDate\":1655461541083,\"updateDate\":1655461541083,\"application\":\"9442e86e-5cc4-4276-954f-d9881e49463f\",\"referenceType\":\"especes\",\"hierarchicalKey\":{\"sql\":\"lpf\"},\"hierarchicalReference\":{\"sql\":\"especes\"},\"naturalKey\":{\"sql\":\"lpf\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"esp_nom\":\"LPF\",\"__display_en\":\"LPF\",\"__display_fr\":\"LPF\",\"esp_definition_en\":\"LPF\",\"esp_definition_fr\":\"LPF\"}}},\"refsLinkedTo\":{},\"binaryFile\":\"bc36f92c-5fb4-4ec7-90fb-6957b332a0de\"},\"configuration\":null},\"Nombre d'individus_unit\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@f9da80f0\":\"55eb7538-8c92-4439-b805-629d091b7148\"},\"configuration\":{\"pattern\":null,\"refType\":\"unites\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":false,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"Nombre d'individus\",\"component\":\"unit\",\"id\":\"Nombre d'individus_unit\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"unites\"},\"referenceValues\":{\"id\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"creationDate\":1655461541132,\"updateDate\":1655461541132,\"application\":\"9442e86e-5cc4-4276-954f-d9881e49463f\",\"referenceType\":\"unites\",\"hierarchicalKey\":{\"sql\":\"sans_unite\"},\"hierarchicalReference\":{\"sql\":\"unites\"},\"naturalKey\":{\"sql\":\"sans_unite\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"nom_en\":\"no unit\",\"nom_fr\":\"sans unite\",\"code_en\":\"*\",\"code_fr\":\"*\",\"nom_key\":\"sans_unite\",\"code_key\":\"*\",\"__display_en\":\"no unit (*)\",\"__display_fr\":\"sans unite (*)\"}}},\"refsLinkedTo\":{},\"binaryFile\":\"778a5b85-b639-4a4c-8690-4e6d0c090e2a\"},\"configuration\":null},\"site_chemin\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@74c8b136\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\",\"fr.inra.oresing.persistence.Ltree@a973a3b5\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"fr.inra.oresing.persistence.Ltree@a973a3b4\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"fr.inra.oresing.persistence.Ltree@c9de373c\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\",\"fr.inra.oresing.persistence.Ltree@1ae13\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\",\"fr.inra.oresing.persistence.Ltree@47fdeea4\":\"dc40e20f-7a10-4788-b3b4-e107e7efa9e8\",\"fr.inra.oresing.persistence.Ltree@b225705d\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"fr.inra.oresing.persistence.Ltree@47fdeea3\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"fr.inra.oresing.persistence.Ltree@8eee5d57\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"fr.inra.oresing.persistence.Ltree@667916fb\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"fr.inra.oresing.persistence.Ltree@cafdb7ae\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\",\"fr.inra.oresing.persistence.Ltree@667916fc\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"fr.inra.oresing.persistence.Ltree@fded52e1\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\",\"fr.inra.oresing.persistence.Ltree@ca8b7107\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"fr.inra.oresing.persistence.Ltree@97993f04\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\",\"fr.inra.oresing.persistence.Ltree@166f3e92\":\"dc40e20f-7a10-4788-b3b4-e107e7efa9e8\",\"fr.inra.oresing.persistence.Ltree@166f3e91\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"fr.inra.oresing.persistence.Ltree@ecde8541\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\"},\"configuration\":{\"pattern\":null,\"refType\":\"sites\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":true,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"site\",\"component\":\"chemin\",\"id\":\"site_chemin\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"sites\"},\"referenceValues\":{\"id\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"creationDate\":1655461541180,\"updateDate\":1655461541180,\"application\":\"9442e86e-5cc4-4276-954f-d9881e49463f\",\"referenceType\":\"sites\",\"hierarchicalKey\":{\"sql\":\"plateforme.nivelle.nivelle__p1\"},\"hierarchicalReference\":{\"sql\":\"type_de_sites.sites.sites\"},\"naturalKey\":{\"sql\":\"nivelle__p1\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"zet_nom_en\":\"P1\",\"zet_nom_fr\":\"P1\",\"zet_nom_key\":\"p1\",\"__display_en\":\"P1\",\"__display_fr\":\"P1\",\"tze_type_nom\":\"plateforme\",\"zet_chemin_parent\":\"nivelle\",\"zet_description_en\":\"\",\"zet_description_fr\":\"\"}}},\"refsLinkedTo\":{\"sites\":[\"0a000fc9-1017-4f96-8e17-27a512d5326b\"],\"type_de_sites\":[\"594b0da4-3562-45a0-bdff-91df371a82f0\"]},\"binaryFile\":\"70d0c4f5-cb14-4b2c-be53-140dabfe8930\"},\"configuration\":null},\"site_site_bassin\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@74c8b136\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\",\"fr.inra.oresing.persistence.Ltree@a973a3b5\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"fr.inra.oresing.persistence.Ltree@a973a3b4\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"fr.inra.oresing.persistence.Ltree@c9de373c\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\",\"fr.inra.oresing.persistence.Ltree@1ae13\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\",\"fr.inra.oresing.persistence.Ltree@47fdeea4\":\"dc40e20f-7a10-4788-b3b4-e107e7efa9e8\",\"fr.inra.oresing.persistence.Ltree@b225705d\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"fr.inra.oresing.persistence.Ltree@47fdeea3\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"fr.inra.oresing.persistence.Ltree@8eee5d57\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"fr.inra.oresing.persistence.Ltree@667916fb\":\"811dd334-135e-4f79-8e3d-6f8a0c15060b\",\"fr.inra.oresing.persistence.Ltree@cafdb7ae\":\"ced863b3-8b76-4304-aa94-fc663a1efc3a\",\"fr.inra.oresing.persistence.Ltree@667916fc\":\"b83914bd-8908-43e0-a888-84e93f220d40\",\"fr.inra.oresing.persistence.Ltree@fded52e1\":\"baf37749-1bc9-45d4-8f80-e2f3a9f084c8\",\"fr.inra.oresing.persistence.Ltree@ca8b7107\":\"e3b18a10-23c9-45b0-9a8d-22d5f6ebdb63\",\"fr.inra.oresing.persistence.Ltree@97993f04\":\"0a000fc9-1017-4f96-8e17-27a512d5326b\",\"fr.inra.oresing.persistence.Ltree@166f3e92\":\"dc40e20f-7a10-4788-b3b4-e107e7efa9e8\",\"fr.inra.oresing.persistence.Ltree@166f3e91\":\"bf8c08cb-5087-4246-9a88-33dbb5f6afe1\",\"fr.inra.oresing.persistence.Ltree@ecde8541\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\"},\"configuration\":{\"pattern\":null,\"refType\":\"sites\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":true,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"site\",\"component\":\"site_bassin\",\"id\":\"site_site_bassin\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"sites\"},\"referenceValues\":{\"id\":\"3880d32d-1643-44db-aa33-46f3fd379e9a\",\"creationDate\":1655461541180,\"updateDate\":1655461541180,\"application\":\"9442e86e-5cc4-4276-954f-d9881e49463f\",\"referenceType\":\"sites\",\"hierarchicalKey\":{\"sql\":\"plateforme.nivelle.nivelle__p1\"},\"hierarchicalReference\":{\"sql\":\"type_de_sites.sites.sites\"},\"naturalKey\":{\"sql\":\"nivelle__p1\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"zet_nom_en\":\"P1\",\"zet_nom_fr\":\"P1\",\"zet_nom_key\":\"p1\",\"__display_en\":\"P1\",\"__display_fr\":\"P1\",\"tze_type_nom\":\"plateforme\",\"zet_chemin_parent\":\"nivelle\",\"zet_description_en\":\"\",\"zet_description_fr\":\"\"}}},\"refsLinkedTo\":{\"sites\":[\"0a000fc9-1017-4f96-8e17-27a512d5326b\"],\"type_de_sites\":[\"594b0da4-3562-45a0-bdff-91df371a82f0\"]},\"binaryFile\":\"70d0c4f5-cb14-4b2c-be53-140dabfe8930\"},\"configuration\":null},\"projet_value\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@6e039814\":\"57c36c27-12d9-458a-b378-e67f69e44826\",\"fr.inra.oresing.persistence.Ltree@6fa808f4\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\"},\"configuration\":{\"pattern\":null,\"refType\":\"projet\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":true,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"projet\",\"component\":\"value\",\"id\":\"projet_value\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"projet\"},\"referenceValues\":{\"id\":\"db94218d-6cd2-4fa5-b3bf-6dbeb0c868ba\",\"creationDate\":1655461541143,\"updateDate\":1655461541143,\"application\":\"9442e86e-5cc4-4276-954f-d9881e49463f\",\"referenceType\":\"projet\",\"hierarchicalKey\":{\"sql\":\"projet_atlantique\"},\"hierarchicalReference\":{\"sql\":\"projet\"},\"naturalKey\":{\"sql\":\"projet_atlantique\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"nom_en\":\"Atlantic project\",\"nom_fr\":\"Projet Atlantique\",\"nom_key\":\"projet_atlantique\",\"__display_en\":\"Atlantic project\",\"__display_fr\":\"Projet Atlantique\",\"definition_en\":\"Atlantic project\",\"definition_fr\":\"Projet Atlantique\"}}},\"refsLinkedTo\":{},\"binaryFile\":\"008f72bc-a202-4524-aec5-7dbdd19e208a\"},\"configuration\":null},\"Couleur des individus_unit\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@f9da80f0\":\"55eb7538-8c92-4439-b805-629d091b7148\"},\"configuration\":{\"pattern\":null,\"refType\":\"unites\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":false,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"Couleur des individus\",\"component\":\"unit\",\"id\":\"Couleur des individus_unit\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"unites\"},\"referenceValues\":{\"id\":\"55eb7538-8c92-4439-b805-629d091b7148\",\"creationDate\":1655461541132,\"updateDate\":1655461541132,\"application\":\"9442e86e-5cc4-4276-954f-d9881e49463f\",\"referenceType\":\"unites\",\"hierarchicalKey\":{\"sql\":\"sans_unite\"},\"hierarchicalReference\":{\"sql\":\"unites\"},\"naturalKey\":{\"sql\":\"sans_unite\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"nom_en\":\"no unit\",\"nom_fr\":\"sans unite\",\"code_en\":\"*\",\"code_fr\":\"*\",\"nom_key\":\"sans_unite\",\"code_key\":\"*\",\"__display_en\":\"no unit (*)\",\"__display_fr\":\"sans unite (*)\"}}},\"refsLinkedTo\":{},\"binaryFile\":\"778a5b85-b639-4a4c-8690-4e6d0c090e2a\"},\"configuration\":null},\"Couleur des individus_value\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@b82f3b8d\":\"fc1b88ac-9706-424d-b400-eef0ca9ba44c\",\"fr.inra.oresing.persistence.Ltree@4e9b3f19\":\"c0fbb816-fcce-4bfb-84de-d64c3032d053\",\"fr.inra.oresing.persistence.Ltree@b8383a44\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\"},\"configuration\":{\"pattern\":null,\"refType\":\"valeurs_qualitatives\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":true,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"Couleur des individus\",\"component\":\"value\",\"id\":\"Couleur des individus_value\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"valeurs_qualitatives\"},\"referenceValues\":{\"id\":\"f37004fa-7acd-4b9c-a7f0-48303b857be7\",\"creationDate\":1655461541154,\"updateDate\":1655461541154,\"application\":\"9442e86e-5cc4-4276-954f-d9881e49463f\",\"referenceType\":\"valeurs_qualitatives\",\"hierarchicalKey\":{\"sql\":\"couleur_des_individus__vert\"},\"hierarchicalReference\":{\"sql\":\"valeurs_qualitatives\"},\"naturalKey\":{\"sql\":\"couleur_des_individus__vert\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"nom_en\":\"Color of individuals\",\"nom_fr\":\"couleur des individus\",\"nom_key\":\"couleur_des_individus\",\"valeur_en\":\"green\",\"valeur_fr\":\"vert\",\"valeur_key\":\"vert\",\"__display_en\":\"green\",\"__display_fr\":\"vert\"}}},\"refsLinkedTo\":{},\"binaryFile\":\"5a5c7e64-384e-4b8b-add2-50663d1bc301\"},\"configuration\":null}},\"IntegerChecker\":{\"Nombre d'individus_value\":{\"target\":{\"variable\":\"Nombre d'individus\",\"component\":\"value\",\"id\":\"Nombre d'individus_value\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"configuration\":{\"pattern\":null,\"refType\":null,\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":false,\"multiplicity\":\"ONE\"},\"sqlType\":\"INTEGER\"}}}}" \ No newline at end of file +"{\"variables\":[\"date\",\"projet\",\"site\",\"Couleur des individus\",\"Nombre d'individus\",\"espece\"],\"rows\":[{\"rowId\":\"1746ef6a-f13b-4e55-977e-64f922b6f9e9\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":20},{\"rowId\":\"33ebcd47-48da-46d2-9c73-e542f2e2091c\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":49},{\"rowId\":\"f48e1aaa-cedf-4b97-bee4-3b0124a918d5\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":263},{\"rowId\":\"60c3c5f7-5bb2-4686-8248-6abdf741ead9\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":92},{\"rowId\":\"ec6be5f2-1127-4fb2-9375-c85495e58124\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":247},{\"rowId\":\"6b43e9d3-cfc7-4b22-b5c8-9208862e69a3\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":103},{\"rowId\":\"f2f527b4-b742-4097-a7e7-c914144e450f\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":261},{\"rowId\":\"7230c683-f8df-4bf6-8a34-d73c8579477c\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":113},{\"rowId\":\"c17fec01-1179-4c67-9e72-888357910ac6\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":199},{\"rowId\":\"d1cf566c-8107-4283-b851-51bbbda8e361\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":219},{\"rowId\":\"58b8b4a5-4728-4527-b81b-718b923a4a55\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":79},{\"rowId\":\"ae17baa4-9473-4a69-bbf1-9a4eaf65b59a\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":177},{\"rowId\":\"2d3cac97-0509-4fc4-92ee-1bfa9714e390\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":39},{\"rowId\":\"b331d800-a4eb-4cc4-b27e-7e1be4fdea0d\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":184},{\"rowId\":\"4a955b31-7e1a-471b-a420-e327674d15f0\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":68},{\"rowId\":\"f00aaed7-02c8-4613-92a4-3d300a1ceb76\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":256},{\"rowId\":\"19e2c6e7-d310-4236-919f-f9caa76a6d45\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":22},{\"rowId\":\"e8555b00-6ffd-4d27-836e-981b9302759c\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":242},{\"rowId\":\"e2f957f1-2efc-4ce1-a532-b2bd8b742c34\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":237},{\"rowId\":\"5db348cc-368d-48a3-bdba-f902506c518c\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":88},{\"rowId\":\"cc309e34-8020-4bc2-ba43-4adc55ab7863\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":214},{\"rowId\":\"bc696a6a-b0a5-4fc1-8a01-1190c4c4c64a\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":192},{\"rowId\":\"5900fff3-3461-417d-ad5b-7e7ee151ff3a\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":80},{\"rowId\":\"09460fda-6428-4b54-a4b5-0d50c6044d4c\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":5},{\"rowId\":\"9279017b-5a39-48b7-b55a-47df90129077\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":148},{\"rowId\":\"90cd9a21-fa18-49da-8140-a5dce82d3c73\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":144},{\"rowId\":\"443a5018-61e2-4b87-a05d-9e5eedccaa19\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":62},{\"rowId\":\"7c1569e3-8365-4848-baf6-eecbe5217cc8\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":123},{\"rowId\":\"d0d15698-2328-439c-8045-484ced77e0fb\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":218},{\"rowId\":\"79619a54-3004-4369-b1a9-5383166076d0\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":119},{\"rowId\":\"c57f392c-1167-481e-939c-ca29d8f1f724\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":205},{\"rowId\":\"5a6e37ed-8fc7-4c30-a8b0-fe9f73e562e3\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":81},{\"rowId\":\"ff4adce5-a5fe-438a-8938-dd5e55371981\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":271},{\"rowId\":\"48a9be74-05e6-494b-b871-15998545296f\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":67},{\"rowId\":\"94a4ea25-a43d-4638-b7c3-ed8b10d94cf1\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":152},{\"rowId\":\"bbd5937b-96ed-40e7-ab48-a13b48bcd132\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":191},{\"rowId\":\"b61e9bb8-2c67-485a-a93a-b387c1dfdc75\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":188},{\"rowId\":\"476f2114-8edb-422f-9652-4b445763f665\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":64},{\"rowId\":\"4d212585-dcbf-4168-b378-b6609d4e0900\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":70},{\"rowId\":\"f1ac767d-ca30-4eb8-9047-2fc924e30810\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":257},{\"rowId\":\"b40dc235-9dc2-48f5-85ce-facafcdd29c4\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":185},{\"rowId\":\"d9f21c35-8394-4c1c-9156-e3a7a494c78e\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":229},{\"rowId\":\"d321b79c-0b9c-4fdc-81bf-cb307c916af4\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":221},{\"rowId\":\"71c622e8-0c78-456c-a7e7-057a4bfed742\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":111},{\"rowId\":\"61786cf2-a946-443a-a40d-82193ff62ed9\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":95},{\"rowId\":\"4c94bc47-b604-402f-8f82-e7d0e5808fc5\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":69},{\"rowId\":\"5ba19d91-c71b-4db1-b31e-87e3e5f7c2dc\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":85},{\"rowId\":\"307872c2-8fcf-4165-8327-7439dff5557e\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":43},{\"rowId\":\"ef4b9bd6-8190-404e-93c0-823ad3a25120\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":254},{\"rowId\":\"3621212b-652c-48f0-9fad-4f6c869c3cd4\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"39\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":52},{\"rowId\":\"94cf648c-7b76-4102-a510-471e098e1663\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":153},{\"rowId\":\"31448300-83c7-458e-840e-19f0c270cf6e\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":45},{\"rowId\":\"c1616bd1-f083-4381-863e-9ae5dc991884\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":198},{\"rowId\":\"24d9551f-11ae-4811-b831-4c55752eb31d\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":32},{\"rowId\":\"75ac1460-6d4d-49f0-85cf-67ec95b67b72\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"38\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":117},{\"rowId\":\"d7d7f00e-ca80-4af9-b3de-a8c16ad7d53b\",\"values\":{\"date\":{\"value\":\"date:1984-01-01T00:00:00:01/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"54\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":226},{\"rowId\":\"ece1ae1f-e9bc-479c-985b-473e630105bc\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":248},{\"rowId\":\"2e6f32ac-ecbc-499c-9ffe-143e3ec796b2\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":40},{\"rowId\":\"317b24a8-d2a9-47f9-b938-322111bb632c\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":46},{\"rowId\":\"14733cae-503a-4aa1-8995-3e1b48ae3f5b\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":15},{\"rowId\":\"1215727e-6033-45e7-8216-d5849d86440c\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":12},{\"rowId\":\"1c025dc4-c74a-4898-8750-95381f8b2b0b\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":24},{\"rowId\":\"85d092ff-1274-4ae6-abd8-6f93821999a2\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":134},{\"rowId\":\"4876922a-ed48-4cd9-ad4a-db1e9ea8ab12\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":66},{\"rowId\":\"f26e191e-ef24-47c5-bf0b-de0b28f8e909\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":260},{\"rowId\":\"82d208eb-5bbc-47f0-8e29-a666f9a1cb83\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":131},{\"rowId\":\"5d0127a2-471a-4fa4-a5e1-761233ad741b\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":87},{\"rowId\":\"6af0a5ce-a0e2-4904-9e86-b1fad5823ce4\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":102},{\"rowId\":\"9d07c803-cdaa-466c-bf8d-a8745349e105\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":159},{\"rowId\":\"998bb907-036f-4035-a868-e5a54f3c343c\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":158},{\"rowId\":\"8d71b176-b64d-4ce6-96ca-2322e12fdb88\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":139},{\"rowId\":\"e095a62d-d547-4e93-af32-dab3234f9c32\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":234},{\"rowId\":\"d70357d5-3423-402a-84a4-7a153ea9e398\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":225},{\"rowId\":\"dde2052b-9b13-4ac8-86b5-968d556c47ce\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":233},{\"rowId\":\"0f938627-5da3-4d4e-a774-b25c859671a5\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":7},{\"rowId\":\"ac41ba3e-e43d-4ec3-b5f1-4f57e6ebf8cb\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":176},{\"rowId\":\"a10a1833-e763-4e51-8434-b7552c278b52\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":161},{\"rowId\":\"85d83156-6407-4696-8831-e14262e33f96\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":135},{\"rowId\":\"ecedcebb-09ad-4192-a496-821db55e9174\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":249},{\"rowId\":\"6b85d503-b7e6-4eea-a300-fb305b839243\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":104},{\"rowId\":\"bc915ebf-fa1d-4e2b-9bc8-8be4c7a24ab2\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":193},{\"rowId\":\"5dcb7d4f-8209-4e1a-ac52-209fb614b723\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":89},{\"rowId\":\"e3bb0d29-e300-432a-bc0c-0b78d7e00a37\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":240},{\"rowId\":\"a49bdaf2-cbef-4b7d-9cdc-eee5ac3cc381\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":165},{\"rowId\":\"ffffb5a2-96ef-4ce8-8eac-02a851d4bea0\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":272},{\"rowId\":\"9e1acc0c-e01b-47c5-bda0-be8f30b28b14\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":160},{\"rowId\":\"c7503873-f079-4dbc-b171-4ee2b86c7672\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":207},{\"rowId\":\"eebc7dab-cab9-4fde-b98a-b9206f53cd29\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":252},{\"rowId\":\"ea03b680-4ad7-4783-b1df-cf1ed8736154\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":246},{\"rowId\":\"c3a866fd-baed-4ee2-a71f-6f7b27edaf01\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":203},{\"rowId\":\"c37c030f-8792-4640-b89b-4646dc2d454e\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":201},{\"rowId\":\"208a2513-b6cd-45bc-9517-c8703074a60a\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"50\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":30},{\"rowId\":\"91cfb401-4975-445d-8d98-bcf3f8d2e5de\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":147},{\"rowId\":\"c416f021-a7c1-4782-8f96-142dc37c6101\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":204},{\"rowId\":\"be0c1c2c-a8e5-401e-b874-437e75594f65\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":195},{\"rowId\":\"46f28f15-b92b-43a3-a6b4-daeac6d89cd7\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":63},{\"rowId\":\"961d9786-5711-4652-8236-c8db9efdd356\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":154},{\"rowId\":\"413e7418-2cac-40c6-a4d3-5e81eba35397\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":59},{\"rowId\":\"fdd5bb6c-9bf5-4531-ade3-b5f777433934\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":269},{\"rowId\":\"064fe76c-36e0-427b-9b43-207fc4dac53c\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":2},{\"rowId\":\"d4666067-c58b-4c0f-bdfb-5dd7ac4fac86\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":222},{\"rowId\":\"dd1f1430-a69a-4ec4-b05f-9e01947acc42\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":231},{\"rowId\":\"29bed32b-ff9c-4551-b2e7-fe1bcadbb151\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":36},{\"rowId\":\"6a329309-ed25-447c-8e69-39e43879bb97\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":100},{\"rowId\":\"6a52768a-c796-4cc7-a4d7-0d9fbcd7daf5\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":101},{\"rowId\":\"7b6cfde8-0ee8-496c-8ba9-e598c889aac4\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"14\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":122},{\"rowId\":\"dc940bef-902a-491a-b210-3f7a7d256b6f\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":230},{\"rowId\":\"8cf8b4a3-330e-47e5-a53e-2228c047de2a\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":138},{\"rowId\":\"749f6087-4dc5-4b26-ad7e-fbb23bfc58e8\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"18\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":116},{\"rowId\":\"83643a60-990c-429c-a900-cdbd0750c3b9\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":132},{\"rowId\":\"481e772a-4de3-4085-b728-43595de3a8a7\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"32\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":65},{\"rowId\":\"5cc4aabe-8a38-4682-8e0f-b02c2315812b\",\"values\":{\"date\":{\"value\":\"date:1984-01-02T00:00:00:02/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":86},{\"rowId\":\"948de920-cf30-4906-85da-a3edd15103b7\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":151},{\"rowId\":\"6f8fe061-0dd7-4755-9483-30336769285b\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":109},{\"rowId\":\"a6dfaf27-287c-4011-9d26-ecd5d1d5cddf\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":168},{\"rowId\":\"f1fc2ba8-cbbe-4689-ac10-f0a96c5a154d\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":259},{\"rowId\":\"1e53bb3f-522e-4f89-975b-6b49896f876d\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":27},{\"rowId\":\"52aec3ce-be35-4d38-8055-1b7be16892ca\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":75},{\"rowId\":\"101d86d4-4ae2-43c8-b411-f55960b29f10\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":9},{\"rowId\":\"cda9f60f-445c-40e7-bca2-51219c4b5ec8\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":215},{\"rowId\":\"71cf6490-5521-4055-8555-9ac1bcf13fe1\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":112},{\"rowId\":\"916e2e30-1382-4934-9cf9-94071ddb97a2\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":145},{\"rowId\":\"a1ecfc8a-c6a2-460d-a7e8-5a0773981187\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":162},{\"rowId\":\"f326992c-a84f-4f7e-ba62-e518bef9efe8\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":262},{\"rowId\":\"10d5e7f4-0941-4e09-8935-9bb595057da1\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":11},{\"rowId\":\"e1166e10-deec-4a0b-adb7-909f4e0afba8\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":236},{\"rowId\":\"7ae47f1b-82d2-4a30-a871-43c14ea3544f\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":121},{\"rowId\":\"1594caad-3a4a-4649-9335-e17a05f7c4cb\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":17},{\"rowId\":\"1f3f063e-31e4-4f85-9c5c-7b115bbb5e08\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":28},{\"rowId\":\"a9c9afcc-d01a-4cf4-ac68-f3b3575c64df\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":173},{\"rowId\":\"01f9960e-e26d-41a7-accd-c130182c9e9b\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":1},{\"rowId\":\"38bea0c0-9bb9-4a37-9a5c-52e029978207\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":54},{\"rowId\":\"967511d9-e0a7-4b3c-8e2d-c33eceada530\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":155},{\"rowId\":\"a6db5aac-770c-49a3-9e41-ba8994b53254\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":167},{\"rowId\":\"afacbfa4-958b-4e94-9fb5-a6cb2ad06917\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":180},{\"rowId\":\"cb30f47a-7e39-43b3-a9c5-25bbc1b137e3\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":211},{\"rowId\":\"12a03546-de13-432c-b9bc-4b9bcf9cb275\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":13},{\"rowId\":\"8b0823df-5e0c-40d9-8a56-f70c956d7210\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":137},{\"rowId\":\"c0026ffd-1969-4e40-9af3-279bd90aaa19\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":197},{\"rowId\":\"d4767f17-5f97-44b1-bd30-4051c15135a2\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":223},{\"rowId\":\"62d6eafa-1dfa-487a-8752-b10bb650c62d\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":97},{\"rowId\":\"e998266f-10a4-4cff-9e52-ebce6fbde28a\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":244},{\"rowId\":\"3e19f2e8-04de-4f8f-86de-08cade7ddd78\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":56},{\"rowId\":\"e9571218-ecf8-4830-95c7-8cb69c10152d\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"20\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":243},{\"rowId\":\"aa19e64e-9e41-4d9a-a15c-6bb345f2b239\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":174},{\"rowId\":\"ca2beb8b-c25f-4952-b195-b113b793fb80\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"20\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":208},{\"rowId\":\"15ca1d21-5f16-45a0-bbe9-7de7e6526350\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":18},{\"rowId\":\"c667bc33-5566-4bc5-bf1f-0da81fb5981c\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":206},{\"rowId\":\"1adcec02-516e-48a2-b46f-dce98d5b469d\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":23},{\"rowId\":\"ce09fd27-ac1a-4a5e-9739-cbf0b5d08768\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":216},{\"rowId\":\"4fee38dd-e207-4e35-baef-dc2e11ebe7ef\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":71},{\"rowId\":\"2d22d05d-feec-4128-bae6-bb81579572c3\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":38},{\"rowId\":\"97eaf01d-ca05-49c7-ab3d-9a08ef7b5800\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":156},{\"rowId\":\"a9371c3b-99ab-4f4c-8037-13acea6fc9c3\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":172},{\"rowId\":\"c1a81e07-db15-43b1-b2c9-1ea066d4f256\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":200},{\"rowId\":\"b2b396aa-d9d8-45e0-b9f8-ecb561b8acf4\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"41\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":183},{\"rowId\":\"200c32a8-e52f-46d1-a319-ab69f93bf667\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":29},{\"rowId\":\"8dcdc94b-5017-4b3b-8ee5-3fedc8e5ebcf\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"45\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":140},{\"rowId\":\"f6fe8824-9c60-4a6b-b931-d313bbc83c26\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":265},{\"rowId\":\"935337ed-6e30-4a3f-a0c7-ae56906cee32\",\"values\":{\"date\":{\"value\":\"date:1984-01-03T00:00:00:03/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"16\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":150},{\"rowId\":\"8aa471d9-3240-4443-8898-33cb0b3a3841\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":136},{\"rowId\":\"1d9963e2-8f67-4ade-ba40-045d4b0cc2dc\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":26},{\"rowId\":\"a74cbb17-62bb-4228-9f72-6d468d02369d\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":170},{\"rowId\":\"0dd291e5-f86c-48c4-bf73-cfe7b85a7a55\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":6},{\"rowId\":\"675c76f4-9764-4b77-a3af-320bd7b7bfe0\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":99},{\"rowId\":\"319c50af-d9d3-46c1-bd2d-b0ecfdfcfcb1\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":47},{\"rowId\":\"15ccfdc7-3ba7-438f-9f08-6de31e703501\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":19},{\"rowId\":\"b5babf41-533d-463e-8194-e3da8b2cc121\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":187},{\"rowId\":\"6dc2a651-51c3-4d26-925a-d3dda2de71ee\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":108},{\"rowId\":\"1cde5c8c-f554-4698-ab44-beac44fde498\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":25},{\"rowId\":\"aedf2fc5-8f9f-48b7-97a0-85f0a2ec1715\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":179},{\"rowId\":\"5a703af1-991d-4d83-ac66-f3be82a7b12d\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":82},{\"rowId\":\"563a770c-d59d-4400-b1c1-e1fc5823d8e8\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":77},{\"rowId\":\"3f4c7159-8f6a-4a46-a5a9-26e2d15ba7f6\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":57},{\"rowId\":\"ab400596-fdc7-4972-806e-dd4fa5050280\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":175},{\"rowId\":\"fb8ad5f2-a535-4ecc-9d37-705af19bd776\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":268},{\"rowId\":\"72823781-fc79-4d42-8e4f-4f1decdbe4e1\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":114},{\"rowId\":\"1493e322-e419-4b78-ab75-60f4a8441dd6\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":16},{\"rowId\":\"30c022d5-d773-4cd7-8003-6fc3dd7d4937\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":44},{\"rowId\":\"f793c961-3e67-4adc-bf18-182a5e7db039\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":266},{\"rowId\":\"29c001ac-7115-4333-bd79-7cfe32465cb1\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":37},{\"rowId\":\"5ab50f55-3991-4105-b68f-1ab619b4a9f4\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":83},{\"rowId\":\"60d35652-660b-4193-ac41-31400efa4454\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":93},{\"rowId\":\"8131c7a0-be80-436a-9a3a-497b09fa728c\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":127},{\"rowId\":\"6ce5f8b1-7bae-4b81-b481-d4f775cbf1cd\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":107},{\"rowId\":\"258dc335-edcf-4eee-b546-1e3f220d24ab\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":33},{\"rowId\":\"785b40f1-602c-4279-b1ee-b6395c47dcf4\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":118},{\"rowId\":\"e0a96d24-3791-4a9d-8b53-ea0f225e080f\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":235},{\"rowId\":\"f1e81fef-b305-4c88-a870-2c393534fc26\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":258},{\"rowId\":\"b26257e2-abe0-4419-9de4-5caac6130620\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":182},{\"rowId\":\"08fd6aec-7836-41f8-b8c7-2164c45ac33f\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":4},{\"rowId\":\"d91fc4e2-c997-423e-b2d0-d5f98bd25764\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":228},{\"rowId\":\"7a5ce3c7-73c3-4d37-b7d6-22e7bb575426\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":120},{\"rowId\":\"7f1b8899-09a9-4620-80bc-18cdf377aef8\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":124},{\"rowId\":\"57defb35-c469-4f81-98c5-789dce9450df\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":78},{\"rowId\":\"2fede608-fd87-43cb-9c01-0ba8a28ccc63\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":42},{\"rowId\":\"919a435b-7a30-4297-ae47-ac6857a96cfd\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":146},{\"rowId\":\"81ac51f0-dc69-4f17-8d7b-3f3a70436f6a\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":128},{\"rowId\":\"7fdba39d-1797-4518-b702-e90f5a5c710b\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":125},{\"rowId\":\"cb06038f-2517-4093-93b9-9c734567f448\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":210},{\"rowId\":\"28a9b60d-0392-4574-adfa-69489e080f03\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":35},{\"rowId\":\"cef278a5-d67a-45f0-abbf-39eb922038cb\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"20\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":217},{\"rowId\":\"caefc78d-5fda-4ed6-9c03-8656bcd1a449\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":209},{\"rowId\":\"d22eeecb-4861-49a9-bb84-72f1460bb0d7\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":220},{\"rowId\":\"600a6922-2aa7-4c6d-9513-a27aaad4ea28\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":91},{\"rowId\":\"286bbc58-b98b-49ec-9ea4-d52bb9b5a674\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":34},{\"rowId\":\"e9d7a692-cd6e-445d-8d62-1a726fe8fe52\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":245},{\"rowId\":\"e3ae5809-c0e7-4828-888b-2224b10a0d84\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":239},{\"rowId\":\"f894eada-c6b9-4dc7-92bb-b8bd05bdf625\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":267},{\"rowId\":\"18636e1c-22f4-4843-8494-6505ac07522e\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"43\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":21},{\"rowId\":\"d4c6ca47-b8cf-42ef-9622-ff2e58be348d\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"51\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":224},{\"rowId\":\"625228ad-1ea1-4b24-b6f9-80cf03c531ac\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":96},{\"rowId\":\"efb4ed7a-7b79-466b-8c5d-0b43720e7e23\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":255},{\"rowId\":\"cc121203-ed7a-41f1-8595-755a539c370d\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"22\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":213},{\"rowId\":\"06609f28-4222-4fe0-942d-215a665eef34\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":3},{\"rowId\":\"ee776672-a504-45b8-9a7b-c318ac79de62\",\"values\":{\"date\":{\"value\":\"date:1984-01-04T00:00:00:04/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"15\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":251},{\"rowId\":\"352b38da-5dfe-4c4b-9a3f-e3a4fb618d37\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":51},{\"rowId\":\"8de58c57-b79a-41dd-805a-049f2163ca17\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":141},{\"rowId\":\"6c798b04-0861-411d-b297-850ed0457d48\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":106},{\"rowId\":\"55809202-c578-4948-97a1-4311647e218f\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":76},{\"rowId\":\"4347bd86-29f0-4276-882f-bbc8bfdafb9c\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":61},{\"rowId\":\"1095e6cf-6af6-4136-9f6d-8931c930d4ad\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":10},{\"rowId\":\"f6692a13-e8c2-43e5-800f-82439a98e193\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":264},{\"rowId\":\"5b79854a-d3c8-4620-9869-fe0923580e05\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":84},{\"rowId\":\"3fefd723-b941-4dae-9127-ef36a9d45782\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":58},{\"rowId\":\"2fb19483-2543-4913-a1e1-b4f441519e90\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":41},{\"rowId\":\"b6a438f2-8086-4ee9-802e-866b41e0b3ff\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":189},{\"rowId\":\"3492f8e3-79c8-4e55-afea-02c88e2eed4d\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":50},{\"rowId\":\"bfb65d73-2a32-4b5f-8e8b-001b8175b021\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":196},{\"rowId\":\"bd81be4a-dfd2-409d-835b-cf43a6843762\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir__p1\",\"chemin\":\"plateforme.oir.oir__p1.oir__p1__a\",\"plateforme\":\"a\",\"site_bassin\":\"plateforme.oir.oir__p1\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"plateforme\":null,\"site_bassin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":194},{\"rowId\":\"c37c074a-43f7-4d00-b553-bf412a7d4642\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":202},{\"rowId\":\"7143a57a-20f7-4939-bc2b-583e823c54db\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":110},{\"rowId\":\"50582a92-a689-44c9-9658-521dac97e66b\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":72},{\"rowId\":\"b0e83bf5-2d3b-48fa-aa4d-f932f14cab49\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":181},{\"rowId\":\"668d823d-eb9e-4f8c-b190-bec4fda5c63d\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":98},{\"rowId\":\"741a0924-6409-440e-bc86-49d4e58a2869\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":115},{\"rowId\":\"a711da71-725f-4900-bc46-3ce840301fd3\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":169},{\"rowId\":\"5eff2908-18c6-4aff-bcac-462d761e2599\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":90},{\"rowId\":\"ae45de0e-2996-412a-8b4a-1f3aa97038a3\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":178},{\"rowId\":\"98ef40c9-4ec1-407a-b758-2c216bff9a9d\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":157},{\"rowId\":\"8059ccf4-8f41-45e4-bec5-40b49dee3898\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":126},{\"rowId\":\"5233495a-d73b-409a-b293-57add169d25c\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":73},{\"rowId\":\"e336bfcd-b51d-4655-b8c4-899dc4983932\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":238},{\"rowId\":\"8279c114-a264-4fd6-9626-a400d51fa633\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_atlantique\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":130},{\"rowId\":\"6c6ee5bf-1f30-4857-a280-6704135e4adf\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":105},{\"rowId\":\"41d6b711-945f-4fa9-ac47-038166cde935\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":60},{\"rowId\":\"e49bf51d-42bb-40ec-9041-27e3ce4978ba\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":241},{\"rowId\":\"22df7ccf-6c00-4a10-a8be-b5329c79bad1\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":31},{\"rowId\":\"8495100f-9ebb-459f-a8de-08bad08de234\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":133},{\"rowId\":\"cb9adcd3-df02-4af8-8876-637c7f25588e\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":212},{\"rowId\":\"a26ae2a0-0281-4fbd-a29e-ec621e161064\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"nivelle\",\"chemin\":\"plateforme.nivelle.nivelle__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.nivelle\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"plateforme\":null,\"site_bassin\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":163},{\"rowId\":\"8f7e2fb7-1335-4279-a8aa-e8ae03f74b87\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":142},{\"rowId\":\"dd555944-8fe9-4ef3-9481-95b2cd232918\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":232},{\"rowId\":\"0f94b78a-6f80-4856-af97-e2dcd9fcb631\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":8},{\"rowId\":\"81adfbd3-1d65-4c9b-8afd-91949d224617\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":129},{\"rowId\":\"a9180367-8925-46f3-aa90-7cdf6daf815c\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":171},{\"rowId\":\"d86771ee-8395-4976-8348-34ce55e81a6d\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":227},{\"rowId\":\"3928f017-60fa-423a-b3ba-c20c1ce07c80\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":55},{\"rowId\":\"6100d62b-685c-4c57-8b53-245d84c376fc\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":94},{\"rowId\":\"3388edb2-5e42-40dc-86b4-951e831aa3fa\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":48},{\"rowId\":\"b9349294-cc9f-4029-8dcf-3354264d5779\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":190},{\"rowId\":\"ed3b0574-ad4a-4f6e-816d-f13ee045004b\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":250},{\"rowId\":\"a2a7ed68-4764-4983-a8d5-50ba48f4fa34\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":164},{\"rowId\":\"90a9c2e0-d679-4c01-a8b7-57d8bf33b681\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":143},{\"rowId\":\"38ab79aa-e931-4023-bd96-dcda8e7961bf\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"oir\",\"chemin\":\"plateforme.oir.oir__p2\",\"plateforme\":\"p2\",\"site_bassin\":\"bassin_versant.oir\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"plateforme\":null,\"site_bassin\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":53},{\"rowId\":\"9324321f-7049-4b35-aea9-a4198a53330a\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"sat\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"24\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":149},{\"rowId\":\"ef007633-0c8d-4c62-a0e6-5a62f350688b\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"59\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"b91af808-6d3d-474e-9e62-a55a534228c1\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":253},{\"rowId\":\"529be839-98b6-4dd7-a813-eeb2782753b6\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trf\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"21\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"45278160-6ba1-473c-931a-eff1a19aa103\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":74},{\"rowId\":\"fed425f4-ef92-46d9-b56a-ffba73641f66\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"trm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"25\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":270},{\"rowId\":\"b524a8e0-7a42-4967-8e65-98e5d005f437\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"alo\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"17\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__vert\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\"}},\"totalRows\":272,\"rowNumber\":186},{\"rowId\":\"14690f02-5e06-47c6-8152-e9af6a9a3e96\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"ang\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"27\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__rouge\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"}},\"totalRows\":272,\"rowNumber\":14},{\"rowId\":\"a5d1e0b9-d7bf-47b7-a603-190f8e464ed4\",\"values\":{\"date\":{\"value\":\"date:1984-01-05T00:00:00:05/01/1984\"},\"site\":{\"bassin\":\"scarff\",\"chemin\":\"plateforme.scarff.scarff__p1\",\"plateforme\":\"p1\",\"site_bassin\":\"bassin_versant.scarff\"},\"espece\":{\"value\":\"lpm\"},\"projet\":{\"value\":\"projet_manche\"},\"Nombre d'individus\":{\"unit\":\"sans_unite\",\"value\":\"49\"},\"Couleur des individus\":{\"unit\":\"sans_unite\",\"value\":\"couleur_des_individus__bleu\"}},\"refsLinkedTo\":{\"date\":{\"value\":null},\"site\":{\"bassin\":null,\"chemin\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"plateforme\":null,\"site_bassin\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\"},\"espece\":{\"value\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\"},\"projet\":{\"value\":\"67afe25b-7499-4f17-918d-b15c1a241768\"},\"Nombre d'individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":null},\"Couleur des individus\":{\"unit\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"value\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\"}},\"totalRows\":272,\"rowNumber\":166}],\"totalRows\":272,\"checkedFormatVariableComponents\":{\"DateLineChecker\":{\"date_value\":{\"target\":{\"variable\":\"date\",\"component\":\"value\",\"id\":\"date_value\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"configuration\":{\"pattern\":\"dd/MM/yyyy\",\"refType\":null,\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":false,\"multiplicity\":\"ONE\"},\"pattern\":\"dd/MM/yyyy\",\"sqlType\":\"COMPOSITE_DATE\"}},\"ReferenceLineChecker\":{\"espece_value\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@1c1ea\":\"84112eb1-fdc0-450f-837a-5a6ffd2c0b9b\",\"fr.inra.oresing.persistence.Ltree@17a15\":\"d0c297fe-caa4-40a2-8915-0ffed273c228\",\"fr.inra.oresing.persistence.Ltree@1c1e3\":\"45278160-6ba1-473c-931a-eff1a19aa103\",\"fr.inra.oresing.persistence.Ltree@1a3a4\":\"f424f88a-1aba-4b8a-aec3-a8b5f8f673ea\",\"fr.inra.oresing.persistence.Ltree@1a39d\":\"b91af808-6d3d-474e-9e62-a55a534228c1\",\"fr.inra.oresing.persistence.Ltree@179df\":\"4256b62f-1184-41b5-b6c5-4cadc97816d4\",\"fr.inra.oresing.persistence.Ltree@1bc21\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\"},\"configuration\":{\"pattern\":null,\"refType\":\"especes\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":true,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"espece\",\"component\":\"value\",\"id\":\"espece_value\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"especes\"},\"referenceValues\":{\"id\":\"2dc859c8-c4c5-4d25-9718-cdd2916ae537\",\"creationDate\":1658941446939,\"updateDate\":1658941446939,\"application\":\"ac3135e8-bd7d-479e-9d58-dc0a79690226\",\"referenceType\":\"especes\",\"hierarchicalKey\":{\"sql\":\"sat\"},\"hierarchicalReference\":{\"sql\":\"especes\"},\"naturalKey\":{\"sql\":\"sat\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"esp_nom\":\"SAT\",\"__display_en\":\"SAT\",\"__display_fr\":\"SAT\",\"esp_definition_en\":\"SAT\",\"esp_definition_fr\":\"SAT\"}}},\"refsLinkedTo\":{},\"binaryFile\":\"7be0f12d-485e-4627-bb18-e2bc6557b405\"},\"configuration\":null},\"Nombre d'individus_unit\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@f9da80f0\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\"},\"configuration\":{\"pattern\":null,\"refType\":\"unites\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":false,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"Nombre d'individus\",\"component\":\"unit\",\"id\":\"Nombre d'individus_unit\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"unites\"},\"referenceValues\":{\"id\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"creationDate\":1658941447040,\"updateDate\":1658941447040,\"application\":\"ac3135e8-bd7d-479e-9d58-dc0a79690226\",\"referenceType\":\"unites\",\"hierarchicalKey\":{\"sql\":\"sans_unite\"},\"hierarchicalReference\":{\"sql\":\"unites\"},\"naturalKey\":{\"sql\":\"sans_unite\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"nom_en\":\"no unit\",\"nom_fr\":\"sans unite\",\"code_en\":\"*\",\"code_fr\":\"*\",\"nom_key\":\"sans_unite\",\"code_key\":\"*\",\"__display_en\":\"no unit (*)\",\"__display_fr\":\"sans unite (*)\"}}},\"refsLinkedTo\":{},\"binaryFile\":\"bdaef483-dc50-4033-b827-3028df0dc73d\"},\"configuration\":null},\"site_chemin\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@74c8b136\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\",\"fr.inra.oresing.persistence.Ltree@1ae13\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\",\"fr.inra.oresing.persistence.Ltree@b225705d\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"fr.inra.oresing.persistence.Ltree@a973a3b5\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"fr.inra.oresing.persistence.Ltree@a973a3b4\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"fr.inra.oresing.persistence.Ltree@8eee5d57\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"fr.inra.oresing.persistence.Ltree@47fdeea4\":\"9cdfa9b8-8ed5-487b-99ed-67a6fa9e0854\",\"fr.inra.oresing.persistence.Ltree@c9de373c\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\",\"fr.inra.oresing.persistence.Ltree@47fdeea3\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"fr.inra.oresing.persistence.Ltree@667916fb\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"fr.inra.oresing.persistence.Ltree@cafdb7ae\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\",\"fr.inra.oresing.persistence.Ltree@667916fc\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"fr.inra.oresing.persistence.Ltree@fded52e1\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\",\"fr.inra.oresing.persistence.Ltree@ca8b7107\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"fr.inra.oresing.persistence.Ltree@97993f04\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\",\"fr.inra.oresing.persistence.Ltree@166f3e92\":\"9cdfa9b8-8ed5-487b-99ed-67a6fa9e0854\",\"fr.inra.oresing.persistence.Ltree@166f3e91\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"fr.inra.oresing.persistence.Ltree@ecde8541\":\"5794d39b-8985-46f2-8b09-36fdc989674b\"},\"configuration\":{\"pattern\":null,\"refType\":\"sites\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":true,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"site\",\"component\":\"chemin\",\"id\":\"site_chemin\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"sites\"},\"referenceValues\":{\"id\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"creationDate\":1658941447153,\"updateDate\":1658941447153,\"application\":\"ac3135e8-bd7d-479e-9d58-dc0a79690226\",\"referenceType\":\"sites\",\"hierarchicalKey\":{\"sql\":\"plateforme.nivelle.nivelle__p1\"},\"hierarchicalReference\":{\"sql\":\"type_de_sites.sites.sites\"},\"naturalKey\":{\"sql\":\"nivelle__p1\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"zet_nom_en\":\"P1\",\"zet_nom_fr\":\"P1\",\"zet_nom_key\":\"p1\",\"__display_en\":\"P1\",\"__display_fr\":\"P1\",\"tze_type_nom\":\"plateforme\",\"zet_chemin_parent\":\"nivelle\",\"zet_description_en\":\"\",\"zet_description_fr\":\"\"}}},\"refsLinkedTo\":{\"sites\":[\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"],\"type_de_sites\":[\"43511ea5-3ce7-4133-aa79-62251fb8bf40\"]},\"binaryFile\":\"ce1bc9d4-5850-49b8-a61a-0cee4805cb8a\"},\"configuration\":null},\"site_site_bassin\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@74c8b136\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\",\"fr.inra.oresing.persistence.Ltree@1ae13\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\",\"fr.inra.oresing.persistence.Ltree@b225705d\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"fr.inra.oresing.persistence.Ltree@a973a3b5\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"fr.inra.oresing.persistence.Ltree@a973a3b4\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"fr.inra.oresing.persistence.Ltree@8eee5d57\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"fr.inra.oresing.persistence.Ltree@47fdeea4\":\"9cdfa9b8-8ed5-487b-99ed-67a6fa9e0854\",\"fr.inra.oresing.persistence.Ltree@c9de373c\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\",\"fr.inra.oresing.persistence.Ltree@47fdeea3\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"fr.inra.oresing.persistence.Ltree@667916fb\":\"f5300253-d210-457e-b1f7-2edba1f8dcda\",\"fr.inra.oresing.persistence.Ltree@cafdb7ae\":\"e0f55cb6-f0a2-4898-83d8-34d5df949ba0\",\"fr.inra.oresing.persistence.Ltree@667916fc\":\"794a3b76-5f72-4728-bbba-270fc17cfb57\",\"fr.inra.oresing.persistence.Ltree@fded52e1\":\"12758d4b-b534-4b84-95a1-921ed1f4b432\",\"fr.inra.oresing.persistence.Ltree@ca8b7107\":\"04a28fb8-0aeb-4419-b4c9-208f2a57feb0\",\"fr.inra.oresing.persistence.Ltree@97993f04\":\"e61867bd-e4dd-48fb-b719-7e752b06ce69\",\"fr.inra.oresing.persistence.Ltree@166f3e92\":\"9cdfa9b8-8ed5-487b-99ed-67a6fa9e0854\",\"fr.inra.oresing.persistence.Ltree@166f3e91\":\"cde57b29-0f1e-436f-913b-f5f64b76a147\",\"fr.inra.oresing.persistence.Ltree@ecde8541\":\"5794d39b-8985-46f2-8b09-36fdc989674b\"},\"configuration\":{\"pattern\":null,\"refType\":\"sites\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":true,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"site\",\"component\":\"site_bassin\",\"id\":\"site_site_bassin\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"sites\"},\"referenceValues\":{\"id\":\"5794d39b-8985-46f2-8b09-36fdc989674b\",\"creationDate\":1658941447153,\"updateDate\":1658941447153,\"application\":\"ac3135e8-bd7d-479e-9d58-dc0a79690226\",\"referenceType\":\"sites\",\"hierarchicalKey\":{\"sql\":\"plateforme.nivelle.nivelle__p1\"},\"hierarchicalReference\":{\"sql\":\"type_de_sites.sites.sites\"},\"naturalKey\":{\"sql\":\"nivelle__p1\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"zet_nom_en\":\"P1\",\"zet_nom_fr\":\"P1\",\"zet_nom_key\":\"p1\",\"__display_en\":\"P1\",\"__display_fr\":\"P1\",\"tze_type_nom\":\"plateforme\",\"zet_chemin_parent\":\"nivelle\",\"zet_description_en\":\"\",\"zet_description_fr\":\"\"}}},\"refsLinkedTo\":{\"sites\":[\"e61867bd-e4dd-48fb-b719-7e752b06ce69\"],\"type_de_sites\":[\"43511ea5-3ce7-4133-aa79-62251fb8bf40\"]},\"binaryFile\":\"ce1bc9d4-5850-49b8-a61a-0cee4805cb8a\"},\"configuration\":null},\"projet_value\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@6e039814\":\"67afe25b-7499-4f17-918d-b15c1a241768\",\"fr.inra.oresing.persistence.Ltree@6fa808f4\":\"8e28be69-142b-4a43-99b3-af32022c11c2\"},\"configuration\":{\"pattern\":null,\"refType\":\"projet\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":true,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"projet\",\"component\":\"value\",\"id\":\"projet_value\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"projet\"},\"referenceValues\":{\"id\":\"8e28be69-142b-4a43-99b3-af32022c11c2\",\"creationDate\":1658941447059,\"updateDate\":1658941447059,\"application\":\"ac3135e8-bd7d-479e-9d58-dc0a79690226\",\"referenceType\":\"projet\",\"hierarchicalKey\":{\"sql\":\"projet_atlantique\"},\"hierarchicalReference\":{\"sql\":\"projet\"},\"naturalKey\":{\"sql\":\"projet_atlantique\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"nom_en\":\"Atlantic project\",\"nom_fr\":\"Projet Atlantique\",\"nom_key\":\"projet_atlantique\",\"__display_en\":\"Atlantic project\",\"__display_fr\":\"Projet Atlantique\",\"definition_en\":\"Atlantic project\",\"definition_fr\":\"Projet Atlantique\"}}},\"refsLinkedTo\":{},\"binaryFile\":\"ce917e12-4a47-41b9-8574-63c5c0b53e82\"},\"configuration\":null},\"Couleur des individus_unit\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@f9da80f0\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\"},\"configuration\":{\"pattern\":null,\"refType\":\"unites\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":false,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"Couleur des individus\",\"component\":\"unit\",\"id\":\"Couleur des individus_unit\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"unites\"},\"referenceValues\":{\"id\":\"97cf19c9-9ee3-431e-bd46-cb0e848e9c31\",\"creationDate\":1658941447040,\"updateDate\":1658941447040,\"application\":\"ac3135e8-bd7d-479e-9d58-dc0a79690226\",\"referenceType\":\"unites\",\"hierarchicalKey\":{\"sql\":\"sans_unite\"},\"hierarchicalReference\":{\"sql\":\"unites\"},\"naturalKey\":{\"sql\":\"sans_unite\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"nom_en\":\"no unit\",\"nom_fr\":\"sans unite\",\"code_en\":\"*\",\"code_fr\":\"*\",\"nom_key\":\"sans_unite\",\"code_key\":\"*\",\"__display_en\":\"no unit (*)\",\"__display_fr\":\"sans unite (*)\"}}},\"refsLinkedTo\":{},\"binaryFile\":\"bdaef483-dc50-4033-b827-3028df0dc73d\"},\"configuration\":null},\"Couleur des individus_value\":{\"referenceLineChecker\":{\"referenceValues\":{\"fr.inra.oresing.persistence.Ltree@b8383a44\":\"8da87b67-beab-424b-a43d-d314e8da2fd3\",\"fr.inra.oresing.persistence.Ltree@b82f3b8d\":\"f69e8bef-73a8-4400-a455-5e378a95ea6c\",\"fr.inra.oresing.persistence.Ltree@4e9b3f19\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\"},\"configuration\":{\"pattern\":null,\"refType\":\"valeurs_qualitatives\",\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":true,\"multiplicity\":\"ONE\"},\"target\":{\"variable\":\"Couleur des individus\",\"component\":\"value\",\"id\":\"Couleur des individus_value\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"sqlType\":\"LTREE\",\"refType\":\"valeurs_qualitatives\"},\"referenceValues\":{\"id\":\"f7710a1b-e435-4dd3-96bc-39d136b4e082\",\"creationDate\":1658941447080,\"updateDate\":1658941447080,\"application\":\"ac3135e8-bd7d-479e-9d58-dc0a79690226\",\"referenceType\":\"valeurs_qualitatives\",\"hierarchicalKey\":{\"sql\":\"couleur_des_individus__rouge\"},\"hierarchicalReference\":{\"sql\":\"valeurs_qualitatives\"},\"naturalKey\":{\"sql\":\"couleur_des_individus__rouge\"},\"refValues\":{\"evaluationContext\":{\"datum\":{\"nom_en\":\"Color of individuals\",\"nom_fr\":\"couleur des individus\",\"nom_key\":\"couleur_des_individus\",\"valeur_en\":\"red\",\"valeur_fr\":\"rouge\",\"valeur_key\":\"rouge\",\"__display_en\":\"red\",\"__display_fr\":\"rouge\"}}},\"refsLinkedTo\":{},\"binaryFile\":\"6ca47df8-a0b1-4b59-8205-1cedd32b0c71\"},\"configuration\":null}},\"IntegerChecker\":{\"Nombre d'individus_value\":{\"target\":{\"variable\":\"Nombre d'individus\",\"component\":\"value\",\"id\":\"Nombre d'individus_value\",\"type\":\"PARAM_VARIABLE_COMPONENT_KEY\"},\"configuration\":{\"pattern\":null,\"refType\":null,\"groovy\":null,\"duration\":null,\"transformation\":{\"codify\":false,\"groovy\":null},\"required\":false,\"multiplicity\":\"ONE\"},\"sqlType\":\"INTEGER\"}}}}" \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/ore/monsore/monsoere.json b/ui/cypress/fixtures/applications/ore/monsore/monsoere.json index 5f93641bb9d269b05fba6091e9660ec55c54a606..c9bac9eb36d16a8046eacc8fd99b75354515e1a9 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/monsoere.json +++ b/ui/cypress/fixtures/applications/ore/monsore/monsoere.json @@ -1 +1 @@ -"{\"id\":\"9442e86e-5cc4-4276-954f-d9881e49463f\",\"name\":\"monsore\",\"title\":\"MONSORE\",\"comment\":\"commentaire\",\"internationalization\":{\"application\":{\"internationalizationName\":{\"en\":\"SOERE my SOERE with repository\",\"fr\":\"SOERE mon SOERE avec dépôt\"}},\"references\":{\"themes\":{\"internationalizationName\":{\"en\":\"Thematic\",\"fr\":\"Thème\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"description_fr\":{\"en\":\"description_en\",\"fr\":\"description_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{nom_key}\",\"fr\":\"{nom_key}\"}},\"internationalizedValidations\":{}},\"especes\":{\"internationalizationName\":{\"en\":\"Species\",\"fr\":\"Espèces\"},\"internationalizedColumns\":{\"esp_definition_fr\":{\"en\":\"esp_definition_en\",\"fr\":\"esp_definition_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{esp_nom}\",\"fr\":\"{esp_nom}\"}},\"internationalizedValidations\":{}},\"variables\":{\"internationalizationName\":{\"en\":\"Variables\",\"fr\":\"Variables\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"definition_fr\":{\"en\":\"definition_en\",\"fr\":\"definition_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{nom_key}\",\"fr\":\"{nom_key}\"}},\"internationalizedValidations\":{}},\"type_de_sites\":{\"internationalizationName\":{\"en\":\"Sites types\",\"fr\":\"Types de sites\"},\"internationalizedColumns\":{\"tze_nom_key\":{\"en\":\"tze_nom_en\",\"fr\":\"tze_nom_fr\"},\"tze_definition_fr\":{\"en\":\"tze_definition_en\",\"fr\":\"tze_definition_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{tze_nom_key}\",\"fr\":\"{tze_nom_key}\"}},\"internationalizedValidations\":{}},\"unites\":{\"internationalizationName\":{\"en\":\"Units\",\"fr\":\"Unités\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"code_key\":{\"en\":\"code_en\",\"fr\":\"code_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{nom_key} ({code_key})\",\"fr\":\"{nom_key} ({code_key})\"}},\"internationalizedValidations\":{}},\"type de fichiers\":{\"internationalizationName\":{\"en\":\"Files types\",\"fr\":\"Types de fichiers\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"description_fr\":{\"en\":\"description_en\",\"fr\":\"description_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{nom_key}\",\"fr\":\"{nom_key}\"}},\"internationalizedValidations\":{}},\"projet\":{\"internationalizationName\":{\"en\":\"Project\",\"fr\":\"Projet\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"definition_fr\":{\"en\":\"definition_en\",\"fr\":\"definition_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{nom_key}\",\"fr\":\"{nom_key}\"}},\"internationalizedValidations\":{}},\"valeurs_qualitatives\":{\"internationalizationName\":{\"en\":\"Qualitative values\",\"fr\":\"Valeurs qualitatives\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"valeur_key\":{\"en\":\"valeur_en\",\"fr\":\"valeur_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{valeur_key}\",\"fr\":\"{valeur_key}\"}},\"internationalizedValidations\":{}},\"variables_et_unites_par_types_de_donnees\":{\"internationalizationName\":{\"en\":\"Variables and units by data type\",\"fr\":\"Variables et unités par type de données\"},\"internationalizedColumns\":null,\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"datatype name : {nom du type de données}, variable name : {nom de la variable}, : unit name {nom de l'unité}\",\"fr\":\"nom du type de données : {nom du type de données}, nom de la variable : {nom de la variable}, : nom de l'unité {nom de l'unité}\"}},\"internationalizedValidations\":{\"uniteRef\":{\"fr\":\"référence à l'unité'\"},\"variableRef\":{\"fr\":\"référence à la variable\"},\"checkDatatype\":{\"fr\":\"test\"}}},\"sites\":{\"internationalizationName\":{\"en\":\"Site\",\"fr\":\"Site\"},\"internationalizedColumns\":{\"zet_nom_key\":{\"en\":\"zet_nom_en\",\"fr\":\"zet_nom_fr\"},\"zet_description_fr\":{\"en\":\"zet_description_en\",\"fr\":\"zet_description_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{zet_nom_key}\",\"fr\":\"{zet_nom_key}\"}},\"internationalizedValidations\":{\"typeSitesRef\":{\"fr\":\"référence au type de site\"},\"siteParentRef\":{\"fr\":\"référence à la colonne parent\"}}},\"types_de_donnees_par_themes_de_sites_et_projet\":{\"internationalizationName\":{\"en\":\"Data types by site and project\",\"fr\":\"Types de données par site et projet\"},\"internationalizedColumns\":null,\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"projet name: {nom du projet}, site name : {nom du site}, theme name : {nom du thème}, data type name : {nom du type de données}\",\"fr\":\"nom du projet: {nom du projet}, nom du site : {nom du site}, nom du thème : {nom du thème}, nom du type de données : {nom du type de données}\"}},\"internationalizedValidations\":{\"sitesRef\":{\"fr\":\"référence au site\"},\"projetRef\":{\"fr\":\"référence au projet\"},\"themesRef\":{\"fr\":\"référence au theme\"},\"checkDatatype\":{\"fr\":\"test\"}}}},\"dataTypes\":{\"pem\":{\"internationalizationName\":{\"en\":\"Trap in ascent\",\"fr\":\"Piégeage en Montée\"},\"internationalizedColumns\":null,\"authorization\":{\"dataGroups\":{\"referentiel\":{\"internationalizationName\":{\"en\":\"Repositories\",\"fr\":\"Référentiels\"}},\"qualitatif\":{\"internationalizationName\":{\"en\":\"Qualitative\",\"fr\":\"Qualitatif\"}},\"quantitatif\":{\"internationalizationName\":{\"en\":\"Quantitative\",\"fr\":\"Quantitatif\"}}},\"authorizationScopes\":{\"localization\":{\"internationalizationName\":{\"en\":\"Localization\",\"fr\":\"Localisation\"}},\"projet\":{\"internationalizationName\":{\"en\":\"Project\",\"fr\":\"Projet\"}}},\"columnsDescription\":{\"depot\":{\"internationalizationName\":{\"en\":\"Deposit\",\"fr\":\"Dépôt\"}},\"publication\":{\"internationalizationName\":{\"en\":\"Publication\",\"fr\":\"Publication\"}},\"admin\":{\"internationalizationName\":{\"en\":\"Administration\",\"fr\":\"Administration\"}},\"extraction\":{\"internationalizationName\":{\"en\":\"Extraction\",\"fr\":\"Extraction\"}},\"delete\":{\"internationalizationName\":{\"en\":\"Deletion\",\"fr\":\"Suppression\"}}}},\"internationalizationDisplay\":{\"especes\":{\"pattern\":{\"en\":\"espèce :{esp_nom}\",\"fr\":\"espèce :{esp_nom}\"}}},\"internationalizedValidations\":{\"unitOfColor\":{\"fr\":\"vérifie l'unité de la couleur des individus\"},\"unitOfIndividus\":{\"fr\":\"vérifie l'unité du nombre d'individus\"}}}}},\"references\":{\"types_de_donnees_par_themes_de_sites_et_projet\":{\"id\":\"types_de_donnees_par_themes_de_sites_et_projet\",\"label\":\"types_de_donnees_par_themes_de_sites_et_projet\",\"children\":[],\"columns\":{\"nom du site\":{\"id\":\"nom du site\",\"title\":\"nom du site\",\"key\":true,\"linkedTo\":null},\"nom du projet\":{\"id\":\"nom du projet\",\"title\":\"nom du projet\",\"key\":true,\"linkedTo\":null},\"nom du thème\":{\"id\":\"nom du thème\",\"title\":\"nom du thème\",\"key\":true,\"linkedTo\":null},\"nom du type de données\":{\"id\":\"nom du type de données\",\"title\":\"nom du type de données\",\"key\":true,\"linkedTo\":null}},\"dynamicColumns\":{}},\"variables_et_unites_par_types_de_donnees\":{\"id\":\"variables_et_unites_par_types_de_donnees\",\"label\":\"variables_et_unites_par_types_de_donnees\",\"children\":[],\"columns\":{\"nom de l'unité\":{\"id\":\"nom de l'unité\",\"title\":\"nom de l'unité\",\"key\":false,\"linkedTo\":null},\"nom de la variable\":{\"id\":\"nom de la variable\",\"title\":\"nom de la variable\",\"key\":true,\"linkedTo\":null},\"nom du type de données\":{\"id\":\"nom du type de données\",\"title\":\"nom du type de données\",\"key\":true,\"linkedTo\":null}},\"dynamicColumns\":{}},\"valeurs_qualitatives\":{\"id\":\"valeurs_qualitatives\",\"label\":\"valeurs_qualitatives\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"valeur_en\":{\"id\":\"valeur_en\",\"title\":\"valeur_en\",\"key\":false,\"linkedTo\":null},\"valeur_fr\":{\"id\":\"valeur_fr\",\"title\":\"valeur_fr\",\"key\":false,\"linkedTo\":null},\"valeur_key\":{\"id\":\"valeur_key\",\"title\":\"valeur_key\",\"key\":true,\"linkedTo\":null}},\"dynamicColumns\":{}},\"type de fichiers\":{\"id\":\"type de fichiers\",\"label\":\"type de fichiers\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"description_en\":{\"id\":\"description_en\",\"title\":\"description_en\",\"key\":false,\"linkedTo\":null},\"description_fr\":{\"id\":\"description_fr\",\"title\":\"description_fr\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"type_de_sites\":{\"id\":\"type_de_sites\",\"label\":\"type_de_sites\",\"children\":[\"sites\"],\"columns\":{\"tze_nom_en\":{\"id\":\"tze_nom_en\",\"title\":\"tze_nom_en\",\"key\":false,\"linkedTo\":null},\"tze_nom_fr\":{\"id\":\"tze_nom_fr\",\"title\":\"tze_nom_fr\",\"key\":false,\"linkedTo\":null},\"tze_nom_key\":{\"id\":\"tze_nom_key\",\"title\":\"tze_nom_key\",\"key\":true,\"linkedTo\":null},\"tze_definition_en\":{\"id\":\"tze_definition_en\",\"title\":\"tze_definition_en\",\"key\":false,\"linkedTo\":null},\"tze_definition_fr\":{\"id\":\"tze_definition_fr\",\"title\":\"tze_definition_fr\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"variables\":{\"id\":\"variables\",\"label\":\"variables\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"definition_en\":{\"id\":\"definition_en\",\"title\":\"definition_en\",\"key\":false,\"linkedTo\":null},\"definition_fr\":{\"id\":\"definition_fr\",\"title\":\"definition_fr\",\"key\":false,\"linkedTo\":null},\"isQualitative\":{\"id\":\"isQualitative\",\"title\":\"isQualitative\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"especes\":{\"id\":\"especes\",\"label\":\"especes\",\"children\":[],\"columns\":{\"esp_nom\":{\"id\":\"esp_nom\",\"title\":\"esp_nom\",\"key\":true,\"linkedTo\":null},\"esp_definition_en\":{\"id\":\"esp_definition_en\",\"title\":\"esp_definition_en\",\"key\":false,\"linkedTo\":null},\"esp_definition_fr\":{\"id\":\"esp_definition_fr\",\"title\":\"esp_definition_fr\",\"key\":false,\"linkedTo\":null},\"colonne_homonyme_entre_referentiels\":{\"id\":\"colonne_homonyme_entre_referentiels\",\"title\":\"colonne_homonyme_entre_referentiels\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"unites\":{\"id\":\"unites\",\"label\":\"unites\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"code_en\":{\"id\":\"code_en\",\"title\":\"code_en\",\"key\":false,\"linkedTo\":null},\"code_fr\":{\"id\":\"code_fr\",\"title\":\"code_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"code_key\":{\"id\":\"code_key\",\"title\":\"code_key\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"themes\":{\"id\":\"themes\",\"label\":\"themes\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"description_en\":{\"id\":\"description_en\",\"title\":\"description_en\",\"key\":false,\"linkedTo\":null},\"description_fr\":{\"id\":\"description_fr\",\"title\":\"description_fr\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"projet\":{\"id\":\"projet\",\"label\":\"projet\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"definition_en\":{\"id\":\"definition_en\",\"title\":\"definition_en\",\"key\":false,\"linkedTo\":null},\"definition_fr\":{\"id\":\"definition_fr\",\"title\":\"definition_fr\",\"key\":false,\"linkedTo\":null},\"colonne_homonyme_entre_referentiels\":{\"id\":\"colonne_homonyme_entre_referentiels\",\"title\":\"colonne_homonyme_entre_referentiels\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"sites\":{\"id\":\"sites\",\"label\":\"sites\",\"children\":[],\"columns\":{\"zet_nom_en\":{\"id\":\"zet_nom_en\",\"title\":\"zet_nom_en\",\"key\":false,\"linkedTo\":null},\"zet_nom_fr\":{\"id\":\"zet_nom_fr\",\"title\":\"zet_nom_fr\",\"key\":false,\"linkedTo\":null},\"zet_nom_key\":{\"id\":\"zet_nom_key\",\"title\":\"zet_nom_key\",\"key\":true,\"linkedTo\":null},\"tze_type_nom\":{\"id\":\"tze_type_nom\",\"title\":\"tze_type_nom\",\"key\":false,\"linkedTo\":null},\"zet_chemin_parent\":{\"id\":\"zet_chemin_parent\",\"title\":\"zet_chemin_parent\",\"key\":true,\"linkedTo\":null},\"zet_description_en\":{\"id\":\"zet_description_en\",\"title\":\"zet_description_en\",\"key\":false,\"linkedTo\":null},\"zet_description_fr\":{\"id\":\"zet_description_fr\",\"title\":\"zet_description_fr\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}}},\"dataTypes\":{\"pem\":{\"id\":\"pem\",\"label\":\"pem\",\"variables\":{\"date\":{\"id\":\"date\",\"label\":\"date\",\"components\":{\"value\":{\"id\":\"value\",\"label\":\"value\"}},\"chartDescription\":null},\"site\":{\"id\":\"site\",\"label\":\"site\",\"components\":{\"bassin\":{\"id\":\"bassin\",\"label\":\"bassin\"},\"chemin\":{\"id\":\"chemin\",\"label\":\"chemin\"},\"plateforme\":{\"id\":\"plateforme\",\"label\":\"plateforme\"},\"site_bassin\":{\"id\":\"site_bassin\",\"label\":\"site_bassin\"}},\"chartDescription\":null},\"espece\":{\"id\":\"espece\",\"label\":\"espece\",\"components\":{\"value\":{\"id\":\"value\",\"label\":\"value\"}},\"chartDescription\":null},\"projet\":{\"id\":\"projet\",\"label\":\"projet\",\"components\":{\"value\":{\"id\":\"value\",\"label\":\"value\"}},\"chartDescription\":null},\"Nombre d'individus\":{\"id\":\"Nombre d'individus\",\"label\":\"Nombre d'individus\",\"components\":{\"unit\":{\"id\":\"unit\",\"label\":\"unit\"},\"value\":{\"id\":\"value\",\"label\":\"value\"}},\"chartDescription\":null},\"Couleur des individus\":{\"id\":\"Couleur des individus\",\"label\":\"Couleur des individus\",\"components\":{\"unit\":{\"id\":\"unit\",\"label\":\"unit\"},\"value\":{\"id\":\"value\",\"label\":\"value\"}},\"chartDescription\":null}},\"repository\":null,\"hasAuthorizations\":false}},\"referenceSynthesis\":[{\"referenceType\":\"variables\",\"lineCount\":2},{\"referenceType\":\"especes\",\"lineCount\":7},{\"referenceType\":\"type_de_sites\",\"lineCount\":2},{\"referenceType\":\"types_de_donnees_par_themes_de_sites_et_projet\",\"lineCount\":9},{\"referenceType\":\"themes\",\"lineCount\":1},{\"referenceType\":\"valeurs_qualitatives\",\"lineCount\":3},{\"referenceType\":\"projet\",\"lineCount\":2},{\"referenceType\":\"type de fichiers\",\"lineCount\":3},{\"referenceType\":\"sites\",\"lineCount\":9},{\"referenceType\":\"unites\",\"lineCount\":1},{\"referenceType\":\"variables_et_unites_par_types_de_donnees\",\"lineCount\":2}]}" \ No newline at end of file +"{\"id\":\"ac3135e8-bd7d-479e-9d58-dc0a79690226\",\"name\":\"monsore\",\"title\":\"MONSORE\",\"comment\":\"commentaire\",\"internationalization\":{\"application\":{\"internationalizationName\":{\"en\":\"SOERE my SOERE with repository\",\"fr\":\"SOERE mon SOERE avec dépôt\"}},\"references\":{\"themes\":{\"internationalizationName\":{\"en\":\"Thematic\",\"fr\":\"Thème\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"description_fr\":{\"en\":\"description_en\",\"fr\":\"description_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{nom_key}\",\"fr\":\"{nom_key}\"}},\"internationalizedValidations\":{}},\"especes\":{\"internationalizationName\":{\"en\":\"Species\",\"fr\":\"Espèces\"},\"internationalizedColumns\":{\"esp_definition_fr\":{\"en\":\"esp_definition_en\",\"fr\":\"esp_definition_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{esp_nom}\",\"fr\":\"{esp_nom}\"}},\"internationalizedValidations\":{}},\"variables\":{\"internationalizationName\":{\"en\":\"Variables\",\"fr\":\"Variables\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"definition_fr\":{\"en\":\"definition_en\",\"fr\":\"definition_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{nom_key}\",\"fr\":\"{nom_key}\"}},\"internationalizedValidations\":{}},\"type_de_sites\":{\"internationalizationName\":{\"en\":\"Sites types\",\"fr\":\"Types de sites\"},\"internationalizedColumns\":{\"tze_nom_key\":{\"en\":\"tze_nom_en\",\"fr\":\"tze_nom_fr\"},\"tze_definition_fr\":{\"en\":\"tze_definition_en\",\"fr\":\"tze_definition_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{tze_nom_key}\",\"fr\":\"{tze_nom_key}\"}},\"internationalizedValidations\":{}},\"unites\":{\"internationalizationName\":{\"en\":\"Units\",\"fr\":\"Unités\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"code_key\":{\"en\":\"code_en\",\"fr\":\"code_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{nom_key} ({code_key})\",\"fr\":\"{nom_key} ({code_key})\"}},\"internationalizedValidations\":{}},\"type de fichiers\":{\"internationalizationName\":{\"en\":\"Files types\",\"fr\":\"Types de fichiers\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"description_fr\":{\"en\":\"description_en\",\"fr\":\"description_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{nom_key}\",\"fr\":\"{nom_key}\"}},\"internationalizedValidations\":{}},\"projet\":{\"internationalizationName\":{\"en\":\"Project\",\"fr\":\"Projet\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"definition_fr\":{\"en\":\"definition_en\",\"fr\":\"definition_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{nom_key}\",\"fr\":\"{nom_key}\"}},\"internationalizedValidations\":{}},\"valeurs_qualitatives\":{\"internationalizationName\":{\"en\":\"Qualitative values\",\"fr\":\"Valeurs qualitatives\"},\"internationalizedColumns\":{\"nom_key\":{\"en\":\"nom_en\",\"fr\":\"nom_fr\"},\"valeur_key\":{\"en\":\"valeur_en\",\"fr\":\"valeur_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{valeur_key}\",\"fr\":\"{valeur_key}\"}},\"internationalizedValidations\":{}},\"variables_et_unites_par_types_de_donnees\":{\"internationalizationName\":{\"en\":\"Variables and units by data type\",\"fr\":\"Variables et unités par type de données\"},\"internationalizedColumns\":null,\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"datatype name : {nom du type de données}, variable name : {nom de la variable}, : unit name {nom de l'unité}\",\"fr\":\"nom du type de données : {nom du type de données}, nom de la variable : {nom de la variable}, : nom de l'unité {nom de l'unité}\"}},\"internationalizedValidations\":{\"uniteRef\":{\"fr\":\"référence à l'unité'\"},\"variableRef\":{\"fr\":\"référence à la variable\"},\"checkDatatype\":{\"fr\":\"test\"}}},\"sites\":{\"internationalizationName\":{\"en\":\"Site\",\"fr\":\"Site\"},\"internationalizedColumns\":{\"zet_nom_key\":{\"en\":\"zet_nom_en\",\"fr\":\"zet_nom_fr\"},\"zet_description_fr\":{\"en\":\"zet_description_en\",\"fr\":\"zet_description_fr\"}},\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"{zet_nom_key}\",\"fr\":\"{zet_nom_key}\"}},\"internationalizedValidations\":{\"typeSitesRef\":{\"fr\":\"référence au type de site\"},\"siteParentRef\":{\"fr\":\"référence à la colonne parent\"}}},\"types_de_donnees_par_themes_de_sites_et_projet\":{\"internationalizationName\":{\"en\":\"Data types by site and project\",\"fr\":\"Types de données par site et projet\"},\"internationalizedColumns\":null,\"internationalizedDynamicColumns\":{},\"internationalizationDisplay\":{\"pattern\":{\"en\":\"projet name: {nom du projet}, site name : {nom du site}, theme name : {nom du thème}, data type name : {nom du type de données}\",\"fr\":\"nom du projet: {nom du projet}, nom du site : {nom du site}, nom du thème : {nom du thème}, nom du type de données : {nom du type de données}\"}},\"internationalizedValidations\":{\"sitesRef\":{\"fr\":\"référence au site\"},\"projetRef\":{\"fr\":\"référence au projet\"},\"themesRef\":{\"fr\":\"référence au theme\"},\"checkDatatype\":{\"fr\":\"test\"}}}},\"dataTypes\":{\"pem\":{\"internationalizationName\":{\"en\":\"Trap in ascent\",\"fr\":\"Piégeage en Montée\"},\"internationalizedColumns\":null,\"authorization\":{\"dataGroups\":{\"referentiel\":{\"internationalizationName\":{\"en\":\"Repositories\",\"fr\":\"Référentiels\"}},\"qualitatif\":{\"internationalizationName\":{\"en\":\"Qualitative\",\"fr\":\"Qualitatif\"}},\"quantitatif\":{\"internationalizationName\":{\"en\":\"Quantitative\",\"fr\":\"Quantitatif\"}}},\"authorizationScopes\":{\"localization\":{\"internationalizationName\":{\"en\":\"Localization\",\"fr\":\"Localisation\"}},\"projet\":{\"internationalizationName\":{\"en\":\"Project\",\"fr\":\"Projet\"}}},\"columnsDescription\":{\"depot\":{\"internationalizationName\":{\"en\":\"Deposit\",\"fr\":\"Dépôt\"}},\"publication\":{\"internationalizationName\":{\"en\":\"Publication\",\"fr\":\"Publication\"}},\"admin\":{\"internationalizationName\":{\"en\":\"Administration\",\"fr\":\"Administration\"}},\"extraction\":{\"internationalizationName\":{\"en\":\"Extraction\",\"fr\":\"Extraction\"}},\"delete\":{\"internationalizationName\":{\"en\":\"Deletion\",\"fr\":\"Suppression\"}}}},\"internationalizationDisplay\":{\"especes\":{\"pattern\":{\"en\":\"espèce :{esp_nom}\",\"fr\":\"espèce :{esp_nom}\"}}},\"internationalizedValidations\":{\"unitOfColor\":{\"fr\":\"vérifie l'unité de la couleur des individus\"},\"unitOfIndividus\":{\"fr\":\"vérifie l'unité du nombre d'individus\"}}}}},\"references\":{\"types_de_donnees_par_themes_de_sites_et_projet\":{\"id\":\"types_de_donnees_par_themes_de_sites_et_projet\",\"label\":\"types_de_donnees_par_themes_de_sites_et_projet\",\"children\":[],\"columns\":{\"nom du site\":{\"id\":\"nom du site\",\"title\":\"nom du site\",\"key\":true,\"linkedTo\":null},\"nom du projet\":{\"id\":\"nom du projet\",\"title\":\"nom du projet\",\"key\":true,\"linkedTo\":null},\"nom du thème\":{\"id\":\"nom du thème\",\"title\":\"nom du thème\",\"key\":true,\"linkedTo\":null},\"nom du type de données\":{\"id\":\"nom du type de données\",\"title\":\"nom du type de données\",\"key\":true,\"linkedTo\":null}},\"dynamicColumns\":{}},\"variables_et_unites_par_types_de_donnees\":{\"id\":\"variables_et_unites_par_types_de_donnees\",\"label\":\"variables_et_unites_par_types_de_donnees\",\"children\":[],\"columns\":{\"nom de l'unité\":{\"id\":\"nom de l'unité\",\"title\":\"nom de l'unité\",\"key\":false,\"linkedTo\":null},\"nom de la variable\":{\"id\":\"nom de la variable\",\"title\":\"nom de la variable\",\"key\":true,\"linkedTo\":null},\"nom du type de données\":{\"id\":\"nom du type de données\",\"title\":\"nom du type de données\",\"key\":true,\"linkedTo\":null}},\"dynamicColumns\":{}},\"valeurs_qualitatives\":{\"id\":\"valeurs_qualitatives\",\"label\":\"valeurs_qualitatives\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"valeur_en\":{\"id\":\"valeur_en\",\"title\":\"valeur_en\",\"key\":false,\"linkedTo\":null},\"valeur_fr\":{\"id\":\"valeur_fr\",\"title\":\"valeur_fr\",\"key\":false,\"linkedTo\":null},\"valeur_key\":{\"id\":\"valeur_key\",\"title\":\"valeur_key\",\"key\":true,\"linkedTo\":null}},\"dynamicColumns\":{}},\"type de fichiers\":{\"id\":\"type de fichiers\",\"label\":\"type de fichiers\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"description_en\":{\"id\":\"description_en\",\"title\":\"description_en\",\"key\":false,\"linkedTo\":null},\"description_fr\":{\"id\":\"description_fr\",\"title\":\"description_fr\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"type_de_sites\":{\"id\":\"type_de_sites\",\"label\":\"type_de_sites\",\"children\":[\"sites\"],\"columns\":{\"tze_nom_en\":{\"id\":\"tze_nom_en\",\"title\":\"tze_nom_en\",\"key\":false,\"linkedTo\":null},\"tze_nom_fr\":{\"id\":\"tze_nom_fr\",\"title\":\"tze_nom_fr\",\"key\":false,\"linkedTo\":null},\"tze_nom_key\":{\"id\":\"tze_nom_key\",\"title\":\"tze_nom_key\",\"key\":true,\"linkedTo\":null},\"tze_definition_en\":{\"id\":\"tze_definition_en\",\"title\":\"tze_definition_en\",\"key\":false,\"linkedTo\":null},\"tze_definition_fr\":{\"id\":\"tze_definition_fr\",\"title\":\"tze_definition_fr\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"variables\":{\"id\":\"variables\",\"label\":\"variables\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"definition_en\":{\"id\":\"definition_en\",\"title\":\"definition_en\",\"key\":false,\"linkedTo\":null},\"definition_fr\":{\"id\":\"definition_fr\",\"title\":\"definition_fr\",\"key\":false,\"linkedTo\":null},\"isQualitative\":{\"id\":\"isQualitative\",\"title\":\"isQualitative\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"especes\":{\"id\":\"especes\",\"label\":\"especes\",\"children\":[],\"columns\":{\"esp_nom\":{\"id\":\"esp_nom\",\"title\":\"esp_nom\",\"key\":true,\"linkedTo\":null},\"esp_definition_en\":{\"id\":\"esp_definition_en\",\"title\":\"esp_definition_en\",\"key\":false,\"linkedTo\":null},\"esp_definition_fr\":{\"id\":\"esp_definition_fr\",\"title\":\"esp_definition_fr\",\"key\":false,\"linkedTo\":null},\"colonne_homonyme_entre_referentiels\":{\"id\":\"colonne_homonyme_entre_referentiels\",\"title\":\"colonne_homonyme_entre_referentiels\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"unites\":{\"id\":\"unites\",\"label\":\"unites\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"code_en\":{\"id\":\"code_en\",\"title\":\"code_en\",\"key\":false,\"linkedTo\":null},\"code_fr\":{\"id\":\"code_fr\",\"title\":\"code_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"code_key\":{\"id\":\"code_key\",\"title\":\"code_key\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"themes\":{\"id\":\"themes\",\"label\":\"themes\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"description_en\":{\"id\":\"description_en\",\"title\":\"description_en\",\"key\":false,\"linkedTo\":null},\"description_fr\":{\"id\":\"description_fr\",\"title\":\"description_fr\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"projet\":{\"id\":\"projet\",\"label\":\"projet\",\"children\":[],\"columns\":{\"nom_en\":{\"id\":\"nom_en\",\"title\":\"nom_en\",\"key\":false,\"linkedTo\":null},\"nom_fr\":{\"id\":\"nom_fr\",\"title\":\"nom_fr\",\"key\":false,\"linkedTo\":null},\"nom_key\":{\"id\":\"nom_key\",\"title\":\"nom_key\",\"key\":true,\"linkedTo\":null},\"definition_en\":{\"id\":\"definition_en\",\"title\":\"definition_en\",\"key\":false,\"linkedTo\":null},\"definition_fr\":{\"id\":\"definition_fr\",\"title\":\"definition_fr\",\"key\":false,\"linkedTo\":null},\"colonne_homonyme_entre_referentiels\":{\"id\":\"colonne_homonyme_entre_referentiels\",\"title\":\"colonne_homonyme_entre_referentiels\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}},\"sites\":{\"id\":\"sites\",\"label\":\"sites\",\"children\":[],\"columns\":{\"zet_nom_en\":{\"id\":\"zet_nom_en\",\"title\":\"zet_nom_en\",\"key\":false,\"linkedTo\":null},\"zet_nom_fr\":{\"id\":\"zet_nom_fr\",\"title\":\"zet_nom_fr\",\"key\":false,\"linkedTo\":null},\"zet_nom_key\":{\"id\":\"zet_nom_key\",\"title\":\"zet_nom_key\",\"key\":true,\"linkedTo\":null},\"tze_type_nom\":{\"id\":\"tze_type_nom\",\"title\":\"tze_type_nom\",\"key\":false,\"linkedTo\":null},\"zet_chemin_parent\":{\"id\":\"zet_chemin_parent\",\"title\":\"zet_chemin_parent\",\"key\":true,\"linkedTo\":null},\"zet_description_en\":{\"id\":\"zet_description_en\",\"title\":\"zet_description_en\",\"key\":false,\"linkedTo\":null},\"zet_description_fr\":{\"id\":\"zet_description_fr\",\"title\":\"zet_description_fr\",\"key\":false,\"linkedTo\":null}},\"dynamicColumns\":{}}},\"dataTypes\":{\"pem\":{\"id\":\"pem\",\"label\":\"pem\",\"variables\":{\"date\":{\"id\":\"date\",\"label\":\"date\",\"components\":{\"value\":{\"id\":\"value\",\"label\":\"value\"}},\"chartDescription\":null},\"site\":{\"id\":\"site\",\"label\":\"site\",\"components\":{\"bassin\":{\"id\":\"bassin\",\"label\":\"bassin\"},\"chemin\":{\"id\":\"chemin\",\"label\":\"chemin\"},\"plateforme\":{\"id\":\"plateforme\",\"label\":\"plateforme\"},\"site_bassin\":{\"id\":\"site_bassin\",\"label\":\"site_bassin\"}},\"chartDescription\":null},\"espece\":{\"id\":\"espece\",\"label\":\"espece\",\"components\":{\"value\":{\"id\":\"value\",\"label\":\"value\"}},\"chartDescription\":null},\"projet\":{\"id\":\"projet\",\"label\":\"projet\",\"components\":{\"value\":{\"id\":\"value\",\"label\":\"value\"}},\"chartDescription\":null},\"Nombre d'individus\":{\"id\":\"Nombre d'individus\",\"label\":\"Nombre d'individus\",\"components\":{\"unit\":{\"id\":\"unit\",\"label\":\"unit\"},\"value\":{\"id\":\"value\",\"label\":\"value\"}},\"chartDescription\":null},\"Couleur des individus\":{\"id\":\"Couleur des individus\",\"label\":\"Couleur des individus\",\"components\":{\"unit\":{\"id\":\"unit\",\"label\":\"unit\"},\"value\":{\"id\":\"value\",\"label\":\"value\"}},\"chartDescription\":null}},\"repository\":null,\"hasAuthorizations\":false}},\"referenceSynthesis\":[{\"referenceType\":\"variables\",\"lineCount\":2},{\"referenceType\":\"especes\",\"lineCount\":7},{\"referenceType\":\"type_de_sites\",\"lineCount\":2},{\"referenceType\":\"types_de_donnees_par_themes_de_sites_et_projet\",\"lineCount\":9},{\"referenceType\":\"themes\",\"lineCount\":1},{\"referenceType\":\"valeurs_qualitatives\",\"lineCount\":3},{\"referenceType\":\"projet\",\"lineCount\":2},{\"referenceType\":\"type de fichiers\",\"lineCount\":3},{\"referenceType\":\"sites\",\"lineCount\":9},{\"referenceType\":\"unites\",\"lineCount\":1},{\"referenceType\":\"variables_et_unites_par_types_de_donnees\",\"lineCount\":2}]}" \ No newline at end of file diff --git a/ui/cypress/fixtures/users/authorizations/highAuthorizations.json b/ui/cypress/fixtures/users/authorizations/highAuthorizations.json new file mode 100644 index 0000000000000000000000000000000000000000..043ba914be3f8d258c812bf25fe39f87ff7d2e79 --- /dev/null +++ b/ui/cypress/fixtures/users/authorizations/highAuthorizations.json @@ -0,0 +1,33 @@ +[ + { + "id": "66b3cbb7-2f3f-4db0-b63a-856ad7c2f006", + "login": "lambda", + "authorizedForApplicationCreation": true, + "superadmin": false, + "authorizations": [ + "toto","foret" + ] + }, + { + "id": "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9", + "login": "poussin", + "authorizedForApplicationCreation": true, + "superadmin": true, + "authorizations": [ + ".*", + "titi", + "ola", "pro" + ] + }, + { + "id": "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9", + "login": "acreator", + "authorizedForApplicationCreation": true, + "superadmin": false, + "authorizations": [ + "ola", + "foret", + "pro" + ] + } +] \ No newline at end of file diff --git a/ui/cypress/fixtures/users/login/application_creator_login.json b/ui/cypress/fixtures/users/login/application_creator_login.json new file mode 100644 index 0000000000000000000000000000000000000000..d3933b17347c446a7137b14e81f76840f8f90fe9 --- /dev/null +++ b/ui/cypress/fixtures/users/login/application_creator_login.json @@ -0,0 +1,9 @@ +{ + "id": "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9", + "login": "acreator", + "authorizedForApplicationCreation": true, + "superadmin": false, + "authorizations": [ + "ola","foret","pro" + ] +} \ No newline at end of file diff --git a/ui/cypress/fixtures/users/login/poussin_login.json b/ui/cypress/fixtures/users/login/poussin_login.json index f4122e4dccfcff185da721e9b2b9b5c421064b8c..b941ff3df60d34763af3d32115b598f4add302f5 100644 --- a/ui/cypress/fixtures/users/login/poussin_login.json +++ b/ui/cypress/fixtures/users/login/poussin_login.json @@ -1,5 +1,9 @@ { - "id": "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9", - "login": "poussin", - "authorizedForApplicationCreation": true + "id": "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9", + "login": "poussin", + "authorizedForApplicationCreation": true, + "superadmin": true, + "authorizations": [ + ".*" + ] } \ No newline at end of file diff --git a/ui/cypress/fixtures/users/users.json b/ui/cypress/fixtures/users/users.json index 4d570ee6aedf73043e959df6dcd7f30a2c26d23d..dea677f313afb16e43f7f7ea49d18566d97f0fd4 100644 --- a/ui/cypress/fixtures/users/users.json +++ b/ui/cypress/fixtures/users/users.json @@ -1,21 +1,33 @@ { - "admin": { - "id": "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9", - "creationDate": 1621610134187, - "updateDate": 1621610134187, - "login": "poussin", - "password": "xxxxxxxx", - "response": { - "fixture": "users/login/poussin_login.json", - "statusCode": 200, - "Content-Type:": "application/json" - } - }, - "visitor": { - "response": { - "body": "identifiants fournis incorrects", - "statusCode": 403, - "Content-Type:": "text/plain;charset=ISO-8859-1" - } + "admin": { + "id": "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9", + "creationDate": 1621610134187, + "updateDate": 1621610134187, + "login": "poussin", + "password": "xxxxxxxx", + "response": { + "fixture": "users/login/poussin_login.json", + "statusCode": 200, + "Content-Type:": "application/json" } + }, + "applicationCreator": { + "id": "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9", + "creationDate": 1621610134187, + "updateDate": 1621610134187, + "login": "acreator", + "password": "xxxxxxxx", + "response": { + "fixture": "users/login/application_creator_login.json", + "statusCode": 200, + "Content-Type:": "application/json" + } + }, + "visitor": { + "response": { + "body": "identifiants fournis incorrects", + "statusCode": 403, + "Content-Type:": "text/plain;charset=ISO-8859-1" + } + } } \ No newline at end of file diff --git a/ui/cypress/integration/HighAuthorizationScope_spec.js b/ui/cypress/integration/HighAuthorizationScope_spec.js new file mode 100644 index 0000000000000000000000000000000000000000..a16709dd01fa9a7f420258b38612877b028029aa --- /dev/null +++ b/ui/cypress/integration/HighAuthorizationScope_spec.js @@ -0,0 +1,98 @@ +/// <reference types="Cypress" /> + + +require('cypress-plugin-tab') +import Assert from "assert"; +const test1= function (response){ + Assert.equal(true, parseInt(response.request.body.match('66b3cbb7-2f3f-4db0-b63a-856ad7c2f006'))>0) +} +const test2= function (response){ + Assert.equal('other', response.request.body.match('other')) + Assert.equal(true, parseInt(response.request.body.match('66b3cbb7-2f3f-4db0-b63a-856ad7c2f006'))>0) +} +const test3= function (response){ + Assert.equal(true, parseInt(response.request.body.match('5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9'))>0) +} +const test4= function (response){ + Assert.equal(true, parseInt(response.request.body.match('5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9'))>0) + Assert.equal('titi', response.request.body.match('titi')) +} +describe('test high authorization application', () => { + beforeEach(() => { + cy.setLocale('fr'); + }); + + it.skip('Test authorization ajout', () => { + cy.login("admin", ['applications/ore/ore_application_description.json']) + cy.wait(['@postUserResponse', '@getApplicationResponse']) + cy.get('.clickable').click() + cy.get('.navbar-burger').click() + cy.contains('poussin').click() + cy.wait(50) + cy.fixture('users/authorizations/highAuthorizations.json').then(authorization=>{ + cy.intercept( + 'GET', + 'http://localhost:8081/api/v1/authorization', + authorization + ) + }) + let user = { + "id": "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9", + "login": "poussin", + "authorizedForApplicationCreation": true, + "superadmin": true, + "authorizations": [ + ".*" + ] + } + cy.contains('Autorisations').click() + cy.wait(50) + cy.contains('lambda') + cy.contains('poussin') + cy.get(':nth-child(1) > [data-label="Administration"] > .b-checkbox > .check').first().click( ) + cy.get(':nth-child(1) > [data-label="Applications"] > .taginput > .taginput-container > .autocomplete > .control > .input').type('other').type('{enter}') + cy.intercept('PUT','http://localhost:8081/api/v1//authorization/superadmin', user).as('superadmin') + cy.intercept('PUT','http://localhost:8081/api/v1//authorization/applicationCreator',user).as('applicationCreator') + cy.get('.button > :nth-child(2)').click() + cy.wait('@superadmin').then(test1) + cy.wait('@applicationCreator').then(test2) + }) + + it('Test authorization suppression', () => { + cy.login("admin", ['applications/ore/ore_application_description.json']) + cy.wait(['@postUserResponse', '@getApplicationResponse']) + cy.get('.clickable').click() + cy.get('.navbar-burger').click() + cy.contains('poussin').click() + cy.wait(50) + cy.fixture('users/authorizations/highAuthorizations.json').then(authorization=>{ + cy.intercept( + 'GET', + 'http://localhost:8081/api/v1/authorization', + authorization + ) + }) + let user = { + "id": "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9", + "login": "poussin", + "authorizedForApplicationCreation": true, + "superadmin": true, + "authorizations": [ + ".*" + ] + } + cy.contains('Autorisations').click() + cy.wait(50) + cy.contains('lambda') + cy.contains('poussin') + cy.get(':nth-child(2) > [data-label="Administration"] > .b-checkbox > .check').first().click() + cy.get('[title="titi"] > .delete').click() + + cy.intercept('DELETE','http://localhost:8081/api/v1//authorization/superadmin', user).as('superadmin2') + cy.intercept('DELETE','http://localhost:8081/api/v1//authorization/applicationCreator',user).as('applicationCreator2') + + cy.get('.button > :nth-child(2)').click() + cy.wait('@superadmin2').then(test3) + cy.wait('@applicationCreator2').then(test4) + }) +}) \ No newline at end of file diff --git a/ui/cypress/integration/HighAuthorizationScope_specApplicationCreator.js b/ui/cypress/integration/HighAuthorizationScope_specApplicationCreator.js new file mode 100644 index 0000000000000000000000000000000000000000..7e4a9255c8b5e20fb4c2c19ce307fb152d4a99ca --- /dev/null +++ b/ui/cypress/integration/HighAuthorizationScope_specApplicationCreator.js @@ -0,0 +1,54 @@ +/// <reference types="Cypress" /> + + +require('cypress-plugin-tab') +const test1= function (response){ + console.log('response1', response.request.body) + Assert.equal('lambda', response.request.body.match('lambda')) + Assert.equal('pro', response.request.body.match('pro')) +} +const test2= function (response){ + console.log('response2', response.request.body) + Assert.equal('poussin', response.request.body.match('poussin')) + Assert.equal('ola', response.request.body.match('ola')) +} +import Assert from "assert"; +describe('test high authorization application', () => { + beforeEach(() => { + cy.setLocale('fr'); + }); + + it('Test authorization ajout', () => { + cy.login("applicationCreator", ['applications/ore/ore_application_description.json']) + cy.wait(['@postUserResponse', '@getApplicationResponse']) + cy.get('.clickable').click() + cy.get('.navbar-burger').click() + cy.contains('acreator').click() + cy.wait(50) + cy.fixture('users/authorizations/highAuthorizations.json').then(authorization=>{ + cy.intercept( + 'GET', + 'http://localhost:8081/api/v1/authorization', + authorization + ) + }) + let user = { + "id": "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9", + "login": "poussin", + "authorizedForApplicationCreation": true, + "superadmin": true, + "authorizations": [ + ".*" + ] + } + cy.contains('Autorisations').click() + cy.wait(50) + cy.get(':nth-child(1) > [data-label="Applications"] > .columns > :nth-child(3) ').click() + cy.get(':nth-child(2) > [data-label="Applications"] > .columns > :nth-child(2) ').click() + cy.intercept('PUT','http://localhost:8081/api/v1//authorization/applicationCreator',user).as('applicationCreator') + cy.intercept('DELETE','http://localhost:8081/api/v1//authorization/applicationCreator',user).as('applicationCreator2') + cy.get('.button > :nth-child(2)').click() + cy.wait('@applicationCreator').then(test1) + cy.wait('@applicationCreator2').then(test2) + }) +}) \ No newline at end of file diff --git a/ui/cypress/support/commands.js b/ui/cypress/support/commands.js index 71cc59cfe76879067c243f13e220b8f4479e4ee1..e7e174f4d1c4ac8777a70c51785dba787472b9df 100644 --- a/ui/cypress/support/commands.js +++ b/ui/cypress/support/commands.js @@ -43,7 +43,7 @@ Cypress.Commands.add('login', (userRole, applications) => { cy.fixture('users/users.json').as('users') cy.get('@users').then((users) => { const user = users[userRole] - console.log(userRole, user) + console.log('users',users, 'userRole',userRole, 'user',user) cy.visit(Cypress.env('login_url')) cy.get(':nth-child(1) > .field > .control > input').first().type(userRole) cy.get(':nth-child(2) > .field > .control > input').first().type("password") diff --git a/ui/cypress/videos/authorizationScope_spec.js.mp4 b/ui/cypress/videos/authorizationScope_spec.js.mp4 index a44adb3e15edb415c77a1c5c0b6f13a3755dae13..230e6c39ec03095b7a084a13888fd0bcaf3ee419 100644 Binary files a/ui/cypress/videos/authorizationScope_spec.js.mp4 and b/ui/cypress/videos/authorizationScope_spec.js.mp4 differ diff --git a/ui/cypress/videos/createApplication_spec.js.mp4 b/ui/cypress/videos/createApplication_spec.js.mp4 index 0afcd17ce373bfa33823e0079aa4e17fbe53d9c0..16f319ac287fd5e5348ad0648b0f56438b4ca401 100644 Binary files a/ui/cypress/videos/createApplication_spec.js.mp4 and b/ui/cypress/videos/createApplication_spec.js.mp4 differ diff --git a/ui/cypress/videos/errors_test.js.mp4 b/ui/cypress/videos/errors_test.js.mp4 index 166674e998cbf59a8f98d4f06f1d7d9e92608997..bbf4792f6f19a42f0c64f7c667fa6b7ded8268f1 100644 Binary files a/ui/cypress/videos/errors_test.js.mp4 and b/ui/cypress/videos/errors_test.js.mp4 differ diff --git a/ui/package-lock.json b/ui/package-lock.json index cd55866652daa282f6e94cd127971d73b771a92b..25df700cb33fcab0cac9b9bb2901ddad14b6e95f 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -11,6 +11,7 @@ "@cypress/vue": "^3.1.2", "@cypress/webpack-dev-server": "^1.8.4", "@fortawesome/fontawesome-svg-core": "^1.2.36", + "@fortawesome/free-regular-svg-icons": "^6.1.2", "@fortawesome/free-solid-svg-icons": "^5.15.4", "@fortawesome/vue-fontawesome": "^2.0.2", "buefy": "^0.9.8", @@ -1866,6 +1867,27 @@ "node": ">=6" } }, + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.1.2.tgz", + "integrity": "sha512-xR4hA+tAwsaTHGfb+25H1gVU/aJ0Rzu+xIUfnyrhaL13yNQ7TWiI2RvzniAaB+VGHDU2a+Pk96Ve+pkN3/+TTQ==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-regular-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.2.tgz", + "integrity": "sha512-wBaAPGz1Awxg05e0PBRkDRuTsy4B3dpBm+zreTTyd9TH4uUM27cAL4xWyWR0rLJCrRwzVsQ4hF3FvM6rqydKPA==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, "node_modules/@fortawesome/free-solid-svg-icons": { "version": "5.15.4", "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", @@ -19957,6 +19979,21 @@ "@fortawesome/fontawesome-common-types": "^0.3.0" } }, + "@fortawesome/free-regular-svg-icons": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.1.2.tgz", + "integrity": "sha512-xR4hA+tAwsaTHGfb+25H1gVU/aJ0Rzu+xIUfnyrhaL13yNQ7TWiI2RvzniAaB+VGHDU2a+Pk96Ve+pkN3/+TTQ==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.1.2" + }, + "dependencies": { + "@fortawesome/fontawesome-common-types": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.2.tgz", + "integrity": "sha512-wBaAPGz1Awxg05e0PBRkDRuTsy4B3dpBm+zreTTyd9TH4uUM27cAL4xWyWR0rLJCrRwzVsQ4hF3FvM6rqydKPA==" + } + } + }, "@fortawesome/free-solid-svg-icons": { "version": "5.15.4", "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", diff --git a/ui/package.json b/ui/package.json index 0bd44290a2594b7be5f7c8a3ae77f67c87275951..ef8b823672212be6cac73e6d2ea8f6fd4861dbcd 100644 --- a/ui/package.json +++ b/ui/package.json @@ -13,6 +13,7 @@ "@cypress/vue": "^3.1.2", "@cypress/webpack-dev-server": "^1.8.4", "@fortawesome/fontawesome-svg-core": "^1.2.36", + "@fortawesome/free-regular-svg-icons": "^6.1.2", "@fortawesome/free-solid-svg-icons": "^5.15.4", "@fortawesome/vue-fontawesome": "^2.0.2", "buefy": "^0.9.8", diff --git a/ui/src/locales/en.json b/ui/src/locales/en.json index 8aeee20f057251d742cf8964eb5508e74f555408..c4388eab455d98d35948c4bafb6d70dac3af2262 100644 --- a/ui/src/locales/en.json +++ b/ui/src/locales/en.json @@ -22,7 +22,8 @@ "data-types-page":"{applicationName} data types", "data-types-repository": "Management of data sets {applicationName}", "data-type-authorizations":"{dataType} authorizations", - "data-type-new-authorization":"New authorization for {dataType}" + "data-type-new-authorization":"New authorization for {dataType}", + "authorizations-management": "Authorizations management of applications" }, "login":{ "signin":"Sign in", @@ -85,7 +86,8 @@ "aria-pagination": "Pagination", "aria-curent-page": "Curent page", "aria-next-page": "Next page", - "aria-previous-page": "Previous page" + "aria-previous-page": "Previous page", + "authorizations": "Authorizations" }, "applications":{ "chose-config":"Chose a configuration", @@ -201,6 +203,7 @@ "timeVariableComponentKeyMissingComponent": "Mandatory indication of the component of : <code>{variable}</code> in which we collect the time period for which we need to attach the data for rights management of data type : <code>{dataType}</code>. <br>Accepted values : <code>{knownComponents}</code>", "timeVariableComponentKeyUnknownComponent": "<code>{component}</code> doesn't belong to any of known variables : <code>{variable}</code>. <br>Known components : <code>{knownComponents}</code>", "timerangeoutofinterval": "The date <code> {value} </code> is incompatible with the date range of the deposit. It must be between <code> {from} </code> and <code> {to} </code>. ", + "norightforpublish": "You do not have rights on the <code>{dataType}</code> data type of the <code>{application}</code> application to publish the values of the line <code >{lineNumber}</code>.", "tooBigRowLineForConstantDescription": "In the format->constant section of dataType <code>{dataType}</code> the row number must be less than the data row.", "tooLittleRowLineForConstantDescription": "In the format->constant section of dataType <code>{dataType}</code> the row number must be positive.", "unDeclaredValueForChart": "In the chart description of variable <code> {variable} </code> of data type <code> {dataType} </code>, the value is not declared.<br /> Expected values ​​<code>{components}</code>", @@ -302,7 +305,9 @@ "data-group": "Data group", "data-type": "Data type", "actions": "Actions", - "revoke": "Revoke" + "revoke": "Revoke", + "save" : "Save change", + "add-application-name": "Add an app" }, "ponctuation": { "semicolon" : ";", diff --git a/ui/src/locales/fr.json b/ui/src/locales/fr.json index e94cd1ae771bf4e800bb70130c136d8047e5a6ef..c7ba18ae0941a51dc67a48204b2f5b78152bf8c6 100644 --- a/ui/src/locales/fr.json +++ b/ui/src/locales/fr.json @@ -1,322 +1,327 @@ { - "exceptionMessage": { - "sqlConvertException": "Une erreur dans une requête sql est servenue ligne {locationLineNumber} colonne {locationColumnNumber}<br/>{message}", - "badStoreValueType": "Impossible d'obtenir une valeur pour la clef {referenceDatumKey}. Le type de la valeur {storeValueType} n'est pas l'un des types de retour acceptés : {knownStoreValueType} ", - "badCheckerType": "Le checker de type {checkerType} n'est pas valide. Vous pouvez utiliser l'un de ces checkers : {knownCheckerType} ", - "badGroovyExpressionCheckerReturnType": "L'évaluation de l'expression Groovy {expression} renvoie la valeur {evaluation}. Les valeurs de retour acceptés sont : {knownCheckerReturnType} ", - "badGroovyExpressionChecker": "L'évaluation de l'expression Groovy {expression} renvoie l'erreur {message} ligne {lineNumber} colonne {columnNumber}.", - "badBoundTypeForInterval": "L'interval est borné avec la valeur {boundType} : les valeurs acceptées sont {knownBoundType}", - "badBoundsForInterval": "L'intervale {lowerBound},{upperBound} est borné avec la valeur {upperBound}: les valeurs acceptées sont {acceptedValues}", - "sqlConvertExceptionForClass": "Une erreur sql d'évaluation de valeur est survenue. {message}", - "IOException": "Une erreur de lecture de fichier est survenue. {message}", - "jsonDeserializationError": "Impossible de transformer la chaîne json {json} : {message}", - "requestMapperSerializationError": "Impossible de transformer la chaîne json {requestClient} : {message}" - }, - "titles": { - "login-page": "Bienvenue sur SI-ORE", - "applications-page": "Mes applications", - "aide": "Aide à l'écriture du fichier de configuration d'une application.", - "references-page": "Référentiels de {applicationName}", - "references-data": "Données de {refName}", - "application-creation": "Créer une application", - "data-types-page": "Type de données de {applicationName}", - "data-types-repository": "Gestion des jeux de données de {applicationName}", - "data-type-authorizations": "Autorisations de {dataType}", - "data-type-new-authorization": "Nouvelle autorisation pour {dataType}" - }, - "login": { - "signin": "Se connecter", - "signup": "Créer un compte", - "login": "Identifiant", - "login-placeholder": "Ex: michel", - "pwd": "Mot de passe", - "pwd-placeholder": "Ex: xxxx", - "pwd-forgotten": "Mot de passe oublié ?", - "register": "Créer un compte", - "confirm-pwd": "Confirmer le mot de passe", - "aria-btn-login": "Bouton valider le formulaire de connexion", - "aria-btn-signup": "Bouton création d'un compte" - }, - "validation": { - "count-line":"Lignes total : ", - "data-empty":"Pas de données", - "modal-synthesis-variable-default":"Description : ", - "obligatoire": "Obligatoire", - "facultatif": "Facultatif", - "invalid-required": "Merci de remplir le champ", - "invalid-application-name": "Le nom ne doit comporter que des lettresminuscules .", - "invalid-application-name-length": "Le nom doit être compris en 4 et 20 caractères.", - "invalid-confirmed": "Les deux champs ne correspondent pas." - }, - "alert": { - "cancel": "Annuler", - "server-error": "Une erreur serveur est survenue", - "server-error-appli-exist": "Ce nom d'application existe déjà ", - "user-unknown": "Identifiants inconnus", - "application-creation-success": "L'application a été créée !", - "application-validate-success": "Le fichier YAML est valide !", - "application-edit-success": "Le fichier YAML est mis à jours !", - "warning": "Attention !", - "reference-deletion-msg": "Vous allez supprimer le référentiel : {label}. Êtes-vous sûr ?", - "delete": "Supprimer", - "reference-csv-upload-error": "Une erreur s'est produite au téléversement du fichier csv", - "reference-updated": "Référentiel mis à jour", - "data-updated": "Type de donnée mis à jour", - "registered-user": "Compte utilisateur créé", - "revoke-authorization": "Autorisation révoquée", - "create-authorization": "Autorisation créée", - "dataTypeFiltreEmpty" : "Pas de données correspondant à vos critères" - }, - "message": { - "app-config-error": "Erreur dans le fichier yaml", - "csv-config-error": "Erreur dans le fichier csv", - "close": "Fermer le message", - "data-type-config-error": "Erreur dans le fichier csv" - }, - "menu": { - "logout": "Se déconnecter", - "applications": "Applications", - "references": "Référentiels", - "french": "Français", - "english": "English", - "language": "Langue", - "aria-sub-menu": "Chemin d'acces", - "aria-nav-bar": "Menu principal", - "aria-pagination": "Pagination", - "aria-curent-page": "Page actuelle", - "aria-next-page": "Page suivante", - "aria-previous-page": "Page précédente" - }, - "applications": { - "chose-config": "Choisir une configuration", - "create": "Créer l'application", - "comment": "Commentaire : ", - "no-comment": "Pas de commentaire", - "test": "Validation configuration", - "name": "Nom de l'application", - "name-placeholder": "Ex : olac", - "creation-date": "Date de création", - "actions": "Actions", - "references": "Référentiels", - "dataset": "Données", - "trier": "Trier", - "trierA_z": "Nom A - z", - "trierZ_a": "Nom Z - a", - "trierRecent": "Date récente", - "filter": "Filtrer", - "change": "Modifier l'application", - "version" : "La version actuelle de l'application <b class=\"has-text-primary\">{applicationName}</b> est la version <b class=\"has-text-primary\">{version}.</b>", - "help_config" : "PDF aide configuration", - "app_version": "Version actuelle de l'application :" - }, - "errors": { - "authorizationScopeVariableComponentKeyMissingVariable": "Il faut indiquer la variable dans laquelle on recueille les informations spatiales à laquelle rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code> pour l'autorisation <code>{authorizationScopeName}</code>. Valeurs possibles <code>{variables}</code>", - "authorizationScopeVariableComponentKeyUnknownVariable": "<code>{variable}</code> ne fait pas partie des colonnes connues <code>{knownVariables}</code>", - "authorizationScopeVariableComponentReftypeNull": "Aucune référence n'a été définie pour le composant <code>{component}</code> de la variable <code>{variable}</code>. Références acceptées : <code>{knownPatterns}</code>", - "authorizationScopeVariableComponentReftypeUnknown": "La référence <code>{refType}</code> du composant <code>{component}</code> de la variable <code>{variable}</code> n'a pas été déclarée. Références acceptées : <code>{knownPatterns}</code>", - "authorizationScopeVariableComponentWrongChecker": "Le composant <code>{component}</code> de la variable <code>{variable}</code> ne peut pas être utilisé comme portant l’information temporelle car ce n’est pas une donnée déclarée comme <code>{expectedChecker}</code>", - "authorizationVariableComponentKeyMissingComponent": "Il faut indiquer le composant de la variable <code>{variable}</code> dans laquelle on recueille les informations spatiales à laquelle rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code> pour l'autorisation <code>{authorizationName}</code>. Valeurs possibles <code>{knownComponents}</code>", - "authorizationVariableComponentKeyUnknownComponent": "<code>{component}</code> ne fait pas partie des composants connus pour la variable <code>{variable}</code>. Composants connus : <code>{knownComponents}</code>", - "badauthorizationscopeforrepository": "L'autorisation (<code>{authorization}</code>) doit être <code>{expectedValue}</code> et non <code>{givenValue}</code>", - "checkerExpressionReturnedFalse": "La contrainte suivante n'est pas respectée : <code>{expression}</code>", - "csvBoundToUnknownVariable": "Dans le format CSV, l’entête <code>{header}</code> est lié à la variable <code>{variable}</code> qui n’est pas connue. Variables connues <code>{variables}</code>", - "csvBoundToUnknownVariableComponent": "Dans le format CSV, l’entête <code>{header}</code> est lié à la variable <code>{variable}</code> mais elle n’a pas de composant <code>{component}</code>. Composants connus <code>{components}</code>", - "duplicatedHeaders": "Les en-têtes suivants sont dupliqués : <code>{duplicatedHeaders}</code>", - "duplicatedLineInDatatype": "Dans le fichier de données {file}, la ligne {lineNumber} a le même identifiant {duplicateKey} que les lignes {otherLines}", - "duplicatedLineInReference": "Dans le fichier du référentiel {file}, la ligne {lineNumber} a le même identifiant {duplicateKey} que les lignes {otherLines}", - "emptyFile": "Le fichier est vide", - "emptyHeader": "Le fichier contient un en-tête de colonne vide à la ligne {headerLine}", - "headerColumnPatternNotMatching": "Erreur dans le format de l'en-tête de colonne. Format à respecter : <code>{expectedHeaderColumnPattern}</code><br/>En-tête actuel : <code>{actualHeaderColumn}</code>", - "illegalCheckerConfigurationParameterForReferenceColumnChecker": "Pour le référentiel <code>{referenceToValidate}</code> et la colonne <code>{column}</code>, un contrôle <code>{checkerName}</code> est utilisé mais il n'accepte pas de paramètre <code>{parameterName}</code>", - "authorizationScopeMissingReferenceCheckerForAuthorizationScope": "Dans le type de données {dataType}, vous définissez un <i>authorisationScope</i> {authorizationScopeName} qui fais référence au <i>component</i> {component} de la <i>variable</i> {variable} . Afin de pouvoir fournir une liste de valeurs sur lesquelles portera l'authorisation, vous devez définir un <i>checker</i> de type <i>Reference</i> au <i>variableComponent</i> .", - "illegalCheckerConfigurationParameterForValidationRuleInDataType": "Pour le type de données <code>{dataType}</code> et la règle de validation <code>{validationRuleDescriptionEntryKey}</code>, un contrôle <code>{checkerName}</code> est utilisé mais il n'accepte pas de paramètre <code>{parameterName}</code>", - "illegalCheckerConfigurationParameterForValidationRuleInReference": "Pour le référentiel <code>{referenceToValidate}</code> et la règle de validation <code>{validationRuleDescriptionEntryKey}</code>, un contrôle <code>{checkerName}</code> est utilisé mais il n'accepte pas de paramètre <code>{parameterName}</code>", - "illegalCheckerConfigurationParameterForVariableComponentChecker": "Pour le type de données <code>{dataType}</code>, le composant <code>{component}</code> de la variable <code>{datum}</code>, un contrôle <code>{checkerName}</code> est utilisé mais il n'accepte pas de paramètre <code>{parameterName}</code>", - "illegalGroovyExpressionForValidationRuleInDataType": "Pour la règle de validation <code>{lineValidationRuleKey}</code> du type de données <code>{dataType}</code>, l’expression renseignée <code>{expression}</code> n’est pas correcte. Erreur de compilation de l’expression à la ligne <code>{compilationError.lineNumber}</code> (colonne <code>{compilationError.columnNumber}</code>) message '<code>{compilationError.message}</code>'", - "illegalGroovyExpressionForValidationRuleInReference": "Pour la règle de validation <code>{lineValidationRuleKey}</code> de la référence {reference}, l’expression renseignée <code>{expression}</code> n’est pas correcte. Erreur de compilation de l’expression à la ligne <code>{compilationError.lineNumber}</code> (colonne <code>{compilationError.columnNumber}</code>) message '<code>{compilationError.message}</code>'", - "invalidDate": "Pour le composant identifié : <code>{target}</code> la date <code>{value}</code> ne respecte pas le format attendu : <code>{pattern}</code>. ", - "invalidDateWithColumn": "Pour la colonne : <code>{target}</code> la date <code>{value}</code> ne respecte pas le format attendu : <code>{pattern}</code>. ", - "invalidDurationForDateCheckerForValidationRuleInDataType": "La 'duration' <code>{duration}</code> définie pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du type de données <code>{dataType}</code> est incorrecte", - "invalidDurationForDateCheckerForValidationRuleInReference": "La 'duration' <code>{duration}</code> définie pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du référentiel <code>{reference}</code> est incorrecte", - "invalidDurationForReferenceColumnDateChecker": "La 'duration' <code>{duration}</code> définie pour la colonne <code>{column}</code> du référentiel <code>{referenceToValidate}</code> est incorrecte", - "invalidDurationForVariableComponentDateChecker": "La 'duration' <code>{duration}</code> définie pour le composant <code>{component}</code> de la variable <code>{variable}</code> du type de données <code>{dataType}</code> est incorrecte", - "invalidFloat": "Pour le composant identifié : <code>{target}</code> la valeur <code>{value}</code> doit être un nombre décimal.", - "invalidFloatWithColumn": "Pour la colonne : <code>{target}</code> la valeur <code>{value}</code> doit être un nombre décimal.", - "invalidFormat": "Erreur à la ligne <code>{lineNumber}</code> (colonne <code>{columnNumber}</code>) : '<code>{value}</code>' n’a pas le bon format. Le type attendu est <code>{authorizedValues}</code>", - "invalidHeaders": "En-têtes de colonne invalides. Les colonnes attendues sont : <code>{expectedColumns}</code><br/>Les colonnes actuelles sont : <code>{actualColumns}</code><br/> Il manque les colonnes : <code>{missingColumns}</code><br/>Les colonnes suivantes sont inconnues : <code>{unknownColumns}</code>", - "invalidInteger": "Pour le composant identifié : <code>{target}</code> la valeur <code>{value}</code> doit être un entier.", - "invalidIntegerWithColumn": "Pour la colonne : <code>{target}</code> la valeur <code>{value}</code> doit être un entier.", - "invalidInternationalizedColumns": "Dans la description du référentiel <code>{reference}</code>, les colonnes <code>{unknownUsedAsInternationalizedColumns}</code> sont déclarées comme faisant partie de colonnes internationalisables alors qu’elles n’existent pas. Colonnes connues : <code>{knownColumns}</code>", - "invalidInternationalizedColumnsForDataType": "Dans la surcharge du référentiel <code>{reference}</code> de la description du type de donnée <code>{dataType}</code>, les colonnes <code>{unknownUsedAsInternationalizedColumns}</code> sont déclarées comme faisant partie de colonnes internationalisables alors qu’elles n’existent pas. Colonnes connues : <code>{knownColumns}</code>", - "invalidKeyColumns": "Dans la description du référentiel <code>{reference}</code>, les colonnes <code>{unknownUsedAsKeyElementColumns}</code> sont déclarées comme faisant partie de la clé alors qu’elles n’existent pas. Colonnes connues : <code>{knownColumns}</code>", - "invalidPatternForDateCheckerForValidationRuleInDataType": "Le format de date <code>{pattern}</code> défini pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du type de données <code>{dataType}</code> est incorrect", - "invalidPatternForDateCheckerForValidationRuleInReference": "Le format de date <code>{pattern}</code> défini pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du référentiel <code>{reference}</code> est incorrect", - "invalidPatternForReferenceColumnDateChecker": "Le format de date <code>{pattern}</code> défini pour la colonne <code>{column}</code> du référentiel <code>{referenceToValidate}</code> est incorrect", - "invalidPatternForReferenceColumnRegularExpressionChecker": "L'expression régulière <code>{pattern}</code> défini pour la colonne <code>{column}</code> du référentiel <code>{referenceToValidate}</code> est incorrect", - "invalidPatternForRegularExpressionCheckerForValidationRuleInDataType": "L'expression régulière <code>{pattern}</code> défini pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du type de données <code>{dataType}</code> est incorrect", - "invalidPatternForRegularExpressionCheckerForValidationRuleInReference": "L'expression régulière <code>{pattern}</code> défini pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du référentiel <code>{reference}</code> est incorrect", - "invalidPatternForVariableComponentDateChecker": "Le format de date <code>{pattern}</code> défini pour le composant <code>{component}</code> de la variable <code>{variable}</code> du type de données <code>{dataType}</code> est incorrect", - "invalidPatternForVariableComponentRegularExpressionChecker": "L'expression régulière <code>{pattern}</code> défini pour le composant <code>{component}</code> de la variable <code>{variable}</code> du type de données <code>{dataType}</code> est incorrect", - "invalidReference": "Pour le composant identifié : <code>{target}</code> la valeur <code>{value}</code> n'existe pas dans la référence <code>{refType}</code>. Valeurs attendues <code>{referenceValues}</code>.", - "invalidReferenceWithColumn": "Pour la colonne : <code>{target}</code> la valeur <code>{value}</code> n'existe pas dans la référence <code>{refType}</code>. Valeurs attendues <code>{referenceValues}</code>.", - "missingAggregationComponentForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, le componsant <code> {aggregationComponent}</code> de la variable d'aggrégation <code> {aggregationVariable}</code> n'est pas déclarée.<br /> Valeurs attendues <code>{components}</code>", - "missingAggregationVariableForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, la variable d'aggrégation <code> {aggregationVariable}</code> n'est pas déclarée.<br /> Valeurs attendues <code>{variables}</code>", - "missingAuthorizationForDatatype": "La section authorization doit être présente dans la description du type de données <code>{datatype}</code>", - "missingAuthorizationScopeVariableComponentKey": "Il faut indiquer au moins un groupe de variables (et leur composants) dans le(s)quel(s) on recueille les informations spatiales à rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code>", - "missingBoundToForConstantDescription": "Dans la section format->constant du dataType {dataType} vous devez remplir la section boundTo.", - "missingColumnNumberOrHeaderNameForConstantDescription": "Dans la section format->constant du dataType {dataType} vous devez indiquer un numéro de ligne ou un nom d'en-tête.", - "missingColumnReferenceForCheckerInDataType": "Dans la description du type de données {dataType} et la validation <code>{validationRuleDescriptionEntryKey}</code> le vérificateur de valeur <code>{checkerName}</code> déclare des variables/composants inconnus <code>{missingVariableComponents}</code> : valeurs possible<code>{knownVariableComponents}</code>", - "missingColumnReferenceForCheckerInReference": "Dans la description de la référence {reference} et la validation <code>{validationRuleDescriptionEntryKey}</code> le vérificateur de valeur <code>{checkerName}</code> déclare des colonnes inconnues <code>{missingColumns}</code> : valeurs possible<code>{knownColumns}</code>", - "missingExportHeaderNameForConstantDescription": "Dans la section format->constant du dataType {dataType} vous devez spécifier un exportHeaderName.", - "missingKeyColumnsForReference": "Dans la description du référentiel <code>{reference}</code>, vous devez déclarer les colonnes (au moins une) qui composent la clé naturelle", - "missingParamColumnReferenceForCheckerInDataType": "Dans la description du type de données <code>{dataType}</code>, la règle de validation <code>{validationRuleDescriptionEntryKey}</code> ne précise pas sur quelles variables/composants la règle doit s'exécuter en déclarant un paramètre <code>variableComponents</code>", - "missingParamColumnReferenceForCheckerInReference": "Dans la description de la <code>{reference}</code>, la règle de validation <code>{validationRuleDescriptionEntryKey}</code> ne précise pas sur quelles colonnes la règle doit s'exécuter en déclarant un paramètre <code>columns</code>", - "missingParentColumnForReferenceInCompositeReference": "Dans la référence composite <code>{compositeReference}</code> la <i>parentKeyColumn</i> <code>{parentKeyColumn}</code> n'existe pas dans la référence <code>{reference}</code>.", - "missingParentLineInRecursiveReference": "Dans le fichier du référentiel {references} la valeur d'identifiant {missingReferencesKey} pour le parent n'existe pas. Valeurs acceptées {knownReferences}", - "missingParentRecursiveKeyColumnForReferenceInCompositeReference": "Dans la référence composite <code>{compositeReference}</code> la <i>parentRecursiveKey</i> <code>{parentRecursiveKey}</code> n'existe pas dans la référence <code>{reference}</code>.", - "missingReferenceForChecker": "Pour le type de données <code>{dataType}</code>, la donnée <code>{datum}</code>, le composant <code>{component}</code>, il faut préciser le référentiel parmi <code>{references}</code>", - "missingReferenceForCheckerInDataType": "Pour le type de données <code>{dataType}</code>, la validation <code>{validationKey}</code>, il faut préciser le référentiel parmi <code>{references}</code>", - "missingReferenceForCheckerInReference": "Pour la reference <code>{reference}</code>, la validation <code>{validationKey}</code>, il faut préciser le référentiel parmi <code>{references}</code>", - "missingReferenceForCheckerInReferenceColumn": "Pour la reference <code>{referenceToValidate}</code>, il faut indiquer le référentiel à utiliser pour le contrôle de la valeur de <code>{column}</code> parmi <code>{knownReferences}</code>", - "missingReferenceInCompositereference": "Tous les composants de la reference composite <code>{compositeReference}</code> doivent déclarer une référence", - "missingRequiredExpressionForValidationRuleInDataType": "Pour la règle de validation <code>{lineValidationRuleKey}</code> du type de données <code>{dataType}</code>, vous devez renseigner l’expression à évaluer pour contrôler que la règle est respectée par les données", - "missingRequiredExpressionForValidationRuleInReference": "Pour la règle de validation <code>{lineValidationRuleKey}</code> de la référence {reference}, vous devez renseigner l’expression à évaluer pour contrôler que la règle est respectée par les données", - "missingRowLineForConstantDescription": "Dans la section format->constant du dataType {dataType} vous devez indiquer un numéro de ligne.", - "missingStandardDeviationComponentForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, l'écart type <code> {standardDeviation}</code> n'est pas un composant déclaré.<br /> Valeurs attendues <code>{components}</code>", - "missingTimeScopeVariableComponentKey": "Il faut indiquer la variable (et son composant) dans laquelle on recueille la période de temps à laquelle rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code>", - "missingUnitComponentForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, l'unité <code> {unit}</code> n'est pas un composant déclaré.<br /> Valeurs attendues <code>{components}</code>", - "missingValueComponentForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, la valeur <code> {valueComponent}</code> n'est pas un composant déclaré.<br /> Valeurs attendues <code>{components}</code>", - "overlappingpublishedversion": "Il existe une version déposée dans les dates de dépôt ont une période chevauchante avec la version déposée. <code>{overlapingFiles]</code>", - "patternNotMatched": "Pour le composant identifié : <code>{target}</code> la valeur <code>{value}</code> ne respecte pas le format attendu : <code>{pattern}</code>.", - "patternNotMatchedWithColumn": "Pour la colonne : <code>{target}</code> la valeur <code>{value}</code> ne respecte pas le format attendu : <code>{pattern}</code>.", - "requiredParentKeyColumnInCompositeReferenceForReference": "Dans la référence composite <code>{compositeReference}</code> la référence <code>{reference}</code> fait référence à <code>{referenceTo}</code> mais ne déclare pas de <i>parentKeyColumn</i> .", - "requiredReferenceInCompositeReferenceForParentKeyColumn": "Aucune référence n'a été déclarée pour la <i>parentKeyColumn</i> <code>{parentKeyColumn}</code> dans la référence composite <code>{compositeReference}</code> .", - "requiredValue": "Pour le composant identifié : <code>{target}</code> la valeur ne peut pas être nulle.", - "requiredValueWithColumn": "Pour la colonne : <code>{target}</code> la valeur ne peut pas être nulle.", - "sameHeaderLineAndFirstRowLineForConstantDescription": "Dans la section format->constant du dataType {dataType} la ligne d'en-tête ne doit pas être egale à la ligne de données.", - "timeScopeVariableComponentKeyMissingVariable": "Il faut indiquer la variable dans laquelle on recueille la période de temps à laquelle rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code>. Valeurs possibles <code>{variables}</code>", - "timeScopeVariableComponentKeyUnknownVariable": "<code>{variable}</code> ne fait pas partie des colonnes connues <code>{knownVariables}</code>", - "timeScopeVariableComponentPatternUnknown": "Le composant <code>{component}</code> de la variable <code>{variable}</code> ne peut pas être utilisé comme portant l’information temporelle car le format de date '<code>{pattern}</code>' n’est pas géré. Formats acceptés : <code>{knownPatterns}</code>", - "timeScopeVariableComponentWrongChecker": "Le composant <code>{component}</code> de la variable <code>{variable}</code> ne peut pas être utilisé comme portant l’information temporelle car ce n’est pas une donnée déclarée comme <code>{expectedChecker}</code>", - "timeVariableComponentKeyMissingComponent": "Il faut indiquer le composant de la variable <code>{variable}</code> dans laquelle on recueille la période de temps à laquelle rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code>. Valeurs possibles <code>{knownComponents}</code>", - "timeVariableComponentKeyUnknownComponent": "<code>{component}</code> ne fait pas partie des composants connus pour la variable <code>{variable}</code>. Composants connus : <code>{knownComponents}</code>", - "timerangeoutofinterval": "La date <code>{value}</code> est incompatible avec l'intervale de dates du dépôt. Elle doit être comprise entre <code>{from}</code> et <code>{to}</code>.", - "tooBigRowLineForConstantDescription": "Dans la section format->constant du dataType {dataType} le numéro de ligne doit être inférieur à celui de la ligne de données.", - "tooLittleRowLineForConstantDescription": "Dans la section format->constant du dataType {dataType} le numéro de ligne doit être positif.", - "unDeclaredValueForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, la valeur n'est pas déclarée.<br /> Valeurs attendues <code>{components}</code>", - "undeclaredDataGroupForVariable": "La variable <code>{variable}</code> n’est déclarée appartenir à aucun groupe de données, elle doit être présente dans un groupe", - "unexpectedHeaderColumn": "En-tête de colonne inattendu. En-tête attendu : <code>{expectedHeaderColumn}</code> <br />En-tête actuel : <code>{actualHeaderColumn}</code>", - "unexpectedTokenCount": "Le nombre de token est inattendu. Nombre attendu : <code>{expectedTokenCount}</code><br/>L'en-tête actuel : <code>{actualHeader}</code> comprend <code>{actualTokenCount}</code> tokens", - "unknownCheckerNameForValidationRuleInDataType": "Pour la règle de validation <code>{lineValidationRuleKey}</code> du type de données <code>{dataType}</code>, '<code>{checkerName}</code>' est déclaré mais ce n’est pas un contrôle connu. Contrôles connus : {allCheckerNames}", - "unknownCheckerNameForValidationRuleInReference": "Pour la règle de validation <code>{lineValidationRuleKey}</code> de la référence <code>{reference}</code>, '<code>{checkerName}</code>' est déclaré mais ce n’est pas un contrôle connu. Contrôles connus : {allCheckerNames}", - "unknownCheckerNameForVariableComponent": "Dans la description du type de données {datatype} le composant <code>{component}</code> de la variable <code>{variable}</code> le vérificateur de valeur <code>{checkerName}</code> est déclaré mais ce n’est pas un contrôle connu<br /> Vérificateurs connues : <code>{knownCheckerNames}</code>", - "unknownCheckerNameForVariableComponentCheckerInDataType": "Dans la validation du type de données <code>{dataType}</code> et la règle de validation <code>{validationRuleDescriptionEntryKey}</code>, '<code>{name}</code>' est déclaré mais ce n’est pas un contrôle connu: valeurs possibles <code>{checkerOnTargetNames}</code>.", - "unknownCheckerNameForVariableComponentCheckerInReference": "Dans la validation de la référence <code>{reference}</code> et la règle de validation <code>{validationRuleDescriptionEntryKey}</code>, '<code>{name}</code>' est déclaré mais ce n’est pas un contrôle connu: valeurs possibles <code>{checkerOnTargetNames}</code>.", - "unknownCheckerNameInReferenceColumn": "Pour le référentiel <code>{referenceToValidate}</code>, le contrôle défini pour la colonne <code>{column}</code> est <code>{checkerName}</code>. Or, ce n'est pas un contrôle connu. Les contrôles connus sont <code>{knownCheckerNames}</code>", - "unknownIllegalException": "Erreur inattendue : <code>{cause}</code>", - "unknownReferenceForChecker": "Pour le type de données <code>{dataType}</code>, la donnée <code>{datum}</code>, le composant <code>{component}</code>, la référence <code>{refType}</code> n’est pas dans les références acceptées qui sont : <code>{references}</code>", - "unknownReferenceForCheckerInDataType": "Pour le type de données <code>{dataType}</code>, la validation <code>{validationKey}</code>, la référence <code>{refType}</code> n’est pas dans les références acceptées qui sont : <code>{references}</code>", - "unknownReferenceForCheckerInReference": "Pour la référence <code>{reference}</code>, la validation <code>{validationKey}</code>, la référence <code>{refType}</code> n’est pas dans les références acceptées qui sont : <code>{references}</code>", - "unknownReferenceForCheckerInReferenceColumn": "Pour le référentiel <code>{referenceToValidate}</code> et la colonne <code>{column}</code>, le référentiel à utiliser pour le contrôle de valeur est <code>{refType}</code> qui n'est pas connu parmi <code>{knownReferences}</code>", - "unknownReferenceInCompositeReference": "La reference composite <code>{compositeReference}</code> contient des références qui ne sont pas déclarées <code>{unknownReferences}</code>. Références connues <code>{references}</code>", - "unknownReferenceInDatatypeReferenceDisplay": "Dans la surcharge de l'affichage des référentiels de la description du type de donnée <code>{dataType}</code>, le référentiel <code>{reference}</code> est inconnu . Référentiels connus connues : <code>{references}</code>", - "unknownUsedAsVariableComponentUniqueness": "Dans la description du type de données <code>{dataType}</code> dans la section <code><I>uniqueness</i></code> les descriptions de variable composants <code>{unknownUsedAsVariableComponentUniqueness}</code> n'existent pas. Valeurs acceptées <code>{availableVariableComponents}</code>", - "unknownVariablesInDataGroup": "le groupe de données <code>{dataGroup}</code> contient des données qui ne sont pas déclarées <code>{unknownVariables}</code>. Données connues <code>{variables}</code>", - "unrecognizedProperty": "Erreur à la ligne <code>{lineNumber}</code> (colonne <code>{columnNumber}</code>) : <code>{unknownPropertyName}</code>, c’est pas une propriété reconnue. Les propriétés reconnues sont <code>{knownProperties}</code>", - "unsupportedVersion": "Les fichiers YAML de version <code>{actualVersion}</code> ne sont pas gérés, version attendue <code>{expectedVersion}</code>", - "variableInMultipleDataGroup": "La variable <code>{variable}</code> est déclarée dans plusieurs groupes de données, elle ne doit être présente que dans un groupe", - "noCapturingGroupForDatatypeRepository":"Dans la section repository du datatype <code>{dataType}</code> l' expression de recherche ne contient aucun groupe de capture." , - "invalidPatternForDatatypeRepository":"Dans la section repository du datatype <code>{dataType}</code> l' expression de recherche est invalide." , - "invalidCapturingGroupForDatatypeRepositoryAuthorizationScope":"Dans la section repository du datatype <code>{dataType}</code> l'authorizationScope <code>{scopeName}</code> est <code>{scopeToken}</code>; il doit être compris entre 0 et {countGroups}." , - "invalidCapturingGroupForDatatypeRepository":"Dans la section repository du datatype <code>{dataType}</code> l'authorizationScope <code>{scopeName}</code> n'existe pas. Valeurs possibles <code>{registerScopes}</code>." , - "invalidCapturingGroupForStartDateDatatypeRepositoryDate":"Dans la section repository du datatype <code>{dataType}</code> le groupe de capture de la date de début <code>{token}</code> être compris entre 0 et {countGroups}." , - "invalidCapturingGroupForEndDateDatatypeRepositoryDate":"Dans la section repository du datatype <code>{dataType}</code> le groupe de capture de la date de fin <code>{token}</code> être compris entre 0 et {countGroups}." , - "exception": "Il manque la chaine de traduction pour l'erreur suivante. Merci de vérifiez que ce n'est pas un problème d'indantation avant de contacter les administrateurs. " - }, - "referencesManagement": { - "actions": "Actions", - "consult": "Consulter", - "download": "Télécharger", - "delete": "Supprimer", - "references": "Référentiels", - "data": "Données" - }, - "dataTypesManagement": { - "no_authorization": "Pas de gestion des autorisations pour {localName}", - "data-types": "Type de données", - "consult-authorization": "Consulter les autorisations", - "réinitialiser": "Réinitialiser", - "all": "tous", - "filtre": "filtre", - "tri": "tri", - "ASC": "ASC", - "DESC": "DESC", - "validate": "Valider", - "filtered": "Les filtres utilisés", - "sorted": "Les tris utilisés", - "title-modal-numeric": "Choix de l'interval de valeur", - "title-modal-date": "Choix de l'interval de date", - "manage-datasets": "Gérer les jeux de données" - }, - "dataTypesRepository": { - "card-title-upload-file": "Déposer une version sur ce jeux de données", - "start-date": "Date de début", - "end-date": "Date de fin", - "comment": "Commentaire", - "choose-file": "Choisir un fichier", - "placeholder-datepicker": "Taper ou sélectionner une date...", - "placeholder-select": "Sélectionner...", - "submit": "Envoyer", - "list-file-data": "Liste des jeux de données sur ce dépôt", - "list-file-data-period": "Liste des versions pour la période", - "table-file-data-id": "ID", - "table-file-data-size": "Taille", - "table-file-data-create": "Création", - "table-file-data-create-by": "Créer par :", - "table-file-data-publish": "Publier", - "table-file-data-publish-by": "Publier par :", - "table-file-data-publication": "Publication", - "table-file-data-delete": "Supprimer", - "table-file-data-period": "Période" - }, - "dataTypeAuthorizations": { - "add-auhtorization": "Ajouter une autorisation", - "sub-menu-data-type-authorizations": "autorisations de {dataType}", - "sub-menu-new-authorization": "nouvelle autorisation", - "users": "Utilisateurs", - "name": "Nom", - "roles": "Roles", - "users-placeholder": "Choisir les utilisateurs à autoriser", - "data-groups": "Groupes de données", - "data-groups-placeholder": "Choisir les données à autoriser", - "authorization-scopes": "Périmètres d'autorisation", - "period": "Période d'autorisation", - "from-date": "À partir du", - "to-date": "Jusqu'au", - "from-date-to-date": "De date à date", - "always": "Toujours", - "to": "à ", - "from": "de", - "create": "Créer l'autorisation", - "user": "Utilisateur", - "data-group": "Groupe de données", - "data-type": "Type de donnée", - "actions": "Actions", - "revoke": "Révoquer" - }, - "ponctuation": { - "semicolon" : ";", - "comma" : ",", - "period": ".", - "colon" : ":", - "hyphen" : "-", - "plus" : "+", - "less" :"<", - "greater" : ">", - "arrow-right": "->", - "arrow-left": "<-", - "slash": "/", - "regEx": ".*", - "star": "*" - } + "exceptionMessage": { + "sqlConvertException": "Une erreur dans une requête sql est servenue ligne {locationLineNumber} colonne {locationColumnNumber}<br/>{message}", + "badStoreValueType": "Impossible d'obtenir une valeur pour la clef {referenceDatumKey}. Le type de la valeur {storeValueType} n'est pas l'un des types de retour acceptés : {knownStoreValueType} ", + "badCheckerType": "Le checker de type {checkerType} n'est pas valide. Vous pouvez utiliser l'un de ces checkers : {knownCheckerType} ", + "badGroovyExpressionCheckerReturnType": "L'évaluation de l'expression Groovy {expression} renvoie la valeur {evaluation}. Les valeurs de retour acceptés sont : {knownCheckerReturnType} ", + "badGroovyExpressionChecker": "L'évaluation de l'expression Groovy {expression} renvoie l'erreur {message} ligne {lineNumber} colonne {columnNumber}.", + "badBoundTypeForInterval": "L'interval est borné avec la valeur {boundType} : les valeurs acceptées sont {knownBoundType}", + "badBoundsForInterval": "L'intervale {lowerBound},{upperBound} est borné avec la valeur {upperBound}: les valeurs acceptées sont {acceptedValues}", + "sqlConvertExceptionForClass": "Une erreur sql d'évaluation de valeur est survenue. {message}", + "IOException": "Une erreur de lecture de fichier est survenue. {message}", + "jsonDeserializationError": "Impossible de transformer la chaîne json {json} : {message}", + "requestMapperSerializationError": "Impossible de transformer la chaîne json {requestClient} : {message}" + }, + "titles": { + "login-page": "Bienvenue sur SI-ORE", + "applications-page": "Mes applications", + "aide": "Aide à l'écriture du fichier de configuration d'une application.", + "references-page": "Référentiels de {applicationName}", + "references-data": "Données de {refName}", + "application-creation": "Créer une application", + "data-types-page": "Type de données de {applicationName}", + "data-types-repository": "Gestion des jeux de données de {applicationName}", + "data-type-authorizations": "Autorisations de {dataType}", + "data-type-new-authorization": "Nouvelle autorisation pour {dataType}", + "authorizations-management": "Gestion des autorisations sur les applications" + }, + "login": { + "signin": "Se connecter", + "signup": "Créer un compte", + "login": "Identifiant", + "login-placeholder": "Ex: michel", + "pwd": "Mot de passe", + "pwd-placeholder": "Ex: xxxx", + "pwd-forgotten": "Mot de passe oublié ?", + "register": "Créer un compte", + "confirm-pwd": "Confirmer le mot de passe", + "aria-btn-login": "Bouton valider le formulaire de connexion", + "aria-btn-signup": "Bouton création d'un compte" + }, + "validation": { + "count-line": "Lignes total : ", + "data-empty": "Pas de données", + "modal-synthesis-variable-default": "Description : ", + "obligatoire": "Obligatoire", + "facultatif": "Facultatif", + "invalid-required": "Merci de remplir le champ", + "invalid-application-name": "Le nom ne doit comporter que des lettresminuscules .", + "invalid-application-name-length": "Le nom doit être compris en 4 et 20 caractères.", + "invalid-confirmed": "Les deux champs ne correspondent pas." + }, + "alert": { + "cancel": "Annuler", + "server-error": "Une erreur serveur est survenue", + "server-error-appli-exist": "Ce nom d'application existe déjà ", + "user-unknown": "Identifiants inconnus", + "application-creation-success": "L'application a été créée !", + "application-validate-success": "Le fichier YAML est valide !", + "application-edit-success": "Le fichier YAML est mis à jours !", + "warning": "Attention !", + "reference-deletion-msg": "Vous allez supprimer le référentiel : {label}. Êtes-vous sûr ?", + "delete": "Supprimer", + "reference-csv-upload-error": "Une erreur s'est produite au téléversement du fichier csv", + "reference-updated": "Référentiel mis à jour", + "data-updated": "Type de donnée mis à jour", + "registered-user": "Compte utilisateur créé", + "revoke-authorization": "Autorisation révoquée", + "create-authorization": "Autorisation créée", + "dataTypeFiltreEmpty": "Pas de données correspondant à vos critères" + }, + "message": { + "app-config-error": "Erreur dans le fichier yaml", + "csv-config-error": "Erreur dans le fichier csv", + "close": "Fermer le message", + "data-type-config-error": "Erreur dans le fichier csv" + }, + "menu": { + "logout": "Se déconnecter", + "applications": "Applications", + "references": "Référentiels", + "french": "Français", + "english": "English", + "language": "Langue", + "aria-sub-menu": "Chemin d'acces", + "aria-nav-bar": "Menu principal", + "aria-pagination": "Pagination", + "aria-curent-page": "Page actuelle", + "aria-next-page": "Page suivante", + "aria-previous-page": "Page précédente", + "authorizations": "Autorisations" + }, + "applications": { + "chose-config": "Choisir une configuration", + "create": "Créer l'application", + "comment": "Commentaire : ", + "no-comment": "Pas de commentaire", + "test": "Validation configuration", + "name": "Nom de l'application", + "name-placeholder": "Ex : olac", + "creation-date": "Date de création", + "actions": "Actions", + "references": "Référentiels", + "dataset": "Données", + "trier": "Trier", + "trierA_z": "Nom A - z", + "trierZ_a": "Nom Z - a", + "trierRecent": "Date récente", + "filter": "Filtrer", + "change": "Modifier l'application", + "version": "La version actuelle de l'application <b class=\"has-text-primary\">{applicationName}</b> est la version <b class=\"has-text-primary\">{version}.</b>", + "help_config": "PDF aide configuration", + "app_version": "Version actuelle de l'application :" + }, + "errors": { + "authorizationScopeVariableComponentKeyMissingVariable": "Il faut indiquer la variable dans laquelle on recueille les informations spatiales à laquelle rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code> pour l'autorisation <code>{authorizationScopeName}</code>. Valeurs possibles <code>{variables}</code>", + "authorizationScopeVariableComponentKeyUnknownVariable": "<code>{variable}</code> ne fait pas partie des colonnes connues <code>{knownVariables}</code>", + "authorizationScopeVariableComponentReftypeNull": "Aucune référence n'a été définie pour le composant <code>{component}</code> de la variable <code>{variable}</code>. Références acceptées : <code>{knownPatterns}</code>", + "authorizationScopeVariableComponentReftypeUnknown": "La référence <code>{refType}</code> du composant <code>{component}</code> de la variable <code>{variable}</code> n'a pas été déclarée. Références acceptées : <code>{knownPatterns}</code>", + "authorizationScopeVariableComponentWrongChecker": "Le composant <code>{component}</code> de la variable <code>{variable}</code> ne peut pas être utilisé comme portant l’information temporelle car ce n’est pas une donnée déclarée comme <code>{expectedChecker}</code>", + "authorizationVariableComponentKeyMissingComponent": "Il faut indiquer le composant de la variable <code>{variable}</code> dans laquelle on recueille les informations spatiales à laquelle rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code> pour l'autorisation <code>{authorizationName}</code>. Valeurs possibles <code>{knownComponents}</code>", + "authorizationVariableComponentKeyUnknownComponent": "<code>{component}</code> ne fait pas partie des composants connus pour la variable <code>{variable}</code>. Composants connus : <code>{knownComponents}</code>", + "badauthorizationscopeforrepository": "L'autorisation <code>{authorization}</code>) doit être <code>{expectedValue}/code> et non <code>{givenValue}</code>", + "checkerExpressionReturnedFalse": "La contrainte suivante n'est pas respectée : <code>{expression}</code>", + "csvBoundToUnknownVariable": "Dans le format CSV, l’entête <code>{header}</code> est lié à la variable <code>{variable}</code> qui n’est pas connue. Variables connues <code>{variables}</code>", + "csvBoundToUnknownVariableComponent": "Dans le format CSV, l’entête <code>{header}</code> est lié à la variable <code>{variable}</code> mais elle n’a pas de composant <code>{component}</code>. Composants connus <code>{components}</code>", + "duplicatedHeaders": "Les en-têtes suivants sont dupliqués : <code>{duplicatedHeaders}</code>", + "duplicatedLineInDatatype": "Dans le fichier de données {file}, la ligne {lineNumber} a le même identifiant {duplicateKey} que les lignes {otherLines}", + "duplicatedLineInReference": "Dans le fichier du référentiel {file}, la ligne {lineNumber} a le même identifiant {duplicateKey} que les lignes {otherLines}", + "emptyFile": "Le fichier est vide", + "emptyHeader": "Le fichier contient un en-tête de colonne vide à la ligne {headerLine}", + "headerColumnPatternNotMatching": "Erreur dans le format de l'en-tête de colonne. Format à respecter : <code>{expectedHeaderColumnPattern}</code><br/>En-tête actuel : <code>{actualHeaderColumn}</code>", + "illegalCheckerConfigurationParameterForReferenceColumnChecker": "Pour le référentiel <code>{referenceToValidate}</code> et la colonne <code>{column}</code>, un contrôle <code>{checkerName}</code> est utilisé mais il n'accepte pas de paramètre <code>{parameterName}</code>", + "authorizationScopeMissingReferenceCheckerForAuthorizationScope": "Dans le type de données {dataType}, vous définissez un <i>authorisationScope</i> {authorizationScopeName} qui fais référence au <i>component</i> {component} de la <i>variable</i> {variable} . Afin de pouvoir fournir une liste de valeurs sur lesquelles portera l'authorisation, vous devez définir un <i>checker</i> de type <i>Reference</i> au <i>variableComponent</i> .", + "illegalCheckerConfigurationParameterForValidationRuleInDataType": "Pour le type de données <code>{dataType}</code> et la règle de validation <code>{validationRuleDescriptionEntryKey}</code>, un contrôle <code>{checkerName}</code> est utilisé mais il n'accepte pas de paramètre <code>{parameterName}</code>", + "illegalCheckerConfigurationParameterForValidationRuleInReference": "Pour le référentiel <code>{referenceToValidate}</code> et la règle de validation <code>{validationRuleDescriptionEntryKey}</code>, un contrôle <code>{checkerName}</code> est utilisé mais il n'accepte pas de paramètre <code>{parameterName}</code>", + "illegalCheckerConfigurationParameterForVariableComponentChecker": "Pour le type de données <code>{dataType}</code>, le composant <code>{component}</code> de la variable <code>{datum}</code>, un contrôle <code>{checkerName}</code> est utilisé mais il n'accepte pas de paramètre <code>{parameterName}</code>", + "illegalGroovyExpressionForValidationRuleInDataType": "Pour la règle de validation <code>{lineValidationRuleKey}</code> du type de données <code>{dataType}</code>, l’expression renseignée <code>{expression}</code> n’est pas correcte. Erreur de compilation de l’expression à la ligne <code>{compilationError.lineNumber}</code> (colonne <code>{compilationError.columnNumber}</code>) message '<code>{compilationError.message}</code>'", + "illegalGroovyExpressionForValidationRuleInReference": "Pour la règle de validation <code>{lineValidationRuleKey}</code> de la référence {reference}, l’expression renseignée <code>{expression}</code> n’est pas correcte. Erreur de compilation de l’expression à la ligne <code>{compilationError.lineNumber}</code> (colonne <code>{compilationError.columnNumber}</code>) message '<code>{compilationError.message}</code>'", + "invalidDate": "Pour le composant identifié : <code>{target}</code> la date <code>{value}</code> ne respecte pas le format attendu : <code>{pattern}</code>. ", + "invalidDateWithColumn": "Pour la colonne : <code>{target}</code> la date <code>{value}</code> ne respecte pas le format attendu : <code>{pattern}</code>. ", + "invalidDurationForDateCheckerForValidationRuleInDataType": "La 'duration' <code>{duration}</code> définie pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du type de données <code>{dataType}</code> est incorrecte", + "invalidDurationForDateCheckerForValidationRuleInReference": "La 'duration' <code>{duration}</code> définie pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du référentiel <code>{reference}</code> est incorrecte", + "invalidDurationForReferenceColumnDateChecker": "La 'duration' <code>{duration}</code> définie pour la colonne <code>{column}</code> du référentiel <code>{referenceToValidate}</code> est incorrecte", + "invalidDurationForVariableComponentDateChecker": "La 'duration' <code>{duration}</code> définie pour le composant <code>{component}</code> de la variable <code>{variable}</code> du type de données <code>{dataType}</code> est incorrecte", + "invalidFloat": "Pour le composant identifié : <code>{target}</code> la valeur <code>{value}</code> doit être un nombre décimal.", + "invalidFloatWithColumn": "Pour la colonne : <code>{target}</code> la valeur <code>{value}</code> doit être un nombre décimal.", + "invalidFormat": "Erreur à la ligne <code>{lineNumber}</code> (colonne <code>{columnNumber}</code>) : '<code>{value}</code>' n’a pas le bon format. Le type attendu est <code>{authorizedValues}</code>", + "invalidHeaders": "En-têtes de colonne invalides. Les colonnes attendues sont : <code>{expectedColumns}</code><br/>Les colonnes actuelles sont : <code>{actualColumns}</code><br/> Il manque les colonnes : <code>{missingColumns}</code><br/>Les colonnes suivantes sont inconnues : <code>{unknownColumns}</code>", + "invalidInteger": "Pour le composant identifié : <code>{target}</code> la valeur <code>{value}</code> doit être un entier.", + "invalidIntegerWithColumn": "Pour la colonne : <code>{target}</code> la valeur <code>{value}</code> doit être un entier.", + "invalidInternationalizedColumns": "Dans la description du référentiel <code>{reference}</code>, les colonnes <code>{unknownUsedAsInternationalizedColumns}</code> sont déclarées comme faisant partie de colonnes internationalisables alors qu’elles n’existent pas. Colonnes connues : <code>{knownColumns}</code>", + "invalidInternationalizedColumnsForDataType": "Dans la surcharge du référentiel <code>{reference}</code> de la description du type de donnée <code>{dataType}</code>, les colonnes <code>{unknownUsedAsInternationalizedColumns}</code> sont déclarées comme faisant partie de colonnes internationalisables alors qu’elles n’existent pas. Colonnes connues : <code>{knownColumns}</code>", + "invalidKeyColumns": "Dans la description du référentiel <code>{reference}</code>, les colonnes <code>{unknownUsedAsKeyElementColumns}</code> sont déclarées comme faisant partie de la clé alors qu’elles n’existent pas. Colonnes connues : <code>{knownColumns}</code>", + "invalidPatternForDateCheckerForValidationRuleInDataType": "Le format de date <code>{pattern}</code> défini pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du type de données <code>{dataType}</code> est incorrect", + "invalidPatternForDateCheckerForValidationRuleInReference": "Le format de date <code>{pattern}</code> défini pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du référentiel <code>{reference}</code> est incorrect", + "invalidPatternForReferenceColumnDateChecker": "Le format de date <code>{pattern}</code> défini pour la colonne <code>{column}</code> du référentiel <code>{referenceToValidate}</code> est incorrect", + "invalidPatternForReferenceColumnRegularExpressionChecker": "L'expression régulière <code>{pattern}</code> défini pour la colonne <code>{column}</code> du référentiel <code>{referenceToValidate}</code> est incorrect", + "invalidPatternForRegularExpressionCheckerForValidationRuleInDataType": "L'expression régulière <code>{pattern}</code> défini pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du type de données <code>{dataType}</code> est incorrect", + "invalidPatternForRegularExpressionCheckerForValidationRuleInReference": "L'expression régulière <code>{pattern}</code> défini pour la règle de validation <code>{validationRuleDescriptionEntryKey}</code> du référentiel <code>{reference}</code> est incorrect", + "invalidPatternForVariableComponentDateChecker": "Le format de date <code>{pattern}</code> défini pour le composant <code>{component}</code> de la variable <code>{variable}</code> du type de données <code>{dataType}</code> est incorrect", + "invalidPatternForVariableComponentRegularExpressionChecker": "L'expression régulière <code>{pattern}</code> défini pour le composant <code>{component}</code> de la variable <code>{variable}</code> du type de données <code>{dataType}</code> est incorrect", + "invalidReference": "Pour le composant identifié : <code>{target}</code> la valeur <code>{value}</code> n'existe pas dans la référence <code>{refType}</code>. Valeurs attendues <code>{referenceValues}</code>.", + "invalidReferenceWithColumn": "Pour la colonne : <code>{target}</code> la valeur <code>{value}</code> n'existe pas dans la référence <code>{refType}</code>. Valeurs attendues <code>{referenceValues}</code>.", + "missingAggregationComponentForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, le componsant <code> {aggregationComponent}</code> de la variable d'aggrégation <code> {aggregationVariable}</code> n'est pas déclarée.<br /> Valeurs attendues <code>{components}</code>", + "missingAggregationVariableForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, la variable d'aggrégation <code> {aggregationVariable}</code> n'est pas déclarée.<br /> Valeurs attendues <code>{variables}</code>", + "missingAuthorizationForDatatype": "La section authorization doit être présente dans la description du type de données <code>{datatype}</code>", + "missingAuthorizationScopeVariableComponentKey": "Il faut indiquer au moins un groupe de variables (et leur composants) dans le(s)quel(s) on recueille les informations spatiales à rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code>", + "missingBoundToForConstantDescription": "Dans la section format->constant du dataType {dataType} vous devez remplir la section boundTo.", + "missingColumnNumberOrHeaderNameForConstantDescription": "Dans la section format->constant du dataType {dataType} vous devez indiquer un numéro de ligne ou un nom d'en-tête.", + "missingColumnReferenceForCheckerInDataType": "Dans la description du type de données {dataType} et la validation <code>{validationRuleDescriptionEntryKey}</code> le vérificateur de valeur <code>{checkerName}</code> déclare des variables/composants inconnus <code>{missingVariableComponents}</code> : valeurs possible<code>{knownVariableComponents}</code>", + "missingColumnReferenceForCheckerInReference": "Dans la description de la référence {reference} et la validation <code>{validationRuleDescriptionEntryKey}</code> le vérificateur de valeur <code>{checkerName}</code> déclare des colonnes inconnues <code>{missingColumns}</code> : valeurs possible<code>{knownColumns}</code>", + "missingExportHeaderNameForConstantDescription": "Dans la section format->constant du dataType {dataType} vous devez spécifier un exportHeaderName.", + "missingKeyColumnsForReference": "Dans la description du référentiel <code>{reference}</code>, vous devez déclarer les colonnes (au moins une) qui composent la clé naturelle", + "missingParamColumnReferenceForCheckerInDataType": "Dans la description du type de données <code>{dataType}</code>, la règle de validation <code>{validationRuleDescriptionEntryKey}</code> ne précise pas sur quelles variables/composants la règle doit s'exécuter en déclarant un paramètre <code>variableComponents</code>", + "missingParamColumnReferenceForCheckerInReference": "Dans la description de la <code>{reference}</code>, la règle de validation <code>{validationRuleDescriptionEntryKey}</code> ne précise pas sur quelles colonnes la règle doit s'exécuter en déclarant un paramètre <code>columns</code>", + "missingParentColumnForReferenceInCompositeReference": "Dans la référence composite <code>{compositeReference}</code> la <i>parentKeyColumn</i> <code>{parentKeyColumn}</code> n'existe pas dans la référence <code>{reference}</code>.", + "missingParentLineInRecursiveReference": "Dans le fichier du référentiel {references} la valeur d'identifiant {missingReferencesKey} pour le parent n'existe pas. Valeurs acceptées {knownReferences}", + "missingParentRecursiveKeyColumnForReferenceInCompositeReference": "Dans la référence composite <code>{compositeReference}</code> la <i>parentRecursiveKey</i> <code>{parentRecursiveKey}</code> n'existe pas dans la référence <code>{reference}</code>.", + "missingReferenceForChecker": "Pour le type de données <code>{dataType}</code>, la donnée <code>{datum}</code>, le composant <code>{component}</code>, il faut préciser le référentiel parmi <code>{references}</code>", + "missingReferenceForCheckerInDataType": "Pour le type de données <code>{dataType}</code>, la validation <code>{validationKey}</code>, il faut préciser le référentiel parmi <code>{references}</code>", + "missingReferenceForCheckerInReference": "Pour la reference <code>{reference}</code>, la validation <code>{validationKey}</code>, il faut préciser le référentiel parmi <code>{references}</code>", + "missingReferenceForCheckerInReferenceColumn": "Pour la reference <code>{referenceToValidate}</code>, il faut indiquer le référentiel à utiliser pour le contrôle de la valeur de <code>{column}</code> parmi <code>{knownReferences}</code>", + "missingReferenceInCompositereference": "Tous les composants de la reference composite <code>{compositeReference}</code> doivent déclarer une référence", + "missingRequiredExpressionForValidationRuleInDataType": "Pour la règle de validation <code>{lineValidationRuleKey}</code> du type de données <code>{dataType}</code>, vous devez renseigner l’expression à évaluer pour contrôler que la règle est respectée par les données", + "missingRequiredExpressionForValidationRuleInReference": "Pour la règle de validation <code>{lineValidationRuleKey}</code> de la référence {reference}, vous devez renseigner l’expression à évaluer pour contrôler que la règle est respectée par les données", + "missingRowLineForConstantDescription": "Dans la section format->constant du dataType {dataType} vous devez indiquer un numéro de ligne.", + "missingStandardDeviationComponentForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, l'écart type <code> {standardDeviation}</code> n'est pas un composant déclaré.<br /> Valeurs attendues <code>{components}</code>", + "missingTimeScopeVariableComponentKey": "Il faut indiquer la variable (et son composant) dans laquelle on recueille la période de temps à laquelle rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code>", + "missingUnitComponentForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, l'unité <code> {unit}</code> n'est pas un composant déclaré.<br /> Valeurs attendues <code>{components}</code>", + "missingValueComponentForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, la valeur <code> {valueComponent}</code> n'est pas un composant déclaré.<br /> Valeurs attendues <code>{components}</code>", + "overlappingpublishedversion": "Il existe une version déposée dans les dates de dépôt ont une période chevauchante avec la version déposée. <code>{overlapingFiles]</code>", + "patternNotMatched": "Pour le composant identifié : <code>{target}</code> la valeur <code>{value}</code> ne respecte pas le format attendu : <code>{pattern}</code>.", + "patternNotMatchedWithColumn": "Pour la colonne : <code>{target}</code> la valeur <code>{value}</code> ne respecte pas le format attendu : <code>{pattern}</code>.", + "requiredParentKeyColumnInCompositeReferenceForReference": "Dans la référence composite <code>{compositeReference}</code> la référence <code>{reference}</code> fait référence à <code>{referenceTo}</code> mais ne déclare pas de <i>parentKeyColumn</i> .", + "requiredReferenceInCompositeReferenceForParentKeyColumn": "Aucune référence n'a été déclarée pour la <i>parentKeyColumn</i> <code>{parentKeyColumn}</code> dans la référence composite <code>{compositeReference}</code> .", + "requiredValue": "Pour le composant identifié : <code>{target}</code> la valeur ne peut pas être nulle.", + "requiredValueWithColumn": "Pour la colonne : <code>{target}</code> la valeur ne peut pas être nulle.", + "sameHeaderLineAndFirstRowLineForConstantDescription": "Dans la section format->constant du dataType {dataType} la ligne d'en-tête ne doit pas être egale à la ligne de données.", + "timeScopeVariableComponentKeyMissingVariable": "Il faut indiquer la variable dans laquelle on recueille la période de temps à laquelle rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code>. Valeurs possibles <code>{variables}</code>", + "timeScopeVariableComponentKeyUnknownVariable": "<code>{variable}</code> ne fait pas partie des colonnes connues <code>{knownVariables}</code>", + "timeScopeVariableComponentPatternUnknown": "Le composant <code>{component}</code> de la variable <code>{variable}</code> ne peut pas être utilisé comme portant l’information temporelle car le format de date '<code>{pattern}</code>' n’est pas géré. Formats acceptés : <code>{knownPatterns}</code>", + "timeScopeVariableComponentWrongChecker": "Le composant <code>{component}</code> de la variable <code>{variable}</code> ne peut pas être utilisé comme portant l’information temporelle car ce n’est pas une donnée déclarée comme <code>{expectedChecker}</code>", + "timeVariableComponentKeyMissingComponent": "Il faut indiquer le composant de la variable <code>{variable}</code> dans laquelle on recueille la période de temps à laquelle rattacher la donnée pour le gestion des droits jeu de données <code>{dataType}</code>. Valeurs possibles <code>{knownComponents}</code>", + "timeVariableComponentKeyUnknownComponent": "<code>{component}</code> ne fait pas partie des composants connus pour la variable <code>{variable}</code>. Composants connus : <code>{knownComponents}</code>", + "timerangeoutofinterval": "La date <code>{value}</code> est incompatible avec l'intervale de dates du dépôt. Elle doit être comprise entre <code>{from}</code> et <code>{to}</code>.", + "norightforpublish": "Vous n'avez pas les droits sur le type de donnée <code>{dataType}</code> de l'application <code>{application}</code> de publier les valeurs de la ligne <code>{lineNumber}</code>.", + "tooBigRowLineForConstantDescription": "Dans la section format->constant du dataType {dataType} le numéro de ligne doit être inférieur à celui de la ligne de données.", + "tooLittleRowLineForConstantDescription": "Dans la section format->constant du dataType {dataType} le numéro de ligne doit être positif.", + "unDeclaredValueForChart": "Dans la description du graphe de la variable <code> {variable} </code> du type de données <code> {dataType} </code>, la valeur n'est pas déclarée.<br /> Valeurs attendues <code>{components}</code>", + "undeclaredDataGroupForVariable": "La variable <code>{variable}</code> n’est déclarée appartenir à aucun groupe de données, elle doit être présente dans un groupe", + "unexpectedHeaderColumn": "En-tête de colonne inattendu. En-tête attendu : <code>{expectedHeaderColumn}</code> <br />En-tête actuel : <code>{actualHeaderColumn}</code>", + "unexpectedTokenCount": "Le nombre de token est inattendu. Nombre attendu : <code>{expectedTokenCount}</code><br/>L'en-tête actuel : <code>{actualHeader}</code> comprend <code>{actualTokenCount}</code> tokens", + "unknownCheckerNameForValidationRuleInDataType": "Pour la règle de validation <code>{lineValidationRuleKey}</code> du type de données <code>{dataType}</code>, '<code>{checkerName}</code>' est déclaré mais ce n’est pas un contrôle connu. Contrôles connus : {allCheckerNames}", + "unknownCheckerNameForValidationRuleInReference": "Pour la règle de validation <code>{lineValidationRuleKey}</code> de la référence <code>{reference}</code>, '<code>{checkerName}</code>' est déclaré mais ce n’est pas un contrôle connu. Contrôles connus : {allCheckerNames}", + "unknownCheckerNameForVariableComponent": "Dans la description du type de données {datatype} le composant <code>{component}</code> de la variable <code>{variable}</code> le vérificateur de valeur <code>{checkerName}</code> est déclaré mais ce n’est pas un contrôle connu<br /> Vérificateurs connues : <code>{knownCheckerNames}</code>", + "unknownCheckerNameForVariableComponentCheckerInDataType": "Dans la validation du type de données <code>{dataType}</code> et la règle de validation <code>{validationRuleDescriptionEntryKey}</code>, '<code>{name}</code>' est déclaré mais ce n’est pas un contrôle connu: valeurs possibles <code>{checkerOnTargetNames}</code>.", + "unknownCheckerNameForVariableComponentCheckerInReference": "Dans la validation de la référence <code>{reference}</code> et la règle de validation <code>{validationRuleDescriptionEntryKey}</code>, '<code>{name}</code>' est déclaré mais ce n’est pas un contrôle connu: valeurs possibles <code>{checkerOnTargetNames}</code>.", + "unknownCheckerNameInReferenceColumn": "Pour le référentiel <code>{referenceToValidate}</code>, le contrôle défini pour la colonne <code>{column}</code> est <code>{checkerName}</code>. Or, ce n'est pas un contrôle connu. Les contrôles connus sont <code>{knownCheckerNames}</code>", + "unknownIllegalException": "Erreur inattendue : <code>{cause}</code>", + "unknownReferenceForChecker": "Pour le type de données <code>{dataType}</code>, la donnée <code>{datum}</code>, le composant <code>{component}</code>, la référence <code>{refType}</code> n’est pas dans les références acceptées qui sont : <code>{references}</code>", + "unknownReferenceForCheckerInDataType": "Pour le type de données <code>{dataType}</code>, la validation <code>{validationKey}</code>, la référence <code>{refType}</code> n’est pas dans les références acceptées qui sont : <code>{references}</code>", + "unknownReferenceForCheckerInReference": "Pour la référence <code>{reference}</code>, la validation <code>{validationKey}</code>, la référence <code>{refType}</code> n’est pas dans les références acceptées qui sont : <code>{references}</code>", + "unknownReferenceForCheckerInReferenceColumn": "Pour le référentiel <code>{referenceToValidate}</code> et la colonne <code>{column}</code>, le référentiel à utiliser pour le contrôle de valeur est <code>{refType}</code> qui n'est pas connu parmi <code>{knownReferences}</code>", + "unknownReferenceInCompositeReference": "La reference composite <code>{compositeReference}</code> contient des références qui ne sont pas déclarées <code>{unknownReferences}</code>. Références connues <code>{references}</code>", + "unknownReferenceInDatatypeReferenceDisplay": "Dans la surcharge de l'affichage des référentiels de la description du type de donnée <code>{dataType}</code>, le référentiel <code>{reference}</code> est inconnu . Référentiels connus connues : <code>{references}</code>", + "unknownUsedAsVariableComponentUniqueness": "Dans la description du type de données <code>{dataType}</code> dans la section <code><I>uniqueness</i></code> les descriptions de variable composants <code>{unknownUsedAsVariableComponentUniqueness}</code> n'existent pas. Valeurs acceptées <code>{availableVariableComponents}</code>", + "unknownVariablesInDataGroup": "le groupe de données <code>{dataGroup}</code> contient des données qui ne sont pas déclarées <code>{unknownVariables}</code>. Données connues <code>{variables}</code>", + "unrecognizedProperty": "Erreur à la ligne <code>{lineNumber}</code> (colonne <code>{columnNumber}</code>) : <code>{unknownPropertyName}</code>, c’est pas une propriété reconnue. Les propriétés reconnues sont <code>{knownProperties}</code>", + "unsupportedVersion": "Les fichiers YAML de version <code>{actualVersion}</code> ne sont pas gérés, version attendue <code>{expectedVersion}</code>", + "variableInMultipleDataGroup": "La variable <code>{variable}</code> est déclarée dans plusieurs groupes de données, elle ne doit être présente que dans un groupe", + "noCapturingGroupForDatatypeRepository": "Dans la section repository du datatype <code>{dataType}</code> l' expression de recherche ne contient aucun groupe de capture.", + "invalidPatternForDatatypeRepository": "Dans la section repository du datatype <code>{dataType}</code> l' expression de recherche est invalide.", + "invalidCapturingGroupForDatatypeRepositoryAuthorizationScope": "Dans la section repository du datatype <code>{dataType}</code> l'authorizationScope <code>{scopeName}</code> est <code>{scopeToken}</code>; il doit être compris entre 0 et {countGroups}.", + "invalidCapturingGroupForDatatypeRepository": "Dans la section repository du datatype <code>{dataType}</code> l'authorizationScope <code>{scopeName}</code> n'existe pas. Valeurs possibles <code>{registerScopes}</code>.", + "invalidCapturingGroupForStartDateDatatypeRepositoryDate": "Dans la section repository du datatype <code>{dataType}</code> le groupe de capture de la date de début <code>{token}</code> être compris entre 0 et {countGroups}.", + "invalidCapturingGroupForEndDateDatatypeRepositoryDate": "Dans la section repository du datatype <code>{dataType}</code> le groupe de capture de la date de fin <code>{token}</code> être compris entre 0 et {countGroups}.", + "exception": "Il manque la chaine de traduction pour l'erreur suivante. Merci de vérifiez que ce n'est pas un problème d'indantation avant de contacter les administrateurs. " + }, + "referencesManagement": { + "actions": "Actions", + "consult": "Consulter", + "download": "Télécharger", + "delete": "Supprimer", + "references": "Référentiels", + "data": "Données" + }, + "dataTypesManagement": { + "no_authorization": "Pas de gestion des autorisations pour {localName}", + "data-types": "Type de données", + "consult-authorization": "Consulter les autorisations", + "réinitialiser": "Réinitialiser", + "all": "tous", + "filtre": "filtre", + "tri": "tri", + "ASC": "ASC", + "DESC": "DESC", + "validate": "Valider", + "filtered": "Les filtres utilisés", + "sorted": "Les tris utilisés", + "title-modal-numeric": "Choix de l'interval de valeur", + "title-modal-date": "Choix de l'interval de date", + "manage-datasets": "Gérer les jeux de données" + }, + "dataTypesRepository": { + "card-title-upload-file": "Déposer une version sur ce jeux de données", + "start-date": "Date de début", + "end-date": "Date de fin", + "comment": "Commentaire", + "choose-file": "Choisir un fichier", + "placeholder-datepicker": "Taper ou sélectionner une date...", + "placeholder-select": "Sélectionner...", + "submit": "Envoyer", + "list-file-data": "Liste des jeux de données sur ce dépôt", + "list-file-data-period": "Liste des versions pour la période", + "table-file-data-id": "ID", + "table-file-data-size": "Taille", + "table-file-data-create": "Création", + "table-file-data-create-by": "Créer par :", + "table-file-data-publish": "Publier", + "table-file-data-publish-by": "Publier par :", + "table-file-data-publication": "Publication", + "table-file-data-delete": "Supprimer", + "table-file-data-period": "Période" + }, + "dataTypeAuthorizations": { + "add-auhtorization": "Ajouter une autorisation", + "sub-menu-data-type-authorizations": "autorisations de {dataType}", + "sub-menu-new-authorization": "nouvelle autorisation", + "users": "Utilisateurs", + "name": "Nom", + "roles": "Roles", + "users-placeholder": "Choisir les utilisateurs à autoriser", + "data-groups": "Groupes de données", + "data-groups-placeholder": "Choisir les données à autoriser", + "authorization-scopes": "Périmètres d'autorisation", + "period": "Période d'autorisation", + "from-date": "À partir du", + "to-date": "Jusqu'au", + "from-date-to-date": "De date à date", + "always": "Toujours", + "to": "à ", + "from": "de", + "create": "Créer l'autorisation", + "user": "Utilisateur", + "data-group": "Groupe de données", + "data-type": "Type de donnée", + "actions": "Actions", + "revoke": "Révoquer", + "save" : "Enregister modification", + "add-application-name": "Ajouter une application" + }, + "ponctuation": { + "semicolon": ";", + "comma": ",", + "period": ".", + "colon": ":", + "hyphen": "-", + "plus": "+", + "less": "<", + "greater": ">", + "arrow-right": "->", + "arrow-left": "<-", + "slash": "/", + "regEx": ".*", + "star": "*" + } } \ No newline at end of file diff --git a/ui/src/main.js b/ui/src/main.js index 56109adeefffb22efa5d85600b5ea8bb1a0e09d7..98d52acf80b51f854506d45d6b46e2c240c36be5 100644 --- a/ui/src/main.js +++ b/ui/src/main.js @@ -3,168 +3,174 @@ import App from "@/App.vue"; import router from "./router"; import Buefy from "buefy"; -import { library } from "@fortawesome/fontawesome-svg-core"; +import {library} from "@fortawesome/fontawesome-svg-core"; import { - faCircle, - faCheck, - faCheckCircle, - faQuestionCircle, - faSquare, - faMinusSquare, - faCheckSquare, - faAngleLeft, - faAngleRight, - faFilter, - faPenSquare, - faSearch, - faSearchPlus, - faArrowDown, - faArrowUp, - faCaretDown, - faCaretUp, - faDownload, - faDraftingCompass, - faExclamationCircle, - faEye, - faEyeSlash, - faGlobe, - faPlus, - faPoll, - faSignOutAlt, - faTimes, - faTrashAlt, - faUpload, - faWrench, - faVial, - faCaretRight, - faArrowLeft, - faSignInAlt, - faUserPlus, - faUserAstronaut, - faKey, - faChevronUp, - faChevronDown, - faCalendarDay, - faPaperPlane, - faExternalLinkSquareAlt, - faCalendar, - faRedo, - faStream, - faSortAmountDown, - faSortUp, - faSortDown, - faArchive, - faTimesCircle, - faEdit, - faInfo, - faQuestion, + faAngleLeft, + faAngleRight, + faArchive, + faArrowDown, + faArrowLeft, + faArrowUp, + faCalendar, + faCalendarDay, + faCaretDown, + faCaretRight, + faCaretUp, + faCheck, + faCheckCircle, + faCheckSquare, + faChevronDown, + faChevronUp, + faCircle, + faDownload, + faDraftingCompass, + faEdit, + faExclamationCircle, + faExternalLinkSquareAlt, + faEye, + faEyeSlash, + faFile, + faFilter, + faGlobe, + faInfo, + faKey, + faMinusSquare, + faPaperPlane, + faPenSquare, + faPlus, + faPoll, + faQuestion, + faQuestionCircle, + faRedo, + faSearch, + faSearchPlus, + faSignInAlt, + faSignOutAlt, + faSortAmountDown, + faSortDown, + faSortUp, + faSquare, + faStream, + faTimes, + faTimesCircle, + faTrashAlt, + faUpload, + faUserAstronaut, + faUserPlus, + faVial, + faWrench, } from "@fortawesome/free-solid-svg-icons"; -import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; -library.add( - faCircle, - faEye, - faEyeSlash, - faPlus, - faExclamationCircle, - faQuestionCircle, - faCheck, - faCheckCircle, - faPenSquare, - faSquare, - faMinusSquare, - faCheckSquare, - faSignOutAlt, - faGlobe, - faUpload, - faFilter, - faSearch, - faSearchPlus, - faArrowUp, - faArrowDown, - faAngleLeft, - faAngleRight, - faWrench, - faPoll, - faDraftingCompass, - faCaretUp, - faCaretDown, - faTimes, - faTrashAlt, - faDownload, - faVial, - faCaretRight, - faArrowLeft, - faSignInAlt, - faUserPlus, - faUserAstronaut, - faKey, - faChevronUp, - faChevronDown, - faCalendarDay, - faPaperPlane, - faArrowLeft, - faExternalLinkSquareAlt, - faCalendar, - faRedo, - faStream, - faSortAmountDown, - faSortDown, - faSortUp, - faArchive, - faTimesCircle, - faEdit, - faInfo, - faQuestion -); -Vue.component("vue-fontawesome", FontAwesomeIcon); - +import { + faFloppyDisk as farFloppyDisk, +} from "@fortawesome/free-regular-svg-icons"; +library.add(farFloppyDisk); +import {FontAwesomeIcon} from "@fortawesome/vue-fontawesome"; import "@/style/global.scss"; // Translation -import { UserPreferencesService } from "./services/UserPreferencesService"; +import {UserPreferencesService} from "./services/UserPreferencesService"; import VueI18n from "vue-i18n"; import i18n_en from "@/locales/en.json"; import i18n_fr from "@/locales/fr.json"; +// Validation +import "vee-validate"; +import {confirmed, required} from "vee-validate/dist/rules"; +import {extend} from "vee-validate"; + +library.add( + faCircle, + faEye, + faEyeSlash, + faPlus, + faExclamationCircle, + faQuestionCircle, + faCheck, + faCheckCircle, + faPenSquare, + faSquare, + faMinusSquare, + faCheckSquare, + faSignOutAlt, + faGlobe, + faUpload, + faFilter, + faSearch, + faSearchPlus, + faArrowUp, + faArrowDown, + faAngleLeft, + faAngleRight, + faWrench, + faPoll, + faDraftingCompass, + faCaretUp, + faCaretDown, + faTimes, + faTrashAlt, + faDownload, + faVial, + faCaretRight, + faArrowLeft, + faSignInAlt, + faUserPlus, + faUserAstronaut, + faKey, + faChevronUp, + faChevronDown, + faCalendarDay, + faPaperPlane, + faArrowLeft, + faExternalLinkSquareAlt, + faCalendar, + faRedo, + faStream, + faSortAmountDown, + faSortDown, + faSortUp, + faArchive, + faTimesCircle, + faEdit, + faInfo, + faQuestion, + faFile, +); +Vue.component("vue-fontawesome", FontAwesomeIcon); Vue.use(VueI18n); const userPreferencesService = UserPreferencesService.INSTANCE; export const i18n = new VueI18n({ - locale: userPreferencesService.getUserPrefLocale(), - messages: { - en: i18n_en, - fr: i18n_fr, - }, + locale: userPreferencesService.getUserPrefLocale(), + messages: { + en: i18n_en, + fr: i18n_fr, + }, }); -// Validation -import "vee-validate"; -import { confirmed, required } from "vee-validate/dist/rules"; -import { extend } from "vee-validate"; // Ici on surcharge les messages d'erreur de vee-validate. // Pour plus de règles : https://logaretm.github.io/vee-validate/guide/rules.html extend("required", { - ...required, - message: i18n.t("validation.invalid-required"), + ...required, + message: i18n.t("validation.invalid-required"), }); extend("confirmed", { - ...confirmed, - message: i18n.t("validation.invalid-confirmed").toString(), + ...confirmed, + message: i18n.t("validation.invalid-confirmed").toString(), }); extend("validApplicationName", { - message: i18n.t("validation.invalid-application-name"), - validate: (value) => { - return value && value.match("^[a-z]*$") != null; - }, + message: i18n.t("validation.invalid-application-name"), + validate: (value) => { + return value && value.match("^[a-z]*$") != null; + }, }); extend("validApplicationNameLength", { - message: i18n.t("validation.invalid-application-name-length"), - validate: (value) => { - return value && value.length >= 3 && value.length <= 20; - }, + message: i18n.t("validation.invalid-application-name-length"), + validate: (value) => { + return value && value.length >= 3 && value.length <= 20; + }, }); // extend("dateIsAfter", { @@ -177,15 +183,15 @@ extend("validApplicationNameLength", { // Buefy Vue.use(Buefy, { - defaultIconComponent: "vue-fontawesome", - defaultIconPack: "fas", + defaultIconComponent: "vue-fontawesome", + defaultIconPack: "fas", }); Vue.config.productionTip = false; const app = new Vue({ - router, - i18n, - render: (h) => h(App), + router, + i18n, + render: (h) => h(App), }).$mount("#app"); -export default app; +export default app; \ No newline at end of file diff --git a/ui/src/router/index.js b/ui/src/router/index.js index aa6af9daca1a6ee777ea3b7248c07bb7e7cb1878..bc0b77b795e09e70c12cd11e0d298a687923c253 100644 --- a/ui/src/router/index.js +++ b/ui/src/router/index.js @@ -11,6 +11,8 @@ import DataTypesManagementView from "@/views/datatype/DataTypesManagementView.vu import DataTypesRepositoryView from "@/views/datatype/DataTypesRepositoryView.vue"; import DataTypeAuthorizationsView from "@/views/authorizations/DataTypeAuthorizationsView.vue"; import DataTypeAuthorizationInfoView from "@/views/authorizations/DataTypeAuthorizationInfoView.vue"; +import AuthorizationManagementView from "@/views/authorizations/AuthorizationManagementView.vue"; +import AuthorizationManagementForApplicationCreatorView from "@/views/authorizations/AuthorizationManagementForApplicationCreatorView.vue"; Vue.use(VueRouter); @@ -39,6 +41,16 @@ const routes = [ name: "Application creation", component: ApplicationCreationView, }, + { + path: "/authorizationsManagementForApplicationCreator", + name: "Authorizations application creation", + component: AuthorizationManagementForApplicationCreatorView, + }, + { + path: "/authorizationsManagement", + name: "Authorizations mangement view", + component: AuthorizationManagementView, + }, { path: "/applications/:applicationName/references", name: "References management view", @@ -83,4 +95,4 @@ const router = new VueRouter({ routes, }); -export default router; +export default router; \ No newline at end of file diff --git a/ui/src/services/rest/AuthorizationService.js b/ui/src/services/rest/AuthorizationService.js index b3670d6a0014e021bd0e3bcb9255439a3740f31c..8b6a8f895f501c1c073e84f0e934551e4fa49081 100644 --- a/ui/src/services/rest/AuthorizationService.js +++ b/ui/src/services/rest/AuthorizationService.js @@ -8,9 +8,10 @@ export class AuthorizationService extends Fetcher { } async getAuthorizations(applicationName, dataTypeId, authorizationId) { - return this.get( + return applicationName?this.get( `applications/${applicationName}/dataType/${dataTypeId}/authorization/${authorizationId}` - ); + ): + this.get("authorization" ) ; } async getDataAuthorizations(applicationName, dataTypeId) { @@ -23,9 +24,23 @@ export class AuthorizationService extends Fetcher { async createAuthorization(applicationName, dataTypeId, authorizationModel) { return this.post( - `applications/${applicationName}/dataType/${dataTypeId}/authorization`, - authorizationModel, - false + `applications/${applicationName}/dataType/${dataTypeId}/authorization`, + authorizationModel, + false + ); + } + + async createAuthorizedRole(roleName, userIdOrLogin, applicationPattern) { + return this.put( + `/authorization/${roleName}`, + {applicationPattern,userIdOrLogin} + ); + } + + async revokeAuthorizedRole(roleName, userIdOrLogin, applicationPattern) { + return this.delete( + `authorization/${roleName}`, + {applicationPattern,userIdOrLogin} ); } @@ -34,4 +49,4 @@ export class AuthorizationService extends Fetcher { `applications/${applicationName}/dataType/${dataTypeId}/authorization/${authorizationId}` ); } -} +} \ No newline at end of file diff --git a/ui/src/style/_common.scss b/ui/src/style/_common.scss index 620cbeb27160f3e2a138fb83d989d227cc84a507..38ca866f134bcc711e5bb4cbb1176be0c6e3adf3 100644 --- a/ui/src/style/_common.scss +++ b/ui/src/style/_common.scss @@ -30,6 +30,11 @@ a { display: inline-flex; } +.inputAuth .control.has-icons-left .icon.is-left{ + top: 8px; + font-size: 0.5rem; + align-items: center; +} .control.has-icons-left .icon, .control.has-icons-left .icon.is-left{ top: 5px; left: 5px; @@ -52,7 +57,6 @@ a { font-weight: bold; } } - .hide { display: none; } diff --git a/ui/src/views/authorizations/AuthorizationManagementForApplicationCreatorView.vue b/ui/src/views/authorizations/AuthorizationManagementForApplicationCreatorView.vue new file mode 100644 index 0000000000000000000000000000000000000000..1f4771ad5c1de8e22e375927c631eccccf99baf2 --- /dev/null +++ b/ui/src/views/authorizations/AuthorizationManagementForApplicationCreatorView.vue @@ -0,0 +1,263 @@ +<template> + <PageView class="with-submenu"> + <SubMenu + :paths="subMenuPaths" + :root="$t('titles.applications-page')" + role="navigation" + :aria-label="$t('menu.aria-sub-menu')" + /> + <h1 class="title main-title"> + {{ + $t("titles.authorizations-management") + }} + </h1> + <div class="rows"> + <b-table class="row" :data="authorizations" + paginated + :current-page="currentPage" + per-page="15" + > + <template #pagination> + <b-pagination + v-model="currentPage" + :current-page.sync="currentPage" + per-page="15" + :total="authorizations.length" + role="navigation" + :aria-label="$t('menu.aria-pagination')" + :aria-current-label="$t('menu.aria-curent-page')" + :aria-next-label="$t('menu.aria-next-page')" + :aria-previous-label="$t('menu.aria-previous-page')" + order="is-centered" + range-after="3" + range-before="3" + :rounded="true" + /> + </template> + <b-table-column + searchable + field="admin" + :label="'login'" + width="300" + sortable + v-slot="props" + :custom-search="search" + > + <template> + {{ props.row.login }} + </template> + </b-table-column> + <b-table-column + v-if="currentUser.authorizedForApplicationCreation" + field="applications" + :label="'Applications'" + width="300" + sortable + v-slot="props" + > + <template> + <div class="columns"> + <b-field + class="column is-2" + v-for="auth in props.row.authorizations" + :key="auth"> + <p style="margin-top: 8px;"> + {{ auth }} {{ $t("ponctuation.colon") }} + </p> + <b-button + v-if=" props.row.authorizations.find(a=>currentUserApplicationPattern.find(aa=>new RegExp(aa).test(a)))" + icon-left="times-circle" + size="is-small" + type="is-danger is-light" + @click="removeApplication(props.row.login, auth)" + style="height: 1.5em; background-color: transparent; font-size: 1.45rem" + > + </b-button> + <b-button v-else + size="is-small" + type="is-danger is-light" + style="height: 1.5em; background-color: transparent; font-size: 1.45rem" + > + </b-button> + </b-field> + <b-field + class="column is-2" + v-for="auth in currentUserApplicationPattern.filter(a=>! props.row.authorizations.find(aa=>aa === a))" + :key="auth"> + <p style="margin-top: 8px;" + class="has-text-grey-light"> + {{ auth }} {{ $t("ponctuation.colon") }} + </p> + <b-button + icon-left="pen-square" + size="is-small" + type="primary is-light" + style="height: 1.5em; background-color: transparent; font-size: 1.45rem" + @click="addApplication(props.row.login, auth)" + > + </b-button> + </b-field> + </div> + </template> + </b-table-column> + + </b-table> + <div class="row"> + <div class="column is-offset-10 is-2"> + <b-button icon-left="floppy-disk" icon-pack="far" type="is-primary is-right" @click="registerChanges"> + {{ $t("dataTypeAuthorizations.save") }} + </b-button> + </div> + </div> + </div> + </PageView> +</template> + +<script> +import SubMenu from "@/components/common/SubMenu.vue"; + +import {Component, Vue} from "vue-property-decorator"; +import PageView from "../common/PageView.vue"; +import {SubMenuPath} from "@/components/common/SubMenu"; +import {AuthorizationService} from "@/services/rest/AuthorizationService"; +import DataTypeAuthorizationInfoView from "@/views/authorizations/DataTypeAuthorizationInfoView"; + +@Component({ + components: {DataTypeAuthorizationInfoView, PageView, SubMenu}, +}) +export default class AuthorizationManagementForApplicationCreatorView extends Vue { + subMenuPaths = []; + authorizationService = AuthorizationService.INSTANCE; + authorizations = [] + currentUser = localStorage.getItem('authenticatedUser') + currentUserApplicationPattern = localStorage.getItem('authenticatedUser') + totalRows = -1; + currentPage = 1; + + search(user, search) { + console.log('search', user, search) + return user.login.match(search) + } + + columns = [ + {field: 'login', label: 'login'} + , 'administrateur', 'applications'] + changes = { + administrator: {add: [], remove: []}, + applications: {} + } + currentUser = JSON.parse(localStorage.getItem('authenticatedUser')) + + async init() { + this.currentUserApplicationPattern = this.currentUser.authorizations + this.changes = { + administrator: {add: [], remove: []}, + applications: {} + } + var authorizations = await this.authorizationService.getAuthorizations() + authorizations = authorizations.map(authorization => { + authorization.authorizations = authorization.authorizations.filter(this.filterAuthorization) + return authorization + }) + console.log('authorizations', authorizations) + this.authorizations = authorizations; + } + + filterAuthorization(authorization) { + return this.currentUserApplicationPattern.find(auth => auth === authorization || new RegExp(authorization).test(auth)) + } + + async created() { + this.subMenuPaths = [ + new SubMenuPath( + this.$t("titles.authorizations-management"), + () => { + this.$router.push( + `/authorizationsManagementForApplicationCreator` + ); + }, + () => this.$router.push(`/applications`) + ) + ]; + this.init(); + } + + async registerChanges() { + await this.makeChanges(); + await this.init(); + } + + async makeChanges() { + for (const userId of this.changes.administrator.add) { + await this.authorizationService.createAuthorizedRole('authorizedForApplicationCreation', userId); + } + for (const userId of this.changes.administrator.remove) { + await this.authorizationService.revokeAuthorizedRole('authorizedForApplicationCreation', userId); + } + for (const userId in this.changes.applications) { + if (this.changes.applications[userId].add) { + for (const applicationPattern of this.changes.applications[userId].add) { + await this.authorizationService.createAuthorizedRole('applicationCreator', userId, applicationPattern) + } + } + if (this.changes.applications[userId].remove) { + for (const applicationPattern of this.changes.applications[userId].remove) { + await this.authorizationService.revokeAuthorizedRole('applicationCreator', userId, applicationPattern) + } + } + } + } + + changed(user, value) { + let style = '' + let changes = this.changes.applications[user] + if (changes) { + let add = changes.add + add = add && add.filter(v => v === value).length + let remove = changes.remove + remove = remove && remove.filter(v => v === value).length + style = add || remove ? 'hasBorder ' : '' + } + return style + } + + addApplication(user, value) { + this.authorizations = this.authorizations.map(authorization => { + if (authorization.login === user) { + authorization.authorizations.push(value) + } + return authorization + }); + + if (this.changes.applications[user]?.remove?.find(v => v === value)) { + this.changes.applications[user].remove = this.changes.applications[user].remove.filter(v => v !== value) + } else { + this.changes.applications[user] = this.changes.applications[user] || {} + this.changes.applications[user].add = this.changes.applications[user].add || [] + this.changes.applications[user].add.push(value) + } + } + + removeApplication(user, value) { + this.authorizations = this.authorizations.map(authorization => { + if (authorization.login === user) { + let a = authorization.authorizations.filter(aa => aa !== value) + authorization.authorizations = a; + } + return authorization + }); + if (this.changes.applications[user]?.add?.find(v => v === value)) { + this.changes.applications[user].add = this.changes.applications[user].add.filter(v => v !== value) + } else { + this.changes.applications[user] = this.changes.applications[user] || {} + this.changes.applications[user].remove = this.changes.applications[user].remove || [] + this.changes.applications[user].remove.push(value) + } + } +} +</script> +<style lang="scss" scoped> +.hasBorder { + border: solid #fb0738 6px; +} +</style> \ No newline at end of file diff --git a/ui/src/views/authorizations/AuthorizationManagementView.vue b/ui/src/views/authorizations/AuthorizationManagementView.vue new file mode 100644 index 0000000000000000000000000000000000000000..c3e6d9414296cbfbebd3f1250d48f12d260b6cad --- /dev/null +++ b/ui/src/views/authorizations/AuthorizationManagementView.vue @@ -0,0 +1,230 @@ +<template> + <PageView class="with-submenu"> + <SubMenu + :paths="subMenuPaths" + :root="$t('titles.applications-page')" + role="navigation" + :aria-label="$t('menu.aria-sub-menu')" + /> + <h1 class="title main-title"> + {{ + $t("titles.authorizations-management") + }} + </h1> + <div class="rows"> + <b-table class="row" :data="authorizations" + paginated + :current-page="currentPage" + per-page="15" + > + <template #pagination> + <b-pagination + v-model="currentPage" + :current-page.sync="currentPage" + per-page="15" + :total="authorizations.length" + role="navigation" + :aria-label="$t('menu.aria-pagination')" + :aria-current-label="$t('menu.aria-curent-page')" + :aria-next-label="$t('menu.aria-next-page')" + :aria-previous-label="$t('menu.aria-previous-page')" + order="is-centered" + range-after="3" + range-before="3" + :rounded="true" + /> + </template> + <b-table-column + searchable + field="admin" + :label="'login'" + width="300" + sortable + v-slot="props" + :custom-search="search" + > + <template> + {{ props.row.login }} + </template> + </b-table-column> + <b-table-column + v-if="currentUser.superadmin" + field="administrator" + :label="'Administration'" + width="300" + sortable + v-slot="props" + > + <template> + <b-checkbox v-model="props.row.superadmin" + @input="selectAdmin($event, props.row)"/> + </template> + </b-table-column> + <b-table-column + v-if="currentUser.authorizedForApplicationCreation" + field="applications" + :label="'Applications'" + width="300" + sortable + v-slot="props" + > + <template> + <b-taginput + class="inputAuth" + :before-adding="beforeAdding" + v-model="props.row.authorizations" + @add="addApplication($event, props.row)" + @remove="removeApplication($event, props.row)" + ellipsis + type="is-dark" + icon="file" + :placeholder="$t('dataTypeAuthorizations.add-application-name')" + aria-close-label="Supprimer l'application"> + </b-taginput> + </template> + </b-table-column> + + </b-table> + <div class="row"> + <div class="column is-offset-10 is-2"> + <b-button icon-left="floppy-disk" icon-pack="far" type="is-primary is-right" @click="registerChanges"> + {{ $t("dataTypeAuthorizations.save") }} + </b-button> + </div> + </div> + </div> + </PageView> +</template> + +<script> +import SubMenu from "@/components/common/SubMenu.vue"; + +import {Component, Vue} from "vue-property-decorator"; +import PageView from "../common/PageView.vue"; +import {SubMenuPath} from "@/components/common/SubMenu"; +import {AuthorizationService} from "@/services/rest/AuthorizationService"; + +@Component({ + components: {PageView, SubMenu}, +}) +export default class AuthorizationManagementView extends Vue { + subMenuPaths = []; + authorizationService = AuthorizationService.INSTANCE; + authorizations = [] + totalRows = -1; + currentPage = 1; + + + search(user, search) { + console.log('search', user, search) + return user.login.match(search) + } + + columns = [ + {field: 'login', label: 'login'} + , 'administrateur', 'applications'] + changes = { + administrator: {add: [], remove: []}, + applications: {} + } + currentUser = JSON.parse(localStorage.getItem('authenticatedUser')) + + async init() { + this.changes = { + administrator: {add: [], remove: []}, + applications: {} + } + this.authorizations = await this.authorizationService.getAuthorizations(); + } + + async created() { + this.subMenuPaths = [ + new SubMenuPath( + this.$t("titles.authorizations-management"), + () => { + this.$router.push( + `/authorizationsManagement` + ); + }, + () => this.$router.push(`/applications`) + ) + ]; + this.init(); + } + + async registerChanges() { + await this.makeChanges(); + await this.init() + } + + async makeChanges(){ + this.changes.administrator.add.forEach(userId => { + this.authorizationService.createAuthorizedRole('superadmin', userId) + }) + this.changes.administrator.remove.forEach(userId => { + this.authorizationService.revokeAuthorizedRole('superadmin', userId) + }) + for (const userId in this.changes.applications) { + if (this.changes.applications[userId].add) { + this.changes.applications[userId].add.forEach(applicationPattern => { + this.authorizationService.createAuthorizedRole('applicationCreator', userId, applicationPattern) + }) + } + } + for (const userId in this.changes.applications) { + if (this.changes.applications[userId].remove) { + this.changes.applications[userId].remove.forEach(applicationPattern => { + this.authorizationService.revokeAuthorizedRole('applicationCreator', userId, applicationPattern) + }) + } + }} + + selectAdmin(isAdmin, user) { + console.log('add', this.changes.administrator.add, 'remove', this.changes.administrator.remove) + if (isAdmin) { + if (this.changes.administrator.remove.find(v => v === user.id)) { + this.changes.administrator.remove = this.changes.administrator.remove.filter(v => v === v.id) + } else if (!this.changes.administrator.add.find(v => v === user.id)) { + this.changes.administrator.add.push(user.id) + } + } else { + if (this.changes.administrator.add.find(v => v === user.id)) { + this.changes.administrator.add = this.changes.administrator.add.filter(v => v === v.id) + } else if (!this.changes.administrator.remove.find(v => v === user.id)) { + this.changes.administrator.remove.push(user.id) + } + } + } + + addApplication(value, user) { + console.log('adding ' + value) + if (this.changes.applications[user.id]?.remove?.find(v => v === value)) { + this.changes.applications[user.id].remove = this.changes.applications[user.id].remove.filter(v => v !== value) + } else { + this.changes.applications[user.id] = this.changes.applications[user.id] || {} + this.changes.applications[user.id].add = this.changes.applications[user.id].add || [] + this.changes.applications[user.id].add.push(value) + } + } + + removeApplication(value, user) { + if (this.changes.applications[user.id]?.add?.find(v => v === value)) { + this.changes.applications[user.id].add = this.changes.applications[user.id].add.filter(v => v !== value) + } else { + this.changes.applications[user.id] = this.changes.applications[user.id] || {} + this.changes.applications[user.id].remove = this.changes.applications[user.id].remove || [] + this.changes.applications[user.id].remove.push(value) + } + } + + beforeAdding(value) { + console.log('before adding ' + value) + return value + } +} +</script> +<style lang="scss" scoped> +.icon { + font-size: 0.5rem; +} +</style> \ No newline at end of file diff --git a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue index 75f7cdad3e39f1985c1de2cfcdf59b00286baf12..1a4ff63fdb8ba1e5c30b1e336187b46f88f2187a 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue @@ -246,4 +246,4 @@ export default class DataTypeAuthorizationsView extends Vue { } } } -</script> +</script> \ No newline at end of file diff --git a/ui/src/views/common/MenuView.vue b/ui/src/views/common/MenuView.vue index a341304d4ec9dc40944713e08167efe5f062c753..f4cd8f4cb457fbd2c9a6b5cd1506f572f5070359 100644 --- a/ui/src/views/common/MenuView.vue +++ b/ui/src/views/common/MenuView.vue @@ -55,14 +55,34 @@ </template> <b-dropdown-item - @click="logout()" - @keypress.enter="logout()" - tabindex="0" - aria-role="menuitem" + @click="logout()" + @keypress.enter="logout()" + tabindex="0" + aria-role="menuitem" > <b-icon icon="sign-out-alt" /> {{ $t("menu.logout") }} </b-dropdown-item> + <b-dropdown-item + v-if="currentUser.superadmin" + @click="showApplicationRightManagement()" + @keypress.enter="showApplicationRightManagement()" + tabindex="0" + aria-role="menuitem" + > + <b-icon icon="wrench" /> + {{ $t("menu.authorizations") }} + </b-dropdown-item> + <b-dropdown-item + v-if="!currentUser.superadmin && currentUser.authorizedForApplicationCreation" + @click="showApplicationRightManagementForApplicationCreator()" + @keypress.enter="showApplicationRightManagementForApplicationCreator()" + tabindex="0" + aria-role="menuitem" + > + <b-icon icon="wrench" /> + {{ $t("menu.authorizations") }} + </b-dropdown-item> </b-dropdown> </b-navbar-item> </template> @@ -106,6 +126,14 @@ export default class MenuView extends Vue { this.loginService.logout(); } + showApplicationRightManagement() { + this.$router.push("/authorizationsManagement"); + } + + showApplicationRightManagementForApplicationCreator() { + this.$router.push("/authorizationsManagementForApplicationCreator"); + } + setUserPrefLocale() { this.userPreferencesService.setUserPrefLocale(this.chosenLocale); } @@ -195,4 +223,4 @@ export default class MenuView extends Vue { fill: white; } } -</style> +</style> \ No newline at end of file diff --git a/ui/src/views/datatype/DataTypesRepositoryView.vue b/ui/src/views/datatype/DataTypesRepositoryView.vue index 44cb2b161116cd6a4d92b3a1b30467b852bf3fcb..092d3f138ca0531b91bc6fab2e982ffccc1233ab 100644 --- a/ui/src/views/datatype/DataTypesRepositoryView.vue +++ b/ui/src/views/datatype/DataTypesRepositoryView.vue @@ -2,10 +2,10 @@ <div> <PageView class="with-submenu"> <SubMenu - :paths="subMenuPaths" - :root="application.localName || application.title" - role="navigation" - :aria-label="$t('menu.aria-sub-menu')" + :paths="subMenuPaths" + :root="application.localName || application.title" + role="navigation" + :aria-label="$t('menu.aria-sub-menu')" /> <h1 class="title main-title"> {{ @@ -22,24 +22,24 @@ <b-dropdown :ref="authKey" expanded> <template #trigger="{ active }"> <b-button - expanded - :icon-right="active ? 'chevron-up' : 'chevron-down'" - type="is-primary" + expanded + :icon-right="active ? 'chevron-up' : 'chevron-down'" + type="is-primary" > {{ internationalisationService.getLocaleforPath( - application, - getAuthorizationScopePath(authKey), - authKey + application, + getAuthorizationScopePath(authKey), + authKey ) }} </b-button> </template> <DropDownMenu - v-for="(option, optionKey) in authReference" - :key="optionKey" - :option="option" - @select-menu-item="selectAuthorization(authKey, $event)" + v-for="(option, optionKey) in authReference" + :key="optionKey" + :option="option" + @select-menu-item="selectAuthorization(authKey, $event)" /> </b-dropdown> </b-field> @@ -50,20 +50,20 @@ <h1> {{ this.requiredAuthorizationsObject - ? Object.entries(this.requiredAuthorizationsObject) - .filter((e) => e[1]) - .map( - (e) => - internationalisationService.getLocaleforPath( - application, - getAuthorizationScopePath(e[0]), - e[0] - ) + - " : " + - e[1] - ) - .join(", ") - : "" + ? Object.entries(this.requiredAuthorizationsObject) + .filter((e) => e[1]) + .map( + (e) => + internationalisationService.getLocaleforPath( + application, + getAuthorizationScopePath(e[0]), + e[0] + ) + + " : " + + e[1] + ) + .join(", ") + : "" }} </h1> </div> @@ -88,15 +88,15 @@ <div class="column"> <b-field :label="$t('dataTypesRepository.start-date')" data-cy="dateStart"> <b-datepicker - v-model="startDate" - :date-parser="parseDate" - :date-formatter="formatDate" - :placeholder=" + v-model="startDate" + :date-parser="parseDate" + :date-formatter="formatDate" + :placeholder=" $t('dataTypesRepository.placeholder-datepicker') + ' dd-MM-YYYY, dd-MM-YYYY hh, dd-MM-YYYY hh:mm, dd-MM-YYYY HH:mm:ss' " - editable - icon="calendar" + editable + icon="calendar" > </b-datepicker> </b-field> @@ -104,32 +104,32 @@ <div class="column"> <b-field :label="$t('dataTypesRepository.end-date')" data-cy="dateEnd"> <b-datepicker - v-model="endDate" - :date-parser="parseDate" - :date-formatter="formatDate" - :placeholder=" + v-model="endDate" + :date-parser="parseDate" + :date-formatter="formatDate" + :placeholder=" $t('dataTypesRepository.placeholder-datepicker') + ' dd-MM-YYYY, dd-MM-YYYY hh, dd-MM-YYYY hh:mm, dd-MM-YYYY HH:mm:ss' " - editable - icon="calendar" + editable + icon="calendar" > </b-datepicker> </b-field> </div> <div class="column"> <b-upload - @input="changeFile" - v-model="file" - class="file-label" - style="margin-top: 30px" - data-cy="changeFileButton" + @input="changeFile" + v-model="file" + class="file-label" + style="margin-top: 30px" + data-cy="changeFileButton" > <span class="file-cta"> <b-icon class="file-icon" icon="upload"></b-icon> <span class="file-label">{{ - $t("dataTypesRepository.choose-file") - }}</span> + $t("dataTypesRepository.choose-file") + }}</span> </span> <span v-if="file" class="file-name"> {{ file.name }} @@ -148,7 +148,7 @@ <div class="column is-10"></div> <div class="column is-2" style="float: right"> <b-button type="is-dark" @click="upload" style="float: right" expanded - >{{ $t("dataTypesRepository.submit") }} + >{{ $t("dataTypesRepository.submit") }} </b-button> </div> </footer> @@ -160,9 +160,9 @@ <div class="card column"> <div class="card-content"> <table - v-if="datasets && Object.keys(datasets).length" - class="table is-striped is-fullwidth numberData" - style="text-align: center; vertical-align: center" + v-if="datasets && Object.keys(datasets).length" + class="table is-striped is-fullwidth numberData" + style="text-align: center; vertical-align: center" > <caption> {{ @@ -175,12 +175,12 @@ <th align>{{ $t("dataTypesRepository.table-file-data-publication") }}</th> </tr> <tr - v-for="(dataset, periode) in datasets" - :key="dataset.id" - @click="showDatasets(dataset)" - @keypress.enter="showDatasets(dataset)" - tabindex="0" - style="cursor: pointer" + v-for="(dataset, periode) in datasets" + :key="dataset.id" + @click="showDatasets(dataset)" + @keypress.enter="showDatasets(dataset)" + tabindex="0" + style="cursor: pointer" > <td align>{{ periode }}</td> <td align>{{ Object.keys(dataset.datasets).length }}</td> @@ -188,9 +188,9 @@ </tr> </table> <table - v-if="currentDataset && currentDataset.length" - class="table is-striped is-fullwidth" - style="text-align: center; vertical-align: center" + v-if="currentDataset && currentDataset.length" + class="table is-striped is-fullwidth" + style="text-align: center; vertical-align: center" > <caption> {{ @@ -199,21 +199,7 @@ {{ currentDataset[0].periode }} - <div v-if="errorsMessages.length" style="margin: 10px"> - <div v-for="msg in errorsMessages" v-bind:key="msg"> - <b-message - :title="$t('message.data-type-config-error')" - type="is-danger" - has-icon - :aria-close-label="$t('message.close')" - class="mt-4 DataTypesManagementView-message" - > - <span v-html="msg" /> - </b-message> - </div> - </div> </caption> - <tr> <th align>{{ $t("dataTypesRepository.table-file-data-id") }}</th> <th align>{{ $t("dataTypesRepository.table-file-data-size") }}</th> @@ -232,10 +218,10 @@ <p>{{ UTCToString(dataset.params.binaryFiledataset.comment) }}</p> </template> <a - :aria-describedby="dataset.id" - tabindex="0" - @keypress.enter="changeCss(dataset.id)" - >{{ dataset.id.slice(0, 8) }}</a + :aria-describedby="dataset.id" + tabindex="0" + @keypress.enter="changeCss(dataset.id)" + >{{ dataset.id.slice(0, 8) }}</a > </b-tooltip> </td> @@ -247,22 +233,22 @@ <td align> <b-field> <b-button - :icon-right="dataset.params.published ? 'check-circle' : 'circle'" - size="is-medium" - type="is-primary is-light" - @click="publish(dataset, !dataset.params.published)" - style="height: 1.5em; background-color: transparent; font-size: 1.45rem" + :icon-right="dataset.params.published ? 'check-circle' : 'circle'" + size="is-medium" + type="is-primary is-light" + @click="publish(dataset, !dataset.params.published)" + style="height: 1.5em; background-color: transparent; font-size: 1.45rem" /> </b-field> </td> <td> <b-field> <b-button - icon-right="times-circle" - size="is-medium" - type="is-danger is-light" - @click="remove(dataset, dataset.params.published)" - style="height: 1.5em; background-color: transparent; font-size: 1.45rem" + icon-right="times-circle" + size="is-medium" + type="is-danger is-light" + @click="remove(dataset, dataset.params.published)" + style="height: 1.5em; background-color: transparent; font-size: 1.45rem" /> </b-field> </td> @@ -276,29 +262,28 @@ </template> <script> -import { Component, Prop, Vue } from "vue-property-decorator"; +import {Component, Prop, Vue} from "vue-property-decorator"; import PageView from "@/views/common/PageView.vue"; -import { ApplicationService } from "@/services/rest/ApplicationService"; -import { ApplicationResult } from "@/model/ApplicationResult"; +import {ApplicationService} from "@/services/rest/ApplicationService"; +import {ApplicationResult} from "@/model/ApplicationResult"; import CollapsibleTree from "@/components/common/CollapsibleTree.vue"; -import { AlertService } from "@/services/AlertService"; -import { DataService } from "@/services/rest/DataService"; -import { FileService } from "@/services/rest/FileService"; -import { ReferenceService } from "@/services/rest/ReferenceService"; -import { ErrorsService } from "@/services/ErrorsService"; -import SubMenu, { SubMenuPath } from "@/components/common/SubMenu.vue"; -import { BinaryFileDataset } from "@/model/file/BinaryFileDataset"; -import { BinaryFile } from "@/model/file/BinaryFile"; -import { FileOrUUID } from "@/model/file/FileOrUUID"; -import { Dataset } from "@/model/file/Dataset"; -import { InternationalisationService } from "@/services/InternationalisationService"; -import { LOCAL_STORAGE_LANG } from "@/services/Fetcher"; +import {AlertService} from "@/services/AlertService"; +import {DataService} from "@/services/rest/DataService"; +import {FileService} from "@/services/rest/FileService"; +import {ReferenceService} from "@/services/rest/ReferenceService"; +import {ErrorsService} from "@/services/ErrorsService"; +import SubMenu, {SubMenuPath} from "@/components/common/SubMenu.vue"; +import {BinaryFileDataset} from "@/model/file/BinaryFileDataset"; +import {BinaryFile} from "@/model/file/BinaryFile"; +import {FileOrUUID} from "@/model/file/FileOrUUID"; +import {Dataset} from "@/model/file/Dataset"; +import {InternationalisationService} from "@/services/InternationalisationService"; +import {LOCAL_STORAGE_LANG} from "@/services/Fetcher"; import DropDownMenu from "@/components/common/DropDownMenu"; import moment from "moment"; -import {HttpStatusCodes} from "@/utils/HttpUtils"; @Component({ - components: { DropDownMenu, CollapsibleTree, PageView, SubMenu }, + components: {DropDownMenu, CollapsibleTree, PageView, SubMenu}, }) export default class DataTypesRepositoryView extends Vue { @Prop() applicationName; @@ -330,7 +315,6 @@ export default class DataTypesRepositoryView extends Vue { comment = ""; currentDataset = null; repository = {}; - errorsMessages = []; mounted() { this.$on("authorizationChanged", this.updateDatasets); @@ -351,9 +335,10 @@ export default class DataTypesRepositoryView extends Vue { const prevPath = `/applications/${this.applicationName}/dataTypes`; this.subMenuPaths = [ new SubMenuPath( - this.dataTypeId.toLowerCase(), - () => {}, - () => this.$router.push(prevPath) + this.dataTypeId.toLowerCase(), + () => { + }, + () => this.$router.push(prevPath) ), ]; @@ -370,7 +355,7 @@ export default class DataTypesRepositoryView extends Vue { if (this.repository.authorizationScope) { for (const authorizationScopeKey in this.repository.authorizationScope) { let authorizationScope = - matches[this.repository.authorizationScope[authorizationScopeKey]]; + matches[this.repository.authorizationScope[authorizationScopeKey]]; var currentNode = this.authReferences[authorizationScopeKey]; @@ -407,16 +392,16 @@ export default class DataTypesRepositoryView extends Vue { } } if ( - this.repository.startDate && - this.repository.startDate.token && - matches[this.repository.startDate.token] + this.repository.startDate && + this.repository.startDate.token && + matches[this.repository.startDate.token] ) { this.startDate = moment(matches[this.repository.startDate.token], "DD-MM-YYYY").toDate(); } if ( - this.repository.endDate && - this.repository.endDate.token && - matches[this.repository.endDate.token] + this.repository.endDate && + this.repository.endDate.token && + matches[this.repository.endDate.token] ) { this.endDate = moment(matches[this.repository.endDate.token], "DD-MM-YYYY").toDate(); } @@ -456,15 +441,15 @@ export default class DataTypesRepositoryView extends Vue { this.application = { ...this.application, localName: this.internationalisationService.mergeInternationalization(this.application) - .localName, + .localName, localDatatypeName: this.internationalisationService.localeDataTypeIdName( - this.application, - this.application.dataTypes[this.dataTypeId] + this.application, + this.application.dataTypes[this.dataTypeId] ), }; this.configuration = this.applications - .filter((a) => a.name === this.applicationName) - .map((a) => a.configuration.dataTypes[this.dataTypeId])[0]; + .filter((a) => a.name === this.applicationName) + .map((a) => a.configuration.dataTypes[this.dataTypeId])[0]; console.log("refType", this.getRefType("site", "chemin")); this.authorizations = this.configuration.authorization.authorizationScopes; let requiredAuthorizations = Object.keys(this.authorizations).reduce((acc, auth) => { @@ -486,28 +471,28 @@ export default class DataTypesRepositoryView extends Vue { for (let auth in this.authorizations) { let vc = this.authorizations[auth]; var reference = - this.configuration.data[vc.variable].components[vc.component].checker.params.refType; + this.configuration.data[vc.variable].components[vc.component].checker.params.refType; let ref = await this.getOrLoadReferences(reference); ret[auth] = ref; } let refs = Object.values(ret) - .reduce( - (acc, k) => [ - ...acc, - ...k.referenceValues.reduce( - (a, b) => [...a, ...b.hierarchicalReference.split(".")], - acc - ), - ], - [] - ) - .reduce((a, b) => { - if (a.indexOf(b) < 0) { - a.push(b); - } - return a; - }, []); + .reduce( + (acc, k) => [ + ...acc, + ...k.referenceValues.reduce( + (a, b) => [...a, ...b.hierarchicalReference.split(".")], + acc + ), + ], + [] + ) + .reduce((a, b) => { + if (a.indexOf(b) < 0) { + a.push(b); + } + return a; + }, []); for (const refsKey in refs) { await this.getOrLoadReferences(refs[refsKey]); } @@ -538,11 +523,14 @@ export default class DataTypesRepositoryView extends Vue { } parseDate(date) { - return moment(date, "DD/MM/YYYY").toDate(); + + let date1 = moment(date, ["DD-MM-YYYY", "YYYY-MM-DD"]).toDate(); + return date1; } formatDate(date) { - return moment(date).format("DD/MM/YYYY"); + let date1 = moment(date).format("DD/MM/YYYY"); + return date1; } periodeToString(dataset) { @@ -551,10 +539,10 @@ export default class DataTypesRepositoryView extends Vue { periodeToStringForBinaryFileDataset(binaryFiledataset) { return ( - "du " + - this.dateToString(binaryFiledataset.from) + - " au " + - this.dateToString(binaryFiledataset.to) + "du " + + this.dateToString(binaryFiledataset.from) + + " au " + + this.dateToString(binaryFiledataset.to) ); } @@ -569,34 +557,28 @@ export default class DataTypesRepositoryView extends Vue { async upload() { if (this.file && this.startDate && this.endDate) { var fileOrId = new FileOrUUID( - null, - new BinaryFileDataset( - this.dataTypeId, - this.selected.requiredAuthorizations, - /(.{10})T(.{8}).*/ - .exec(new Date(this.startDate).toISOString()) - .filter((a, i) => i != 0) - .join(" "), - /(.{10})T(.{8}).*/ - .exec(new Date(this.endDate).toISOString()) - .filter((a, i) => i != 0) - .join(" "), - this.comment - ), - false + null, + new BinaryFileDataset( + this.dataTypeId, + this.selected.requiredAuthorizations, + moment(this.startDate).format('YYYY-MM-DD HH:mm:ss'), + moment(this.endDate).format('YYYY-MM-DD HH:mm:ss'), + this.comment + ), + false ); var uuid = await this.dataService.addData( - this.applicationName, - this.dataTypeId, - this.file, - fileOrId + this.applicationName, + this.dataTypeId, + this.file, + fileOrId ); + console.log(fileOrId); this.$emit("uploaded", uuid); } } async publish(dataset, pusblished) { - this.errorsMessages = []; dataset.params.published = pusblished; let requiredAuthorizations = dataset.params.binaryFiledataset.requiredAuthorizations; requiredAuthorizations = Object.keys(requiredAuthorizations).reduce(function (acc, key) { @@ -607,53 +589,13 @@ export default class DataTypesRepositoryView extends Vue { dataset.params.binaryFiledataset.requiredAuthorizations = requiredAuthorizations; console.log("binaryFiledataset", dataset.params.binaryFiledataset); var fileOrId = new FileOrUUID(dataset.id, dataset.params.binaryFiledataset, pusblished); - try { - var uuid = await this.dataService.addData( - this.applicationName, - this.dataTypeId, - null, - fileOrId - ); - this.$emit("published", uuid.fileId); - this.alertService.toastSuccess(this.$t("alert.data-updated")); - } catch (error) { - this.checkMessageErrors(error); - } - } - - checkMessageErrors(error) { - let message = []; - if (error.httpResponseCode === HttpStatusCodes.BAD_REQUEST) { - if (error.content != null) { - this.errorsList = []; - error.content.then((value) => { - for (let i = 0; i < value.length; i++) { - if (message.length > 0) { - if (JSON.stringify(value[i]) !== JSON.stringify(value[i-message.length])) { - console.log(message) - this.errorsList.push(value[i]); - } - for(let j = 0; j < message.length; j++) { - if (!message.includes(value[i].validationCheckResult.message)) { - message.push(value[i].validationCheckResult.message); - } - } - } else { - message.push(value[i].validationCheckResult.message); - this.errorsList.push(value[i]); - } - } - console.log(this.errorsList) - if (this.errorsList.length !== 0) { - this.errorsMessages = this.errorsService.getCsvErrorsMessages(this.errorsList); - } else { - this.errorsMessages = this.errorsService.getErrorsMessages(error); - } - }); - } - } else { - this.alertService.toastServerError(error); - } + var uuid = await this.dataService.addData( + this.applicationName, + this.dataTypeId, + null, + fileOrId + ); + this.$emit("published", uuid.fileId); } selectAuthorization(key, event) { @@ -680,7 +622,7 @@ export default class DataTypesRepositoryView extends Vue { isAuthorisationsSelected() { if (this.selected && this.selected.requiredAuthorizations) { return ( - this.selected && Object.values(this.selected.requiredAuthorizations).every((v) => v?.length) + this.selected && Object.values(this.selected.requiredAuthorizations).every((v) => v?.length) ); } return false; @@ -689,9 +631,9 @@ export default class DataTypesRepositoryView extends Vue { async updateDatasets(uuid) { if (this.isAuthorisationsSelected()) { let datasetsList = await this.fileService.getFiles( - this.applicationName, - this.dataTypeId, - this.selected + this.applicationName, + this.dataTypeId, + this.selected ); if (!datasetsList || !datasetsList.length) { this.datasets = {}; @@ -716,9 +658,9 @@ export default class DataTypesRepositoryView extends Vue { this.datasets = datasetMap; if (fileList.uuid) { var periode = - fileList.uuid && - this.datasets && - Object.values(this.datasets).find((e) => e.findByUUID(fileList.uuid))?.periode; + fileList.uuid && + this.datasets && + Object.values(this.datasets).find((e) => e.findByUUID(fileList.uuid))?.periode; this.currentDataset = this.datasets?.[periode]?.datasets; } return this.datasets; @@ -727,9 +669,9 @@ export default class DataTypesRepositoryView extends Vue { remove(dataset, isPublished) { this.$buefy.dialog.confirm({ message: - (isPublished - ? "<b>La version contient des données publiées.</b><br /> La supprimer entraînera la suppression de ces données.<br /><br />?" - : "") + "Etes vous sûr de vouloir supprimer cette version?", + (isPublished + ? "<b>La version contient des données publiées.</b><br /> La supprimer entraînera la suppression de ces données.<br /><br />?" + : "") + "Etes vous sûr de vouloir supprimer cette version?", onConfirm: () => this.deleteFile(dataset.id), }); } @@ -766,7 +708,7 @@ export default class DataTypesRepositoryView extends Vue { localName = key; } var completeLocalName = - typeof currentCompleteLocalName === "undefined" ? "" : currentCompleteLocalName; + typeof currentCompleteLocalName === "undefined" ? "" : currentCompleteLocalName; completeLocalName = completeLocalName + (completeLocalName == "" ? "" : ",") + localName; let authPartition = returnValues[key] || { key, @@ -784,8 +726,8 @@ export default class DataTypesRepositoryView extends Vue { var auth = returnValues[returnValuesKey]; let referenceValueLeaf = auth.referenceValues?.[0]; if ( - auth.referenceValues.length <= 1 && - referenceValueLeaf.hierarchicalKey == auth.currentPath + auth.referenceValues.length <= 1 && + referenceValueLeaf.hierarchicalKey == auth.currentPath ) { returnValues[returnValuesKey] = { ...auth, @@ -794,9 +736,9 @@ export default class DataTypesRepositoryView extends Vue { }; } else { var r = await this.partitionReferencesValues( - auth.referenceValues, - auth.currentPath, - auth.completeLocalName + auth.referenceValues, + auth.currentPath, + auth.completeLocalName ); returnValues[returnValuesKey] = { ...auth,