From c528a512bf090cac72764e08b566d7d2af61742f Mon Sep 17 00:00:00 2001 From: Katherine Fleming <2205659+kflemin@users.noreply.github.com> Date: Fri, 13 Sep 2024 17:28:16 -0400 Subject: [PATCH] Export CTS facility upload template for Federal BPS (#4792) * Fix extra data * Fixed CTS export on Windows * Updated CTS export modal to allow both options, fixed several other bugs * renamed CTS exports, moved both to property views file, updated wording * Fixed CTS export on Windows Updated CTS export modal to allow both options, fixed several other bugs Renamed CTS exports, moved both to property views file, updated wording Cleanup Updated translations * Fixed conflict --------- Co-authored-by: Alex Swindler --- locale/en_US/LC_MESSAGES/django.mo | Bin 136730 -> 138529 bytes locale/en_US/LC_MESSAGES/django.po | 32 +++- locale/fr_CA/LC_MESSAGES/django.mo | Bin 150003 -> 151638 bytes locale/fr_CA/LC_MESSAGES/django.po | 33 +++- requirements/base.txt | 1 + .../export_to_cts_modal_controller.js | 51 +++--- .../seed/js/services/inventory_service.js | 15 +- seed/static/seed/locales/en_US.json | 12 +- seed/static/seed/locales/fr_CA.json | 12 +- .../seed/partials/export_to_cts_modal.html | 49 ++++-- seed/static/seed/partials/inventory_list.html | 2 +- .../seed/partials/organization_settings.html | 2 +- seed/static/seed/scss/style.scss | 10 +- seed/utils/CTS Facility Upload Template.xlsx | Bin 0 -> 45757 bytes seed/views/v3/properties.py | 155 +++++++++++++++++- seed/views/v3/tax_lot_properties.py | 76 +-------- 16 files changed, 325 insertions(+), 125 deletions(-) create mode 100644 seed/utils/CTS Facility Upload Template.xlsx diff --git a/locale/en_US/LC_MESSAGES/django.mo b/locale/en_US/LC_MESSAGES/django.mo index 323bb6532afadcd1862a1567e318464991998ce8..a3d4903941dae0b02b9c747093d81387390703e7 100644 GIT binary patch delta 33267 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 diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po index af6c995c44..4ff5dd9dab 100644 --- a/locale/en_US/LC_MESSAGES/django.po +++ b/locale/en_US/LC_MESSAGES/django.po @@ -116,9 +116,12 @@ msgstr "Also delete {num,plural, one{1 associated batch analysis} other{# associ msgid "ANALYSIS_DESCRIPTION_BETTER" msgstr "The BETTER analysis leverages better.lbl.gov to calculate energy, cost, and GHG emission savings by comparing the property's change point model with a benchmarked model. The results include saving potential and a list of recommended high-level energy conservation measures." -msgid "ANALYSIS_DESCRIPTION_BSYNCR" +msgid "ANALYSIS_DESCRIPTION_BSyncr" msgstr "The BSyncr analysis leverages the Normalized Metered Energy Consumption (NMEC) analysis to calculate a change point model. The data are passed to the analysis using BuildingSync. The result of the analysis are the coefficients of the change point model." +msgid "ANALYSIS_DESCRIPTION_BuildingUpgradeRecommendation" +msgstr "The Building Upgrade Recommendation analysis implements a workflow to identify buildings that may need a deep energy retrofit, equipment replaced or re-tuning based on building attributes such as energy use, year built, and square footage." + msgid "ANALYSIS_DESCRIPTION_CO2" msgstr "This analysis calculates the average annual CO2 emissions for the property's meter data. The analysis requires an eGRID Subregion to be defined in order to accurately determine the emission rates." @@ -128,6 +131,9 @@ msgstr "The EEEJ Analysis uses each property's address to identify the 2010 cens msgid "ANALYSIS_DESCRIPTION_EUI" msgstr "The EUI analysis will sum the property's meter readings for the last twelve months to calculate the energy use per square footage per year. If there are missing meter readings, then the analysis will return a less that 100% coverage to alert the user that there is a missing meter reading." +msgid "ANALYSIS_DESCRIPTION_ElementStatistics" +msgstr "The Element Statistics analysis looks through a property's element data (if any) to count the number of elements of type 'D.D.C. Control Panel' and saves that quantity to the property" + msgid "AND" msgstr "AND" @@ -541,6 +547,9 @@ msgstr "Normally when an imported record is merged into another record the newes msgid "COMPLETE_AND_REFRESH" msgstr "Complete and Refresh Page" +msgid "CONDITION_INDEX_THRESHOLD_HELP" +msgstr "The condition index to use as a comparison threshold in the calculations." + msgid "CONFIGURE_CYCLES" msgstr "Select one or more cycles from the dropdown above to visualize in the charts below." @@ -1414,9 +1423,15 @@ msgstr "Geocoding failed - Your MapQuest API Key is invalid. Update your MapQues msgid "FAILED_GEOCODE_MAPQUEST_API_KEY_ERROR" msgstr "Geocoding failed - Your MapQuest API Key is either invalid or at its limit. Update your MapQuest API Key or disable geocoding in Organization Settings." +msgid "FAIR_BENCHMARK_RATIO_HELP" +msgstr "The fair ratio of Total EUI to Benchmark Total EUI value to use. Ratio = Total EUI/Benchmark EUI" + msgid "FEMP CTS Reporting Export" msgstr "FEMP CTS Reporting Export" +msgid "FF_RSL_THRESHOLD_HELP" +msgstr "The remaining service life value to use for your fossil fuel-fired equipment as a comparison threshold in the calculations. For instance, perhaps your remaining service life threshold is 0 years and your gas boiler has a remaining service life of -1 year, therefore not meeting the threshold." + msgid "FIELDS NEEDED TO MAKE MATCHES:" msgstr "FIELDS NEEDED TO MAKE MATCHES:" @@ -1432,6 +1447,9 @@ msgstr "Field names for matching" msgid "FILE_TYPES_SUPPORTED" msgstr "File types supported: .csv, .xls, .xlsx, .xml, .zip, .geojson, and .json." +msgid "FOSSIL_FUEL_EUI_HELP" +msgstr "Fossil Fuel EUI Goal for the building (includes Gas, Etc.)" + msgid "Failed to delete inventory" msgstr "Failed to delete inventory" @@ -2492,6 +2510,9 @@ msgstr "Portfolio Manager Meter Import Results" msgid "PM_PROPERTY_ID_MATCHING_CRITERIA_WARNING" msgstr "Removing PM Property ID from matching criteria can cause unexpected issues for Portfolio Manager Meter imports." +msgid "POOR_BENCHMARK_RATIO_HELP" +msgstr "The poor ratio of Total EUI to Benchmark Total EUI value to use. Ratio = Total EUI/Benchmark EUI" + msgid "PORTFOLIO_SUMMARY_HEADER_TEXT" msgstr "The portfolio summary page compares 2 cycles to calculate progress toward an Energy Use Intensity reduction goal. Cycle selection and goal details can be customized by clicking the Configure Goals button below." @@ -3174,6 +3195,9 @@ msgstr "Showing {start} to {end} of {total} properties" msgid "SHOWING_UNFILTERED_TAXLOTS" msgstr "Showing {start} to {end} of {total} tax lots" +msgid "SQUARE_FOOTAGE_THRESHOLD_HELP" +msgstr "The gross square footage to use as a comparison threshold in the calculations" + msgid "STEP 1: Map Your Data" msgstr "STEP 1: Map Your Data" @@ -3484,6 +3508,9 @@ msgstr "At least one of the following Tax Lot fields is required" msgid "THERMAL_CONV_ASSUMPTION_TITLE" msgstr "Thermal Conversion Assumption" +msgid "TOTAL_EUI_HELP" +msgstr "Total EUI Goal for the building (includes Electricity, Gas, etc.)" + msgid "TWO_FACTOR_DISABLED_TEXT" msgstr "Choosing this option will disable two-factor authentication for your account, making it less secure." @@ -4105,6 +4132,9 @@ msgstr "{x_axis_label} vs. {y_axis_label} (Aggregated)" msgid "Y Axis" msgstr "Y Axis" +msgid "YEAR_BUILT_THRESHOLD_HELP" +msgstr "The year built to use as a comparison threshold in the calculations" + msgid "Year" msgstr "Year" diff --git a/locale/fr_CA/LC_MESSAGES/django.mo b/locale/fr_CA/LC_MESSAGES/django.mo index 87992f56cf9a61cfde3edfe530fc0c86ef02c1ba..8d8eea8d1fb5d1b94defc7f6cb5b2b5381a9dbcd 100644 GIT binary patch delta 32345 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 NFGJl?)vrp*{|C_UmEr&Z delta 30739 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.csv, .xls, .xlsx, .xml, .zip, .geojson, et .json." +msgid "FOSSIL_FUEL_EUI_HELP" +msgstr "Objectif d'IEC en matière de combustibles fossiles pour le bâtiment (y compris le gaz, etc.)" + msgid "Failed to delete inventory" msgstr "Échec de la suppression de l'inventaire" @@ -2510,6 +2529,9 @@ msgstr "Résultats d'importation de Portfolio Manager" msgid "PM_PROPERTY_ID_MATCHING_CRITERIA_WARNING" msgstr "La suppression de l'ID de propriété PM des critères de correspondance peut entraîner des problèmes inattendus pour les importations de compteurs Portfolio Manager." +msgid "POOR_BENCHMARK_RATIO_HELP" +msgstr "Le ratio entre l'IUE total et la valeur de l'IUE total de référence est faible. Ratio = IUE total/IUE de référence" + msgid "PORTFOLIO_SUMMARY_HEADER_TEXT" msgstr "La page de résumé du portefeuille compare 2 cycles pour calculer les progrès vers un objectif de réduction de l'intensité de l'utilisation d'énergie. La sélection du cycle et les détails des objectifs peuvent être personnalisés en cliquant sur le bouton Configurer les Objectifs ci-dessous." @@ -3202,6 +3224,9 @@ msgstr "Affichage {start} à {end} des {total} propriétés en tout" msgid "SHOWING_UNFILTERED_TAXLOTS" msgstr "Affichage {start} à {end} des {total} lots d'impôt en tout" +msgid "SQUARE_FOOTAGE_THRESHOLD_HELP" +msgstr "La superficie brute à utiliser comme seuil de comparaison dans les calculs" + msgid "STEP 1: Map Your Data" msgstr "ÉTAPE 1: Mappez vos données" @@ -3513,6 +3538,9 @@ msgstr "Au moins l'un des domaines fiscal Lot suivants est requis" msgid "THERMAL_CONV_ASSUMPTION_TITLE" msgstr "Choix de Conversion Thermique" +msgid "TOTAL_EUI_HELP" +msgstr "Objectif EUI total pour le bâtiment (comprend l'électricité, le gaz, etc.)" + msgid "TWO_FACTOR_DISABLED_TEXT" msgstr "Choisir cette option désactivera l’authentification à deux facteurs pour votre compte, le rendant moins sécurisé." @@ -4139,6 +4167,9 @@ msgstr "{x_axis_label} contre {y_axis_label} (agrégé)" msgid "Y Axis" msgstr "Axe Y" +msgid "YEAR_BUILT_THRESHOLD_HELP" +msgstr "L'année de construction à utiliser comme seuil de comparaison dans les calculs" + msgid "Year" msgstr "An" diff --git a/requirements/base.txt b/requirements/base.txt index a98ae51b7f..5ce2726055 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -52,6 +52,7 @@ requests==2.32.0 probablepeople==0.5.4 xmlschema==1.1.1 lark==0.11.3 +pandas==2.2.2 # Parsing and managing geojson data (this is only used in managed tasks at the moment) geojson==2.5.0 diff --git a/seed/static/seed/js/controllers/export_to_cts_modal_controller.js b/seed/static/seed/js/controllers/export_to_cts_modal_controller.js index fd2721c89b..7a9e03d2c8 100644 --- a/seed/static/seed/js/controllers/export_to_cts_modal_controller.js +++ b/seed/static/seed/js/controllers/export_to_cts_modal_controller.js @@ -11,39 +11,42 @@ angular.module('SEED.controller.export_to_cts_modal', []).controller('export_to_ 'ids', 'org_id', 'inventory_service', - 'uploader_service', // eslint-disable-next-line func-names - function ($http, $scope, $state, $uibModalInstance, user_service, ids, org_id, inventory_service, uploader_service) { - $scope.ids = ids; - $scope.org_id = org_id; + function ($http, $scope, $state, $uibModalInstance, user_service, ids, org_id, inventory_service) { $scope.exporting = false; + /** + * @type {'evaluation_template' | 'facility_bps_template' | null} + */ + $scope.export_selection = null; + $scope.set_selection = (selection) => { + $scope.export_selection = selection; + }; + + $scope.set_name = (name) => { + $scope.export_name = name; + }; + $scope.export = () => { let filename = $scope.export_name; if (!filename.endsWith('.xlsx')) filename += '.xlsx'; $scope.exporting = true; - $http.get('/api/v3/tax_lot_properties/start_export_to_cts/', { - params: { - organization_id: user_service.get_organization().id - } - }) - .then((data) => { - uploader_service.check_progress_loop( - data.data.progress_key, - 0, - 1, - () => {}, - () => {}, - $scope.exporter_progress - ); - return inventory_service.export_to_cts(ids).then((data) => { - const blob_type = data.headers()['content-type']; - const blob = new Blob([data.data], { type: blob_type }); - saveAs(blob, filename); - $scope.close(); - }); + if ($scope.export_selection === 'evaluation_template') { + inventory_service.evaluation_export_to_cts(ids).then((data) => { + const blob_type = data.headers()['content-type']; + const blob = new Blob([data.data], { type: blob_type }); + saveAs(blob, filename); + $scope.close(); + }); + } else if ($scope.export_selection === 'facility_bps_template') { + inventory_service.facility_bps_export_to_cts(org_id, { property_view_ids: ids }).then((data) => { + const blob_type = data.headers()['content-type']; + const blob = new Blob([data.data], { type: blob_type }); + saveAs(blob, filename); + $scope.close(); }); + } }; $scope.cancel = () => { diff --git a/seed/static/seed/js/services/inventory_service.js b/seed/static/seed/js/services/inventory_service.js index 6d4763f8a4..395383285f 100644 --- a/seed/static/seed/js/services/inventory_service.js +++ b/seed/static/seed/js/services/inventory_service.js @@ -1212,8 +1212,10 @@ angular.module('SEED.service.inventory', []).factory('inventory_service', [ organization_id: user_service.get_organization().id }); - inventory_service.export_to_cts = (property_view_ids, filename = 'test.xlsx') => $http.post( - `/api/v3/tax_lot_properties/export_to_cts/?organization_id=${user_service.get_organization().id}`, + // this is the CTS Comprehensive Evaluation Upload Template + // which uses the BAE/BuildingSync workflow + inventory_service.evaluation_export_to_cts = (property_view_ids, filename = 'test.xlsx') => $http.post( + `/api/v3/properties/evaluation_export_to_cts/?organization_id=${user_service.get_organization().id}`, { filename, property_view_ids @@ -1223,6 +1225,15 @@ angular.module('SEED.service.inventory', []).factory('inventory_service', [ } ); + // this is the CTS Facility Upload Template for Federal BPS + // which uses the SEED-based workflow (not buildingsync) + inventory_service.facility_bps_export_to_cts = (org_id, property_view_ids) => $http + .post( + `/api/v3/properties/facility_bps_export_to_cts/?organization_id=${org_id}`, + property_view_ids, + { responseType: 'arraybuffer' } + ); + inventory_service.filter_by_property = (cycle_id, property_ids) => $http.post('/api/v3/properties/filter_by_property/', { organization_id: user_service.get_organization().id, cycle: cycle_id, diff --git a/seed/static/seed/locales/en_US.json b/seed/static/seed/locales/en_US.json index 7402b5929d..656df3c6e6 100644 --- a/seed/static/seed/locales/en_US.json +++ b/seed/static/seed/locales/en_US.json @@ -34,10 +34,12 @@ "ALSO_DELETE_ANALYSES": "Also delete {num,plural, one{1 analysis} other{# analyses}}.", "ALSO_DELETE_BATCH_ANALYSES": "Also delete {num,plural, one{1 associated batch analysis} other{# associated batch analyses}}.", "ANALYSIS_DESCRIPTION_BETTER": "The BETTER analysis leverages better.lbl.gov to calculate energy, cost, and GHG emission savings by comparing the property's change point model with a benchmarked model. The results include saving potential and a list of recommended high-level energy conservation measures.", - "ANALYSIS_DESCRIPTION_BSYNCR": "The BSyncr analysis leverages the Normalized Metered Energy Consumption (NMEC) analysis to calculate a change point model. The data are passed to the analysis using BuildingSync. The result of the analysis are the coefficients of the change point model.", + "ANALYSIS_DESCRIPTION_BSyncr": "The BSyncr analysis leverages the Normalized Metered Energy Consumption (NMEC) analysis to calculate a change point model. The data are passed to the analysis using BuildingSync. The result of the analysis are the coefficients of the change point model.", + "ANALYSIS_DESCRIPTION_BuildingUpgradeRecommendation": "The Building Upgrade Recommendation analysis implements a workflow to identify buildings that may need a deep energy retrofit, equipment replaced or re-tuning based on building attributes such as energy use, year built, and square footage.", "ANALYSIS_DESCRIPTION_CO2": "This analysis calculates the average annual CO2 emissions for the property's meter data. The analysis requires an eGRID Subregion to be defined in order to accurately determine the emission rates.", "ANALYSIS_DESCRIPTION_EEEJ": "The EEEJ Analysis uses each property's address to identify the 2010 census tract. Based on census tract, disadvantaged community classification and energy burden information can be retrieved from the CEJST dataset. The number of affordable housing locations is retrieved from HUD datasets. Location is used to generate a link to view an EJScreen Report providing more demographic indicators.", "ANALYSIS_DESCRIPTION_EUI": "The EUI analysis will sum the property's meter readings for the last twelve months to calculate the energy use per square footage per year. If there are missing meter readings, then the analysis will return a less that 100% coverage to alert the user that there is a missing meter reading.", + "ANALYSIS_DESCRIPTION_ElementStatistics": "The Element Statistics analysis looks through a property's element data (if any) to count the number of elements of type 'D.D.C. Control Panel' and saves that quantity to the property", "AND": "AND", "API Documentation": "API Documentation", "API Key": "API Key", @@ -173,6 +175,7 @@ "COL_MATCHING_CRITERIA_TOGGLE": "Checking this box for a field will allow it to be used as a matching field.", "COL_MERGE_PROTECTION_TOGGLE": "Normally when an imported record is merged into another record the newest value overwrites an older one. Merge protection prevents this, and is particularly useful for columns where you have manually edited values that you want to persist even after importing and merging new data.", "COMPLETE_AND_REFRESH": "Complete and Refresh Page", + "CONDITION_INDEX_THRESHOLD_HELP": "The condition index to use as a comparison threshold in the calculations.", "CONFIGURE_CYCLES": "Select one or more cycles from the dropdown above to visualize in the charts below.", "CONFIGURE_PROGRAM": "Need to configure your Program?", "CONFIGURE_XY_AXES": "to configure the set of columns selectable as X and Y axes. These can be set on the Default Display Fields tab.", @@ -459,12 +462,15 @@ "Exporting selected properties...": "Exporting selected properties...", "FAILED_GEOCODE_INVALID_MAPQUEST_API_KEY": "Geocoding failed - Your MapQuest API Key is invalid. Update your MapQuest API Key or disable geocoding in Organization Settings.", "FAILED_GEOCODE_MAPQUEST_API_KEY_ERROR": "Geocoding failed - Your MapQuest API Key is either invalid or at its limit. Update your MapQuest API Key or disable geocoding in Organization Settings.", + "FAIR_BENCHMARK_RATIO_HELP": "The fair ratio of Total EUI to Benchmark Total EUI value to use. Ratio = Total EUI\/Benchmark EUI", "FEMP CTS Reporting Export": "FEMP CTS Reporting Export", + "FF_RSL_THRESHOLD_HELP": "The remaining service life value to use for your fossil fuel-fired equipment as a comparison threshold in the calculations. For instance, perhaps your remaining service life threshold is 0 years and your gas boiler has a remaining service life of -1 year, therefore not meeting the threshold.", "FIELDS NEEDED TO MAKE MATCHES:": "FIELDS NEEDED TO MAKE MATCHES:", "FIELD_NAMES_FOR_GEOCODING_PROPERTIES": "Field names for geocoding properties", "FIELD_NAMES_FOR_GEOCODING_TAXLOTS": "Field names for geocoding tax lots", "FIELD_NAMES_FOR_MATCHING": "Field names for matching", "FILE_TYPES_SUPPORTED": "File types supported: .csv<\/strong>, .xls<\/strong>, .xlsx<\/strong>, .xml<\/strong>, .zip<\/strong>, .geojson<\/strong>, and .json<\/strong>.", + "FOSSIL_FUEL_EUI_HELP": "Fossil Fuel EUI Goal for the building (includes Gas, Etc.)", "Failed to delete inventory": "Failed to delete inventory", "Fetching your buildings from Audit Template...": "Fetching your buildings from Audit Template...", "Field": "Field", @@ -813,6 +819,7 @@ "PM_METER_IMPORT_NO_ASSOCIATION": "Unable to Import - No associations to previously imported properties", "PM_METER_IMPORT_RESULTS": "Portfolio Manager Meter Import Results", "PM_PROPERTY_ID_MATCHING_CRITERIA_WARNING": "Removing PM Property ID from matching criteria can cause unexpected issues for Portfolio Manager Meter imports.", + "POOR_BENCHMARK_RATIO_HELP": "The poor ratio of Total EUI to Benchmark Total EUI value to use. Ratio = Total EUI\/Benchmark EUI", "PORTFOLIO_SUMMARY_HEADER_TEXT": "The portfolio summary page compares 2 cycles to calculate progress toward an Energy Use Intensity reduction goal. Cycle selection and goal details can be customized by clicking the Configure Goals button below.", "POST_GEOCODING_COUNTS": "Updated counts after geocoding", "PROPERTY_MATCHING_FIELDS_REQUIREMENT": "At least one of the following Property fields is required", @@ -1035,6 +1042,7 @@ "SHOWING_PAIRED_UNPAIRED_TAXLOTS": "Showing {paired_count} {paired_count,plural,one{Tax Lot} other{Tax Lots}} ({unpaired_count} unpaired)", "SHOWING_UNFILTERED_PROPERTIES": "Showing {start} to {end} of {total} properties", "SHOWING_UNFILTERED_TAXLOTS": "Showing {start} to {end} of {total} tax lots", + "SQUARE_FOOTAGE_THRESHOLD_HELP": "The gross square footage to use as a comparison threshold in the calculations", "STEP 1: Map Your Data": "STEP 1: Map Your Data", "STEP 2: Review Your Data Mappings": "STEP 2: Review Your Data Mappings", "SUB_ORG_DEPRECATION": "The Sub-Organization functionality is no longer recommended and will be deprecated soon. Visit the Access Level Tree page to define access levels to structure your organization's content.", @@ -1137,6 +1145,7 @@ "Switch Profiles": "Switch Profiles", "TAXLOT_MATCHING_FIELDS_REQUIREMENT": "At least one of the following Tax Lot fields is required", "THERMAL_CONV_ASSUMPTION_TITLE": "Thermal Conversion Assumption", + "TOTAL_EUI_HELP": "Total EUI Goal for the building (includes Electricity, Gas, etc.)", "TWO_FACTOR_DISABLED_TEXT": "Choosing this option will disable two-factor authentication for your account, making it less secure.", "TWO_FACTOR_EMAIL_SELECTED_TEXT": "Selecting this option will enable two-factor authentication via email ({email}). You will receive a verification code through your registered email address each time you log in.", "TWO_FACTOR_ENABLE": "Enable Two-Factor Authentication for your account", @@ -1335,6 +1344,7 @@ "X_VERSUS_Y": "{x_axis_label} vs. {y_axis_label}", "X_VERSUS_Y_AGGREGATED": "{x_axis_label} vs. {y_axis_label} (Aggregated)", "Y Axis": "Y Axis", + "YEAR_BUILT_THRESHOLD_HELP": "The year built to use as a comparison threshold in the calculations", "Year": "Year", "Year Built": "Year Built", "Year Ending": "Year Ending", diff --git a/seed/static/seed/locales/fr_CA.json b/seed/static/seed/locales/fr_CA.json index 778583a5c6..775318bd43 100644 --- a/seed/static/seed/locales/fr_CA.json +++ b/seed/static/seed/locales/fr_CA.json @@ -34,10 +34,12 @@ "ALSO_DELETE_ANALYSES": "Supprimez également {num,plural, one{ 1 analyse } other{# analyses }} .", "ALSO_DELETE_BATCH_ANALYSES": "Supprimez également {num,plural, one{ 1 analyse de lot associée } other{# analyses de lot associées }} .", "ANALYSIS_DESCRIPTION_BETTER": "L'analyse BETTER s'appuie sur better.lbl.gov pour calculer les économies d'énergie, de coûts et d'émissions de GES en comparant le modèle de point de changement de la propriété avec un modèle de référence. Les résultats comprennent un potentiel d'économie et une liste de mesures d'économie d'énergie de haut niveau recommandées.", - "ANALYSIS_DESCRIPTION_BSYNCR": "L'analyse BSyncr exploite l'analyse de consommation d'énergie normalisée mesurée (NMEC) pour calculer un modèle de point de changement. Les données sont transmises à l'analyse à l'aide de BuildingSync. Le résultat de l'analyse sont les coefficients du modèle de point de changement.", + "ANALYSIS_DESCRIPTION_BSyncr": "L'analyse BSyncr exploite l'analyse de consommation d'énergie normalisée mesurée (NMEC) pour calculer un modèle de point de changement. Les données sont transmises à l'analyse à l'aide de BuildingSync. Le résultat de l'analyse sont les coefficients du modèle de point de changement.", + "ANALYSIS_DESCRIPTION_BuildingUpgradeRecommendation": "Cette analyse met en œuvre un flux de travail pour identifier les bâtiments qui peuvent nécessiter une rénovation énergétique en profondeur, un remplacement ou un réajustement de l'équipement en fonction des attributs du bâtiment tels que la consommation d'énergie, l'année de construction et la superficie en pieds carrés.", "ANALYSIS_DESCRIPTION_CO2": "Cette analyse calcule les émissions annuelles moyennes de CO2 pour les données des compteurs de la propriété. L’analyse nécessite la définition d’une sous-région eGRID afin de déterminer avec précision les taux d’émission.", "ANALYSIS_DESCRIPTION_EEEJ": "L'analyse EEEJ utilise l'adresse de chaque propriété pour identifier le secteur de recensement de 2010. Sur la base des secteurs de recensement, la classification des communautés défavorisées et les informations sur la charge énergétique peuvent être extraites de l'ensemble de données CEJST. Le nombre de logements abordables est extrait des ensembles de données HUD. L'emplacement est utilisé pour générer un lien permettant d'afficher un rapport EJScreen fournissant davantage d'indicateurs démographiques.", "ANALYSIS_DESCRIPTION_EUI": "L'analyse EUI additionnera les relevés de compteurs de la propriété au cours des douze derniers mois pour calculer la consommation d'énergie par pied carré et par an. S'il manque des relevés de compteur, l'analyse renvoie une couverture inférieure à 100 % pour alerter l'utilisateur qu'il manque un relevé de compteur.", + "ANALYSIS_DESCRIPTION_ElementStatistics": "Cette analyse examine les données des éléments d'une propriété (le cas échéant) pour compter le nombre d'éléments de type « Panneau de configuration DDC » et enregistre cette quantité dans la propriété", "AND": "ET", "API Documentation": "Documentation de l'API", "API Key": "Clé API", @@ -173,6 +175,7 @@ "COL_MATCHING_CRITERIA_TOGGLE": "Pour les colonnes non extra_data, indiquez si la colonne correspond aux critères", "COL_MERGE_PROTECTION_TOGGLE": "Normalement, lorsqu'un enregistrement importé est fusionné dans un autre enregistrement, la valeur la plus récente remplace un enregistrement plus ancien. La protection de fusion empêche cela et est particulièrement utile pour les colonnes dans lesquelles vous avez manuellement modifié les valeurs que vous souhaitez conserver même après l'importation et la fusion de nouvelles données.", "COMPLETE_AND_REFRESH": "Complétez et Actualisez la Page", + "CONDITION_INDEX_THRESHOLD_HELP": "L'indice de condition à utiliser comme seuil de comparaison dans les calculs.", "CONFIGURE_CYCLES": "Sélectionnez un ou plusieurs cycles dans la liste déroulante ci-dessus pour visualiser dans les graphiques ci-dessous.", "CONFIGURE_PROGRAM": "Besoin de configurer votre programme?", "CONFIGURE_XY_AXES": "pour configurer l'ensemble des colonnes sélectionnables comme axes X et Y. Ceux-ci peuvent être définis dans l’onglet Champs d’affichage par défaut.", @@ -459,12 +462,15 @@ "Exporting selected properties...": "Exportation des propriétés sélectionnées...", "FAILED_GEOCODE_INVALID_MAPQUEST_API_KEY": "Échec du géocodage : votre clé API MapQuest n'est pas valide. Mettez à jour votre clé API MapQuest ou désactivez le géocodage dans les paramètres de l'organisation.", "FAILED_GEOCODE_MAPQUEST_API_KEY_ERROR": "Échec du géocodage : votre clé API MapQuest n'est pas valide ou a atteint sa limite. Mettez à jour votre clé API MapQuest ou désactivez le géocodage dans les paramètres de l'organisation.", + "FAIR_BENCHMARK_RATIO_HELP": "Le ratio équitable entre le total de l'IUE et la valeur totale de référence de l'IUE à utiliser. Ratio = Total de l'IUE\/Indice de référence de l'IUE", "FEMP CTS Reporting Export": "Export pour FEMP CTS", + "FF_RSL_THRESHOLD_HELP": "La valeur de la durée de vie restante à utiliser pour votre équipement alimenté au combustible fossile comme seuil de comparaison dans les calculs. Par exemple, votre seuil de durée de vie restante est peut-être de 0 an et votre chaudière à gaz a une durée de vie restante de -1 an, ce qui ne correspond donc pas au seuil.", "FIELDS NEEDED TO MAKE MATCHES:": "CHAMPS NÉCESSAIRES POUR ÉTABLIR DES CORRESPONDANCES:", "FIELD_NAMES_FOR_GEOCODING_PROPERTIES": "Noms de champs pour les propriétés de géocodage", "FIELD_NAMES_FOR_GEOCODING_TAXLOTS": "Noms de zone pour les lots de taxe de géocodage", "FIELD_NAMES_FOR_MATCHING": "Noms de zone pour l'appariement", "FILE_TYPES_SUPPORTED": "Types de fichiers pris en charge: .csv<\/strong>, .xls<\/strong>, .xlsx<\/strong>, .xml<\/strong>, .zip<\/strong>, .geojson<\/strong>, et .json<\/strong>.", + "FOSSIL_FUEL_EUI_HELP": "Objectif d'IEC en matière de combustibles fossiles pour le bâtiment (y compris le gaz, etc.)", "Failed to delete inventory": "Échec de la suppression de l'inventaire", "Fetching your buildings from Audit Template...": "Récupération de vos bâtiments à partir du modèle d'audit...", "Field": "Champ", @@ -813,6 +819,7 @@ "PM_METER_IMPORT_NO_ASSOCIATION": "Importation impossible - Aucune association à des propriétés précédemment importées", "PM_METER_IMPORT_RESULTS": "Résultats d'importation de Portfolio Manager", "PM_PROPERTY_ID_MATCHING_CRITERIA_WARNING": "La suppression de l'ID de propriété PM des critères de correspondance peut entraîner des problèmes inattendus pour les importations de compteurs Portfolio Manager.", + "POOR_BENCHMARK_RATIO_HELP": "Le ratio entre l'IUE total et la valeur de l'IUE total de référence est faible. Ratio = IUE total\/IUE de référence", "PORTFOLIO_SUMMARY_HEADER_TEXT": "La page de résumé du portefeuille compare 2 cycles pour calculer les progrès vers un objectif de réduction de l'intensité de l'utilisation d'énergie. La sélection du cycle et les détails des objectifs peuvent être personnalisés en cliquant sur le bouton Configurer les Objectifs ci-dessous.", "POST_GEOCODING_COUNTS": "Nombre mis à jour après le géocodage", "PROPERTY_MATCHING_FIELDS_REQUIREMENT": "Au moins un des champs de propriété suivants est requis", @@ -1035,6 +1042,7 @@ "SHOWING_PAIRED_UNPAIRED_TAXLOTS": "Affichage {paired_count} {paired_count, plural, one{Lot d'impôt} other{Lots d'impôt}} ({unpaired_count} non apparié)", "SHOWING_UNFILTERED_PROPERTIES": "Affichage {start} à {end} des {total} propriétés en tout", "SHOWING_UNFILTERED_TAXLOTS": "Affichage {start} à {end} des {total} lots d'impôt en tout", + "SQUARE_FOOTAGE_THRESHOLD_HELP": "La superficie brute à utiliser comme seuil de comparaison dans les calculs", "STEP 1: Map Your Data": "ÉTAPE 1: Mappez vos données", "STEP 2: Review Your Data Mappings": "ÉTAPE 2: Consultez vos mappages de données", "SUB_ORG_DEPRECATION": "La fonctionnalité Sous-organisation n’est plus recommandée et sera bientôt obsolète. Visitez la page des niveaux d'accès pour définir les niveaux d'accès afin de structurer le contenu de votre organisation.", @@ -1137,6 +1145,7 @@ "Switch Profiles": "Changer de profil", "TAXLOT_MATCHING_FIELDS_REQUIREMENT": "Au moins l'un des domaines fiscal Lot suivants est requis", "THERMAL_CONV_ASSUMPTION_TITLE": "Choix de Conversion Thermique", + "TOTAL_EUI_HELP": "Objectif EUI total pour le bâtiment (comprend l'électricité, le gaz, etc.)", "TWO_FACTOR_DISABLED_TEXT": "Choisir cette option désactivera l’authentification à deux facteurs pour votre compte, le rendant moins sécurisé.", "TWO_FACTOR_EMAIL_SELECTED_TEXT": "La sélection de cette option activera l'authentification à deux facteurs par e-mail ( {email} ). Vous recevrez un code de vérification via votre adresse e-mail enregistrée à chaque fois que vous vous connecterez.", "TWO_FACTOR_ENABLE": "Activer l'authentification à deux facteurs pour votre compte", @@ -1335,6 +1344,7 @@ "X_VERSUS_Y": "{x_axis_label} contre {y_axis_label}", "X_VERSUS_Y_AGGREGATED": "{x_axis_label} contre {y_axis_label} (agrégé)", "Y Axis": "Axe Y", + "YEAR_BUILT_THRESHOLD_HELP": "L'année de construction à utiliser comme seuil de comparaison dans les calculs", "Year": "An", "Year Built": "Année de construction", "Year Ending": "Fin de l'année", diff --git a/seed/static/seed/partials/export_to_cts_modal.html b/seed/static/seed/partials/export_to_cts_modal.html index 0c96440c37..72ad8950b4 100644 --- a/seed/static/seed/partials/export_to_cts_modal.html +++ b/seed/static/seed/partials/export_to_cts_modal.html @@ -1,31 +1,46 @@