├── .codeclimate.yml
├── .coveragerc
├── .cspell.json
├── .dockerignore
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitattributes
├── .github
├── CONTRIBUTING.md
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── PULL_REQUEST_TEMPLATE.md
├── SEED_Contribution_Proposal_v1.1_2022-12-05.docx
├── dependabot.yml
├── release.yml
└── workflows
│ ├── ci.yml
│ ├── pr-labels.yml
│ └── publish.yml
├── .gitignore
├── .gitmodules
├── .pre-commit-config.yaml
├── .prettierignore
├── .prettierrc
├── .spelling.dic
├── .stylelintrc.js
├── AUTHORS.md
├── CHANGELOG.md
├── Dockerfile
├── Dockerfile-dev
├── Dockerfile.ecs
├── LICENSE.md
├── README.md
├── bin
├── apitest_start_server.sh
├── backup_database.sh
├── drop_create_db.sh
├── setup_database.sh
├── start-seed.sh
├── start_celery.sh
└── start_uwsgi.sh
├── config
├── __init__.py
├── settings
│ ├── __init__.py
│ ├── common.py
│ ├── dev.py
│ ├── docker.py
│ ├── docker_dev.py
│ ├── local_untracked.py.dist
│ ├── test.py
│ └── test_local_untracked.py
├── template_context.py
├── tests
│ ├── __init__.py
│ ├── test_commands.py
│ └── test_views.py
├── urls.py
├── utils.py
├── views.py
└── wsgi.py
├── deploy.sh
├── docker-compose.build.yml
├── docker-compose.dev.yml
├── docker-compose.local.yml
├── docker-compose.pgupgrade.yml
├── docker-compose.yml
├── docker
├── README.md
├── backup_database.sh
├── backup_k8s
│ ├── Dockerfile
│ ├── backup_database.sh
│ └── tar_backup_database.sh
├── dump_database.sh
├── maintenance.html
├── maintenance.sh
├── nginx
│ ├── nginx.conf.template
│ ├── seed-csp.conf
│ ├── seed-security-headers.conf
│ └── seed-uwsgi.conf
├── postgres_upgrade.sh
├── restore_database.sh
├── seed-entrypoint.sh
├── start_celery_docker.sh
├── start_uwsgi_docker.sh
├── supervisor-seed.conf
├── uwsgi.ini
└── wait-for-it.sh
├── docs
└── source
│ ├── api.rst
│ ├── aws.rst
│ ├── buildingsync.rst
│ ├── conf.py
│ ├── data_model.rst
│ ├── data_quality.rst
│ ├── deployment.rst
│ ├── developer_resources.rst
│ ├── docker.rst
│ ├── faq.rst
│ ├── getting_started.rst
│ ├── help.rst
│ ├── images
│ ├── case-a.webp
│ ├── case-abcd.webp
│ ├── case-b.webp
│ ├── case-c.webp
│ ├── case-d.webp
│ └── data-model.webp
│ ├── index.rst
│ ├── kubernetes_deployment.rst
│ ├── license.rst
│ ├── linux.rst
│ ├── mapping.rst
│ ├── matching.rst
│ ├── migrations.rst
│ ├── modules.rst
│ ├── modules
│ ├── config.rst
│ ├── seed.cleansing.rst
│ ├── seed.data.rst
│ ├── seed.data_importer.rst
│ ├── seed.features.rst
│ ├── seed.landing.management.commands.rst
│ ├── seed.landing.management.rst
│ ├── seed.landing.rst
│ ├── seed.lib.mappings.rst
│ ├── seed.lib.merging.rst
│ ├── seed.lib.rst
│ ├── seed.management.rst
│ ├── seed.managers.rst
│ ├── seed.managers.tests.rst
│ ├── seed.mappings.rst
│ ├── seed.models.rst
│ ├── seed.public.rst
│ ├── seed.rst
│ ├── seed.serializers.rst
│ ├── seed.templatetags.rst
│ ├── seed.test_helpers.factory.lib.rst
│ ├── seed.test_helpers.factory.rst
│ ├── seed.test_helpers.rst
│ ├── seed.tests.functional.rst
│ ├── seed.tests.rst
│ ├── seed.urls.rst
│ ├── seed.utils.rst
│ └── seed.views.rst
│ ├── postgres_upgrade.rst
│ ├── setup_docker.rst
│ ├── setup_osx.rst
│ └── translation.rst
├── locale
├── en_US
│ └── LC_MESSAGES
│ │ ├── django.mo
│ │ └── django.po
├── es
│ └── LC_MESSAGES
│ │ ├── django.mo
│ │ └── django.po
└── fr_CA
│ └── LC_MESSAGES
│ ├── django.mo
│ └── django.po
├── log
└── .gitkeep
├── lokalise.yml.example
├── manage.py
├── mypy.ini
├── ng_seed
├── README.md
├── __init__.py
└── views.py
├── package-lock.json
├── package.json
├── pytest.ini
├── requirements.txt
├── requirements
├── aws.txt
├── base.txt
├── local.txt
└── test.txt
├── ruff.toml
├── script
├── get_angular_translations.sh
└── get_python_translations.sh
├── seed
├── __init__.py
├── admin.py
├── analysis_pipelines
│ ├── __init__.py
│ ├── better
│ │ ├── __init__.py
│ │ ├── buildingsync.py
│ │ ├── client.py
│ │ ├── helpers.py
│ │ └── pipeline.py
│ ├── bsyncr.py
│ ├── co2.py
│ ├── eeej.py
│ ├── element_statistics.py
│ ├── eui.py
│ ├── pipeline.py
│ ├── tasks.py
│ ├── upgrade_recommendation.py
│ └── utils.py
├── api
│ ├── __init__.py
│ ├── base
│ │ ├── __init__.py
│ │ └── urls.py
│ ├── v3
│ │ ├── __init__.py
│ │ └── urls.py
│ └── v4
│ │ ├── __init__.py
│ │ └── urls.py
├── audit_template
│ ├── __init__.py
│ └── audit_template.py
├── authentication.py
├── building_sync
│ ├── __init__.py
│ ├── building_sync.py
│ ├── enumerations
│ │ ├── enumerations_v1_0_0.json
│ │ └── enumerations_v2_6_0.json
│ ├── lib
│ │ ├── __init__.py
│ │ └── enumerations.json
│ ├── mappings.py
│ ├── schemas
│ │ ├── BuildingSync_v2_0.xsd
│ │ ├── BuildingSync_v2_0_0.xsd
│ │ ├── BuildingSync_v2_1_0.xsd
│ │ ├── BuildingSync_v2_2_0.xsd
│ │ ├── BuildingSync_v2_3_0.xsd
│ │ ├── BuildingSync_v2_4_0.xsd
│ │ └── BuildingSync_v2_6_0.xsd
│ ├── tests
│ │ ├── __init__.py
│ │ ├── data
│ │ │ ├── ExportedData.xlsx
│ │ │ ├── buildingsync_ATT_export.xml
│ │ │ ├── buildingsync_ex01_measures.xml
│ │ │ ├── buildingsync_ex01_measures_bad_names.xml
│ │ │ ├── buildingsync_v2_0_bricr_workflow.xml
│ │ │ ├── ex1_no_schemaLocation_and_ex_1.zip
│ │ │ ├── ex_1.xml
│ │ │ ├── ex_1_and_buildingsync_ex01_measures.zip
│ │ │ ├── ex_1_different_namespace.xml
│ │ │ ├── ex_1_no_lat_long.xml
│ │ │ ├── ex_1_no_schemaLocation.xml
│ │ │ ├── ex_1_no_street_address.xml
│ │ │ ├── ex_1_v2.6.0.xml
│ │ │ ├── example_SF_audit_report_BS_v2.3_081321.xml
│ │ │ └── test_single_scenario.xml
│ │ ├── test_buildingsync.py
│ │ ├── test_buildingsync_views.py
│ │ ├── test_mappings.py
│ │ └── test_validation_client.py
│ └── validation_client.py
├── celery.py
├── context_processors.py
├── data_importer
│ ├── __init__.py
│ ├── access_level_instances_parser.py
│ ├── equivalence_partitioner.py
│ ├── managers.py
│ ├── match.py
│ ├── meters_parser.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── 0002_auto_20160218_1335.py
│ │ ├── 0002_auto_20160302_1142.py
│ │ ├── 0003_merge.py
│ │ ├── 0004_auto_20160411_1139.py
│ │ ├── 0005_importfile_cycle.py
│ │ ├── 0006_auto_20161007_0317.py
│ │ ├── 0007_auto_20161008_2244.py
│ │ ├── 0008_importfile_cached_mapped_columns.py
│ │ ├── 0009_importfile_uploaded_filename.py
│ │ ├── 0010_importfile_matching_results_data.py
│ │ ├── 0011_auto_20180725_0825.py
│ │ ├── 0012_auto_20181107_0904.py
│ │ ├── 0013_importfile_raw_property_state_to_filename.py
│ │ ├── 0014_importfile_has_generated_headers.py
│ │ ├── 0015_auto_20210712_2134.py
│ │ ├── 0016_auto_20220119_1347.py
│ │ ├── 0017_pm_source_type.py
│ │ ├── 0018_importfile_multiple_cycle_upload.py
│ │ ├── 0019_accountability_hierarchy.py
│ │ └── __init__.py
│ ├── models.py
│ ├── sensor_readings_parser.py
│ ├── tasks.py
│ ├── tests
│ │ ├── __init__.py
│ │ ├── data
│ │ │ ├── MultiCycle_Test.xlsx
│ │ │ ├── example-GreenButton-data-1002-1-dup.xml
│ │ │ ├── example-GreenButton-data.xml
│ │ │ ├── example-data-properties-2-invalid-footprints.xlsx
│ │ │ ├── example-data-properties-duplicate-headers.xlsx
│ │ │ ├── example-data-properties-duplicates.xlsx
│ │ │ ├── example-data-properties-missing-headers.xlsx
│ │ │ ├── example-data-properties-postal.xlsx
│ │ │ ├── example-data-properties-small-changes.xlsx
│ │ │ ├── example-data-properties-unicode.xlsx
│ │ │ ├── example-data-properties.xlsx
│ │ │ ├── example-data-taxlots-1-invalid-footprint.xlsx
│ │ │ ├── example-data-taxlots-2-invalid-footprints.xlsx
│ │ │ ├── example-data-taxlots-small-changes.xlsx
│ │ │ ├── example-data-taxlots.xlsx
│ │ │ ├── example-pm-data-request-with-meters-new-format.xlsx
│ │ │ ├── example-pm-data-request-with-meters.xlsx
│ │ │ ├── example-pm-monthly-meter-usage-1-dup.xlsx
│ │ │ ├── example-pm-monthly-meter-usage-2-cost-meters.xlsx
│ │ │ ├── example-pm-monthly-meter-usage-with-unknown-types-and-units.xlsx
│ │ │ ├── example-pm-monthly-meter-usage.xlsx
│ │ │ ├── example-pm-properties.xlsx
│ │ │ └── mappings
│ │ │ │ └── example-data-properties.csv
│ │ ├── integration
│ │ │ ├── __init__.py
│ │ │ ├── test_case_a.py
│ │ │ ├── test_case_b.py
│ │ │ ├── test_data_import.py
│ │ │ ├── test_demo_v2.py
│ │ │ ├── test_equivalence_partioner_with_file.py
│ │ │ ├── test_footprints_import.py
│ │ │ ├── test_matching.py
│ │ │ ├── test_merge_duplicate_rows.py
│ │ │ ├── test_properties.py
│ │ │ └── test_tax_lots.py
│ │ ├── test_ah_import.py
│ │ ├── test_cleaner.py
│ │ ├── test_equivalence_partitioner.py
│ │ ├── test_link_incoming.py
│ │ ├── test_mapping.py
│ │ ├── test_match_incoming.py
│ │ ├── test_match_unicode.py
│ │ ├── test_meters_parser.py
│ │ └── util.py
│ └── utils.py
├── decorators.py
├── docs
│ ├── faq
│ │ ├── features
│ │ │ ├── get-general-info.md
│ │ │ ├── irregular-data-updates.md
│ │ │ ├── linking-intro.md
│ │ │ ├── linking-paired-properties.md
│ │ │ ├── map-merge-link.md
│ │ │ ├── verify-geocode.md
│ │ │ └── when-geocode.md
│ │ ├── general
│ │ │ └── resources.md
│ │ ├── hosting
│ │ │ ├── estimated-cost.md
│ │ │ └── local-network.md
│ │ ├── industry involvement
│ │ │ ├── building-construction-permits.md
│ │ │ └── plugins.md
│ │ └── security
│ │ │ ├── encryption.md
│ │ │ └── ssl.md
│ ├── static
│ │ └── docs
│ │ │ ├── images
│ │ │ └── mapping_diagram.webp
│ │ │ └── js
│ │ │ └── faq.js
│ ├── templates
│ │ └── docs
│ │ │ └── faq.html
│ ├── urls.py
│ └── views.py
├── exception_handler.py
├── filters.py
├── filtersets.py
├── hpxml
│ ├── __init__.py
│ ├── hpxml.py
│ ├── schemas
│ │ ├── BaseElements.xsd
│ │ ├── HPXML.xsd
│ │ ├── HPXMLDataTypes.xsd
│ │ └── blank.xml
│ └── tests
│ │ ├── __init__.py
│ │ ├── data
│ │ └── audit.xml
│ │ ├── test_hpxml.py
│ │ └── test_hpxml_views.py
├── landing
│ ├── __init__.py
│ ├── forms.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── 0002_auto_20151105_1539.py
│ │ ├── 0003_seeduser_default_building_detail_custom_columns.py
│ │ ├── 0004_auto_20160218_1335.py
│ │ ├── 0004_auto_20160316_1102.py
│ │ ├── 0005_merge.py
│ │ ├── 0006_auto_20170602_1648.py
│ │ ├── 0007_auto_20181107_0904.py
│ │ ├── 0008_seeduser_prompt_2fa.py
│ │ └── __init__.py
│ ├── models.py
│ ├── serializers.py
│ ├── static
│ │ └── landing
│ │ │ ├── images
│ │ │ └── landing
│ │ │ │ ├── bg-paper.webp
│ │ │ │ └── landing-bg.webp
│ │ │ └── scss
│ │ │ └── landing.scss
│ ├── templates
│ │ ├── landing
│ │ │ ├── _marketing_bullets.html
│ │ │ ├── _password_note.html
│ │ │ ├── account_activation_invalid.html
│ │ │ ├── account_activation_sent.html
│ │ │ ├── base.html
│ │ │ ├── create_account.html
│ │ │ ├── home.html
│ │ │ ├── password_reset.html
│ │ │ ├── password_reset_complete.html
│ │ │ ├── password_reset_confirm.html
│ │ │ ├── password_reset_done.html
│ │ │ ├── password_reset_email.html
│ │ │ ├── password_reset_forced_email.html
│ │ │ ├── password_reset_subject.txt
│ │ │ ├── password_set.html
│ │ │ ├── signup.html
│ │ │ └── thank_you.html
│ │ └── two_factor
│ │ │ ├── _base.html
│ │ │ ├── _base_focus.html
│ │ │ ├── _wizard_actions.html
│ │ │ ├── _wizard_forms.html
│ │ │ ├── core
│ │ │ ├── backup_tokens.html
│ │ │ ├── login.html
│ │ │ ├── otp_required.html
│ │ │ ├── phone_register.html
│ │ │ ├── setup.html
│ │ │ └── setup_complete.html
│ │ │ ├── profile
│ │ │ ├── disable.html
│ │ │ └── profile.html
│ │ │ └── twilio
│ │ │ └── sms_message.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── lib
│ ├── __init__.py
│ ├── geospatial
│ │ ├── __init__.py
│ │ ├── data
│ │ │ ├── Multifamily_Properties_-_Assisted.csv.xz
│ │ │ ├── Public_Housing_Developments.csv.xz
│ │ │ ├── cejst-1.0-communities.csv.xz
│ │ │ ├── test-Multifamily_Properties_-_Assisted.csv.xz
│ │ │ ├── test-Public_Housing_Developments.csv.xz
│ │ │ └── test-cejst-1.0-communities.csv.xz
│ │ └── eeej.py
│ ├── mappings
│ │ ├── __init__.py
│ │ ├── data
│ │ │ ├── __init__.py
│ │ │ ├── bedes.py
│ │ │ ├── pm-mapping.json
│ │ │ └── process.py
│ │ ├── mapper.py
│ │ ├── mapping_columns.py
│ │ └── test.py
│ ├── mcm
│ │ ├── .gitignore
│ │ ├── __init__.py
│ │ ├── cleaners.py
│ │ ├── data
│ │ │ ├── SEED
│ │ │ │ └── __init__.py
│ │ │ └── __init__.py
│ │ ├── mapper.py
│ │ ├── matchers.py
│ │ ├── reader.py
│ │ ├── tests
│ │ │ ├── __init__.py
│ │ │ ├── test_data
│ │ │ │ ├── example_feature_collection_geojson.json
│ │ │ │ ├── greenbutton
│ │ │ │ │ ├── example-GreenButton-data-electricity-wh.xml
│ │ │ │ │ ├── example-GreenButton-data-gas-J--3.xml
│ │ │ │ │ ├── example-GreenButton-data-gas-MBtu.xml
│ │ │ │ │ ├── example-GreenButton-data-gas-therms--3.xml
│ │ │ │ │ ├── example-GreenButton-data-invalid-electricity-cf.xml
│ │ │ │ │ └── example-GreenButton-data-invalid-time-service-kind.xml
│ │ │ │ ├── test_csv.csv
│ │ │ │ ├── test_espm.csv
│ │ │ │ ├── test_espm.xls
│ │ │ │ ├── test_espm.xlsx
│ │ │ │ ├── test_espm_blank_rows.xls
│ │ │ │ ├── test_espm_date_format.xlsx
│ │ │ │ └── test_missing_headers.csv
│ │ │ ├── test_mcm_parser.py
│ │ │ ├── test_reader_greenbuttonparser.py
│ │ │ └── test_reader_jsonparser.py
│ │ └── utils.py
│ ├── merging
│ │ ├── __init__.py
│ │ ├── merging.py
│ │ └── tests
│ │ │ ├── __init__.py
│ │ │ └── test_merging.py
│ ├── progress_data
│ │ ├── __init__.py
│ │ ├── progress_data.py
│ │ └── tests
│ │ │ ├── __init__.py
│ │ │ └── test_progress_data.py
│ ├── superperms
│ │ ├── __init__.py
│ │ ├── orgs
│ │ │ ├── __init__.py
│ │ │ ├── decorators.py
│ │ │ ├── exceptions.py
│ │ │ ├── migrations
│ │ │ │ ├── 0001_initial.py
│ │ │ │ ├── 0002_auto_20160321_1138.py
│ │ │ │ ├── 0003_auto_20160412_1123.py
│ │ │ │ ├── 0004_auto_20171120_1158.py
│ │ │ │ ├── 0004_auto_20180106_2123.py
│ │ │ │ ├── 0005_merge_20180110_1156.py
│ │ │ │ ├── 0006_organization_display_significant_figures.py
│ │ │ │ ├── 0007_auto_20181107_0904.py
│ │ │ │ ├── 0008_organization_mapquest_api_key.py
│ │ │ │ ├── 0009_organization_meter_related_options.py
│ │ │ │ ├── 0010_auto_20190616_1351.py
│ │ │ │ ├── 0011_auto_20190714_2159.py
│ │ │ │ ├── 0012_auto_20200327_1213.py
│ │ │ │ ├── 0013_organization_comstock_enabled.py
│ │ │ │ ├── 0014_organization_geocoding_enabled.py
│ │ │ │ ├── 0015_organization_property_display_field.py
│ │ │ │ ├── 0016_organization_taxlot_display_field.py
│ │ │ │ ├── 0017_auto_20210218_1715.py
│ │ │ │ ├── 0018_update_organization_display_meter_units.py
│ │ │ │ ├── 0019_organization_better_analysis_api_key.py
│ │ │ │ ├── 0020_rename_display_significant_figures_organization_display_decimal_places.py
│ │ │ │ ├── 0021_auto_20220622_2125.py
│ │ │ │ ├── 0022_auto_20220711_1928.py
│ │ │ │ ├── 0023_auto_20220721_1851.py
│ │ │ │ ├── 0024_salesforce_configurations.py
│ │ │ │ ├── 0025_remove_duplicate_users_for_org.py
│ │ │ │ ├── 0026_organizationuser_unique_user_for_organization.py
│ │ │ │ ├── 0027_organization_ubid_threshold.py
│ │ │ │ ├── 0028_organization_audit_template_report_type.py
│ │ │ │ ├── 0029_auto_20240105_1257.py
│ │ │ │ ├── 0030_accountability_hierarchy.py
│ │ │ │ ├── 0031_encrypt_existing_audit_template_passwords.py
│ │ │ │ ├── 0032_organization_public_feed.py
│ │ │ │ ├── 0033_organization_public_geojson_enabled.py
│ │ │ │ ├── 0034_org_audit_template_fields.py
│ │ │ │ ├── 0035_organization_require_2fa.py
│ │ │ │ ├── 0036_organization_display_meter_water_units.py
│ │ │ │ ├── 0037_organization_display_water_units.py
│ │ │ │ ├── 0038_alter_organization_audit_template_status_type.py
│ │ │ │ ├── 0039_alter_organization_ubid_threshold.py
│ │ │ │ ├── 0040_add_at_export_configs.py
│ │ │ │ ├── 0041_add_at_tracking_fields.py
│ │ │ │ ├── 0042_organizationuser_settings.py
│ │ │ │ └── __init__.py
│ │ │ ├── models.py
│ │ │ └── permissions.py
│ │ └── tests
│ │ │ ├── __init__.py
│ │ │ ├── test_organization_access_levels.py
│ │ │ └── test_organizations.py
│ ├── tkbl
│ │ └── tkbl.py
│ ├── uniformat
│ │ └── uniformat.py
│ ├── util.py
│ └── xml_mapping
│ │ ├── __init__.py
│ │ ├── mapper.py
│ │ └── reader.py
├── management
│ ├── __init__.py
│ └── commands
│ │ ├── __init__.py
│ │ ├── add_eeej_datasources.py
│ │ ├── add_mapping_profile.py
│ │ ├── add_member_to_org.py
│ │ ├── create_and_load_sample_data.py
│ │ ├── create_default_columns.py
│ │ ├── create_default_user.py
│ │ ├── create_geojson_mock_data.py
│ │ ├── create_sample_csv.py
│ │ ├── create_suborg_user.py
│ │ ├── create_test_user_json.py
│ │ ├── delete_unused_uploaded_files.py
│ │ ├── flush_db.py
│ │ ├── make_superuser.py
│ │ ├── rehash.py
│ │ └── remove_superuser.py
├── migrations
│ ├── 0001_initial.py
│ ├── 0002_buildingsnapshot_duplicate.py
│ ├── 0003_auto_20151105_1539.py
│ ├── 0004_auto_20151201_1404.py
│ ├── 0004_noncanonicalprojectbuildings.py
│ ├── 0005_auto_20151201_1510.py
│ ├── 0006_canonicalbuilding_labels.py
│ ├── 0007_auto_20151201_1515.py
│ ├── 0008_remove_projectbuilding_status_label.py
│ ├── 0009_merge.py
│ ├── 0010_auto_20151204_1337.py
│ ├── 0011_auto_20151209_0821.py
│ ├── 0012_auto_20151222_1031.py
│ ├── 0013_auto_20160218_1335.py
│ ├── 0013_auto_20160225_1213.py
│ ├── 0014_auto_20160308_1106.py
│ ├── 0015_merge.py
│ ├── 0016_auto_20160411_1139.py
│ ├── 0017_auto_20160602_1436.py
│ ├── 0017_column_extra_data_source.py
│ ├── 0018_auto_20160609_0841.py
│ ├── 0018_auto_20160614_1330.py
│ ├── 0019_merge.py
│ ├── 0020_auto_20160725_1033.py
│ ├── 0021_auto_20160727_1347.py
│ ├── 0021_auto_20160818_1016.py
│ ├── 0021_propertyauditlog_taxlotauditlog.py
│ ├── 0022_merge.py
│ ├── 0022_propertystate_data_state.py
│ ├── 0023_auto_20160817_0901.py
│ ├── 0023_auto_20160822_2100.py
│ ├── 0024_auto_20160822_2107.py
│ ├── 0024_merge.py
│ ├── 0025_auto_20160822_2108.py
│ ├── 0026_auto_20160822_2109.py
│ ├── 0027_auto_20160822_2143.py
│ ├── 0028_auto_20160824_1642.py
│ ├── 0029_merge.py
│ ├── 0030_column_table_name.py
│ ├── 0031_auto_20160912_1155.py
│ ├── 0031_auto_20160913_0001.py
│ ├── 0032_auto_20160916_1212.py
│ ├── 0032_migrate_label_data.py
│ ├── 0033_merge.py
│ ├── 0034_merge.py
│ ├── 0035_auto_20161005_0238.py
│ ├── 0036_auto_20161006_0722.py
│ ├── 0037_auto_20161006_1744.py
│ ├── 0038_auto_20161008_2244.py
│ ├── 0039_auto_20161013_1536.py
│ ├── 0040_auto_20161014_1839.py
│ ├── 0041_auto_20161014_1908.py
│ ├── 0042_auto_20161015_0611.py
│ ├── 0043_auto_20161025_1033.py
│ ├── 0044_propertystate_property_type.py
│ ├── 0045_auto_20170112_1233.py
│ ├── 0046_auto_20170118_1348.py
│ ├── 0047_auto_20170119_1318.py
│ ├── 0048_auto_20170219_1214.py
│ ├── 0049_auto_20170222_1217.py
│ ├── 0050_clean_auditlogs.py
│ ├── 0051_auto_20170307_0954.py
│ ├── 0052_auto_20170307_0955.py
│ ├── 0053_auto_20170320_1159.py
│ ├── 0054_remove_same_column_in_mappings.py
│ ├── 0055_split_multiple_mappings.py
│ ├── 0056_cleanup_columns.py
│ ├── 0057_remove_column_extra_data_source.py
│ ├── 0058_auto_20170403_1149.py
│ ├── 0059_auto_20170407_1516.py
│ ├── 0060_column_import_file.py
│ ├── 0061_dataqualitycheck_rule.py
│ ├── 0062_auto_20170510_1525.py
│ ├── 0063_rule_text_match.py
│ ├── 0064_auto_20170516_1155.py
│ ├── 0065_auto_20170518_0854.py
│ ├── 0066_auto_20170522_1252.py
│ ├── 0067_auto_20170602_0740.py
│ ├── 0068_auto_20170614_1150.py
│ ├── 0068_green_assessments.py
│ ├── 0069_auto_20170614_1430.py
│ ├── 0070_merge.py
│ ├── 0071_auto_20170721_1203.py
│ ├── 0072_auto_20170908_1521.py
│ ├── 0072_auto_20170918_0850.py
│ ├── 0073_column_units_pint.py
│ ├── 0074_merge.py
│ ├── 0075_auto_20171017_0837.py
│ ├── 0076_auto_20171018_1238.py
│ ├── 0077_auto_20171201_1323.py
│ ├── 0078_auto_20171214_0846.py
│ ├── 0079_propertystate_ubid.py
│ ├── 0080_auto_20180107_0808.py
│ ├── 0080_column_shared_field_type.py
│ ├── 0081_merge_20180109_0747.py
│ ├── 0082_auto_20180119_1021.py
│ ├── 0082_propertystate_source_eui_modeled_pint.py
│ ├── 0083_rename_propertystate_to_orig.py
│ ├── 0084_copy_propertystate_orig_pint.py
│ ├── 0085_rename_propertystate_from_pint.py
│ ├── 0086_auto_20180111_1531.py
│ ├── 0087_merge_20180123_1033.py
│ ├── 0088_auto_20180423_0933.py
│ ├── 0089_auto_20180508_1243.py
│ ├── 0090_auto_20180508_1243.py
│ ├── 0091_auto_20180725_2039.py
│ ├── 0092_add_hash_object_data.py
│ ├── 0093_auto_20180817_1112.py
│ ├── 0094_column_merge_protection.py
│ ├── 0095_auto_20180920_1819.py
│ ├── 0096_auto_20181107_0904.py
│ ├── 0097_auto_20181107_1231.py
│ ├── 0098_auto_20181121_1302.py
│ ├── 0099_auto_20190214_1259.py
│ ├── 0100_auto_20190228_1239.py
│ ├── 0101_auto_20190318_1835.py
│ ├── 0102_auto_20190503_1251.py
│ ├── 0103_auto_20190505_0731.py
│ ├── 0104_auto_20190509_1854.py
│ ├── 0105_auto_20190613_1251.py
│ ├── 0105_auto_20190702_1400.py
│ ├── 0106_meter_scenario_id.py
│ ├── 0107_auto_20190709_2058.py
│ ├── 0108_merge_20190716_1038.py
│ ├── 0109_auto_20190724_1251.py
│ ├── 0110_matching_criteria.py
│ ├── 0111_rehash.py
│ ├── 0112_refresh_matching_criteria.py
│ ├── 0113_column_geocoding_order.py
│ ├── 0114_auto_20191211_0958.py
│ ├── 0115_rehash_postal_code.py
│ ├── 0116_auto_20191219_1606.py
│ ├── 0117_columnmappingpreset.py
│ ├── 0118_match_merge_link_all_orgs.py
│ ├── 0119_column_recognize_empty.py
│ ├── 0120_created_updated_col_objects.py
│ ├── 0121_update_updated_timestamps.py
│ ├── 0122_auto_20200303_1428.py
│ ├── 0123_auto_20200324_1424.py
│ ├── 0124_auto_20200323_1509.py
│ ├── 0125_dq_refactor.py
│ ├── 0126_columnmappingpreset_preset_type.py
│ ├── 0127_auto_20200605_1125.py
│ ├── 0128_auto_20200810_1731.py
│ ├── 0128_auto_20210119_1238.py
│ ├── 0129_auto_20200828_0610.py
│ ├── 0130_auto_20200924_1337.py
│ ├── 0131_analysis_analysisinputfile_analysismessage_analysisoutputfile_analysispropertyview.py
│ ├── 0132_auto_20201211_1949_squashed_0134_auto_20201211_2053.py
│ ├── 0133_auto_20201216_2035.py
│ ├── 0134_auto_20201217_2236.py
│ ├── 0135_auto_20210112_2306.py
│ ├── 0136_merge_20210120_0944.py
│ ├── 0137_statuslabel_show_in_list.py
│ ├── 0138_auto_20210512_0024.py
│ ├── 0139_auto_20210524_1016.py
│ ├── 0140_postofficeemail_postofficeemailtemplate.py
│ ├── 0140_scenario_annual_peak_electricity_reduction.py
│ ├── 0141_auto_20210611_0539.py
│ ├── 0141_propertymeasure_useful_life.py
│ ├── 0142_columnlistprofile_derived_columns.py
│ ├── 0142_merge_20210611_0610.py
│ ├── 0143_auto_20210614_2058.py
│ ├── 0144_merge_20210615_1322.py
│ ├── 0145_merge_20210621_0716.py
│ ├── 0145_rule_for_derived_column.py
│ ├── 0146_merge_20210622_2054.py
│ ├── 0147_rename_bsync_col_mapping_preset.py
│ ├── 0148_auto_20210712_2134.py
│ ├── 0149_auto_20210922_1740.py
│ ├── 0150_auto_20210922_1909.py
│ ├── 0151_seeduser_20210923_1337.py
│ ├── 0152_seed_renameeuicol_20211004_1337.py
│ ├── 0153_auto_20211012_2202.py
│ ├── 0154_analysis_created_at.py
│ ├── 0155_propertystate_egrid_subregion_code.py
│ ├── 0156_auto_20211104_1638.py
│ ├── 0157_sensor.py
│ ├── 0158_sensorreading.py
│ ├── 0159_auto_20220310_1648.py
│ ├── 0159_inventorydocument.py
│ ├── 0160_merge_0159_auto_20220310_1648_0159_inventorydocument.py
│ ├── 0161_alter_inventorydocument_file_type.py
│ ├── 0162_auto_20220418_2257.py
│ ├── 0163_add_bae_assets_to_buildingsync_default_profile.py
│ ├── 0164_auto_20220510_2008.py
│ ├── 0165_column_column_description.py
│ ├── 0166_propertystate_property_timezone.py
│ ├── 0167_auto_20220608_0759.py
│ ├── 0168_datalogger_identifier.py
│ ├── 0169_auto_20220616_1028.py
│ ├── 0170_column_derived_column.py
│ ├── 0171_auto_20220628_2059.py
│ ├── 0172_update_at_building_id_target.py
│ ├── 0173_update_bae_assets.py
│ ├── 0174_fix_ghg_columns.py
│ ├── 0175_filtergroup.py
│ ├── 0176_dataview_dataviewparameter.py
│ ├── 0177_compliance_metric.py
│ ├── 0178_compliance_metric_type_not_required.py
│ ├── 0179_auto_20220916_0927.py
│ ├── 0180_remove_property_campus.py
│ ├── 0181_auto_20221202_0827.py
│ ├── 0182_alter_meter_source.py
│ ├── 0183_auto_20221216_1221.py
│ ├── 0184_alter_meter_type.py
│ ├── 0185_auto_20230112_0922.py
│ ├── 0186_salesforce_configs.py
│ ├── 0187_update_compliance_metric_cycles.py
│ ├── 0188_auto_20230217_1652.py
│ ├── 0189_backfill_events.py
│ ├── 0190_auto_20230324_1451.py
│ ├── 0191_add_data_admin_to_sf.py
│ ├── 0192_sf_default_account_fields.py
│ ├── 0193_remove_null_taxlot_views.py
│ ├── 0194_alter_taxlotview_taxlot.py
│ ├── 0195_sf_delete_label_checkbox.py
│ ├── 0196_alter_source_types.py
│ ├── 0197_pm_source_type.py
│ ├── 0198_auto_20230703_0828.py
│ ├── 0199_rename_ulid_taxlotstate_ubid.py
│ ├── 0200_rehash.py
│ ├── 0201_ubidmodel.py
│ ├── 0202_ubid_sql_functions.py
│ ├── 0203_column_unique_column_name.py
│ ├── 0204_eeej.py
│ ├── 0205_auto_20230913_1417.py
│ ├── 0206_auto_20230908_1319.py
│ ├── 0207_uniformat.py
│ ├── 0208_alter_scenario_event.py
│ ├── 0209_auto_20230929_0959.py
│ ├── 0210_natural_sort.py
│ ├── 0211_auto_20240109_1348.py
│ ├── 0212_add_filtergroup_labels.py
│ ├── 0213_move_filtergroup_labels.py
│ ├── 0214_delete_filtergroup_labels.py
│ ├── 0215_accountability_hierarchy.py
│ ├── 0216_alter_sensor_unique_together.py
│ ├── 0217_goal_commitment_sqft.py
│ ├── 0218_elements.py
│ ├── 0219_auto_20240604_1605.py
│ ├── 0220_alter_analysis_service.py
│ ├── 0221_audittemplateconfig.py
│ ├── 0222_cross_cycle_data_quality.py
│ ├── 0223_water_use_columns.py
│ ├── 0224_alter_meter_type.py
│ ├── 0225_column_is_excluded_from_hash.py
│ ├── 0226_rehash.py
│ ├── 0227_remove_oauth.py
│ ├── 0228_alter_analysis_service.py
│ ├── 0229_add_extra_data_to_states.py
│ ├── 0230_alter_event_cycle.py
│ ├── 0231_column_is_updating.py
│ ├── 0232_reportconfiguration.py
│ ├── 0233_alter_goal_options.py
│ ├── 0234_transaction_goals.py
│ ├── 0235_inventorygroup_inventorygroupmapping.py
│ ├── 0236_auto_20241004_1413.py
│ ├── 0237_auto_20241008_1510.py
│ ├── 0238_meter_systems.py
│ ├── 0239_auto_20241030_1434.py
│ ├── 0240_auto_20241106_1339.py
│ ├── 0241_alter_meter_type.py
│ ├── 0242_add_meter_types.py
│ ├── 0243_update_bsync_measures_v2_6_0.py
│ ├── 0244_goal_name_unique_within_org.py
│ ├── 0245_facilities_plan.py
│ ├── 0246_rename_indices.py
│ ├── 0247_aggregatemetersystem.py
│ └── __init__.py
├── models
│ ├── __init__.py
│ ├── analyses.py
│ ├── analysis_input_files.py
│ ├── analysis_messages.py
│ ├── analysis_output_files.py
│ ├── analysis_property_views.py
│ ├── audit_template_configs.py
│ ├── auditlog.py
│ ├── building_file.py
│ ├── certification.py
│ ├── column_list_profile_columns.py
│ ├── column_list_profiles.py
│ ├── column_mapping_profiles.py
│ ├── column_mappings.py
│ ├── columns.py
│ ├── compliance_metrics.py
│ ├── cycles.py
│ ├── data_quality.py
│ ├── data_views.py
│ ├── derived_columns.py
│ ├── eeej.py
│ ├── elements.py
│ ├── events.py
│ ├── facilities_plan.py
│ ├── filter_group.py
│ ├── goal_notes.py
│ ├── goals.py
│ ├── inventory_document.py
│ ├── inventory_groups.py
│ ├── measures.py
│ ├── meters.py
│ ├── models.py
│ ├── notes.py
│ ├── postoffice.py
│ ├── properties.py
│ ├── property_measures.py
│ ├── report_configurations.py
│ ├── salesforce_configs.py
│ ├── salesforce_mappings.py
│ ├── scenarios.py
│ ├── sensors.py
│ ├── simulations.py
│ ├── systems.py
│ ├── tax_lot_properties.py
│ ├── tax_lots.py
│ ├── ubid_models.py
│ └── uniformat.py
├── ogbs
│ └── flippers.py
├── pagination.py
├── public
│ ├── __init__.py
│ └── migrations
│ │ ├── 0001_initial.py
│ │ ├── 0002_auto_20160411_1139.py
│ │ ├── 0003_auto_20180106_2123.py
│ │ └── __init__.py
├── renderers.py
├── search.py
├── serializers
│ ├── __init__.py
│ ├── access_level_instances.py
│ ├── analyses.py
│ ├── analysis_input_files.py
│ ├── analysis_messages.py
│ ├── analysis_output_files.py
│ ├── analysis_property_views.py
│ ├── audit_template_configs.py
│ ├── base.py
│ ├── building_file.py
│ ├── celery.py
│ ├── certification.py
│ ├── column_list_profiles.py
│ ├── column_mapping_profiles.py
│ ├── column_mappings.py
│ ├── columns.py
│ ├── compliance_metrics.py
│ ├── cycles.py
│ ├── data_loggers.py
│ ├── data_views.py
│ ├── derived_columns.py
│ ├── elements.py
│ ├── events.py
│ ├── facilities_plan.py
│ ├── facilities_plan_run.py
│ ├── filter_groups.py
│ ├── goal_notes.py
│ ├── goals.py
│ ├── historical_notes.py
│ ├── inventory_document.py
│ ├── inventory_groups.py
│ ├── labels.py
│ ├── measures.py
│ ├── meter_readings.py
│ ├── meters.py
│ ├── notes.py
│ ├── organizations.py
│ ├── pint.py
│ ├── postoffice.py
│ ├── properties.py
│ ├── property_view_labels.py
│ ├── report_configurations.py
│ ├── rules.py
│ ├── salesforce_configs.py
│ ├── salesforce_mappings.py
│ ├── scenarios.py
│ ├── systems.py
│ ├── tax_lot_properties.py
│ ├── taxlots.py
│ ├── ubid_models.py
│ ├── uniformat.py
│ ├── users.py
│ └── utils.py
├── static
│ └── seed
│ │ ├── Terms_of_Service.txt
│ │ ├── images
│ │ ├── ali-tree-example-lg.webp
│ │ ├── bg_first_td.webp
│ │ ├── favicon.ico
│ │ ├── gray_square.svg
│ │ ├── icon-city.svg
│ │ ├── kc_2.webp
│ │ ├── map_pin.webp
│ │ ├── red_triangle.svg
│ │ ├── teal_circle.svg
│ │ ├── timeline_electricity.svg
│ │ ├── timeline_natural_gas.svg
│ │ ├── timeline_peak_down.svg
│ │ └── upsidedown_t.svg
│ │ ├── js
│ │ ├── constants.js
│ │ ├── controllers
│ │ │ ├── about_controller.js
│ │ │ ├── accounts_controller.js
│ │ │ ├── admin_controller.js
│ │ │ ├── analyses_controller.js
│ │ │ ├── analysis_controller.js
│ │ │ ├── analysis_details_controller.js
│ │ │ ├── analysis_run_controller.js
│ │ │ ├── at_submission_import_modal_controller.js
│ │ │ ├── bulk_edit_goalnotes_modal_controller.js
│ │ │ ├── bulk_edit_properties_modal_controller.js
│ │ │ ├── column_mapping_profile_modal_controller.js
│ │ │ ├── column_mappings_controller.js
│ │ │ ├── column_settings_controller.js
│ │ │ ├── confirm_column_settings_modal_controller.js
│ │ │ ├── confirm_organization_deletion_modal_controller.js
│ │ │ ├── create_column_modal_controller.js
│ │ │ ├── create_facilities_plan_run_modal_controller.js
│ │ │ ├── create_organization_modal_controller.js
│ │ │ ├── create_sub_organization_modal_controller.js
│ │ │ ├── cycle_admin_controller.js
│ │ │ ├── data_logger_upload_or_update_modal_controller.js
│ │ │ ├── data_quality_admin_controller.js
│ │ │ ├── data_quality_labels_modal_controller.js
│ │ │ ├── data_quality_modal_controller.js
│ │ │ ├── data_upload_audit_template_modal_controller.js
│ │ │ ├── data_upload_espm_modal_controller.js
│ │ │ ├── data_upload_modal_controller.js
│ │ │ ├── data_view_controller.js
│ │ │ ├── dataset_detail_controller.js
│ │ │ ├── dataset_list_controller.js
│ │ │ ├── delete_column_modal_controller.js
│ │ │ ├── delete_cycle_modal_controller.js
│ │ │ ├── delete_data_logger_modal_controller.js
│ │ │ ├── delete_dataset_modal_controller.js
│ │ │ ├── delete_document_modal_controller.js
│ │ │ ├── delete_facilities_plan_run_modal_controller.js
│ │ │ ├── delete_file_modal_controller.js
│ │ │ ├── delete_modal_controller.js
│ │ │ ├── delete_org_modal_controller.js
│ │ │ ├── derived_columns_admin_controller.js
│ │ │ ├── derived_columns_editor_controller.js
│ │ │ ├── developer_controller.js
│ │ │ ├── document_upload_modal_controller.js
│ │ │ ├── email_templates_controller.js
│ │ │ ├── email_templates_modal_controller.js
│ │ │ ├── export_buildingsync_modal_controller.js
│ │ │ ├── export_inventory_modal_controller.js
│ │ │ ├── export_report_modal_controller.js
│ │ │ ├── export_to_audit_template_modal_controller.js
│ │ │ ├── export_to_cts_modal_controller.js
│ │ │ ├── facilities_plan_controller.js
│ │ │ ├── filter_group_modal_controller.js
│ │ │ ├── geocode_modal_controller.js
│ │ │ ├── goal_editor_modal_controller.js
│ │ │ ├── green_button_upload_modal_controller.js
│ │ │ ├── group_meter_creation_modal_controller.js
│ │ │ ├── insights_program_controller.js
│ │ │ ├── insights_property_controller.js
│ │ │ ├── inventory_column_list_profiles_controller.js
│ │ │ ├── inventory_cycles_controller.js
│ │ │ ├── inventory_detail_analyses_controller.js
│ │ │ ├── inventory_detail_analyses_modal_controller.js
│ │ │ ├── inventory_detail_column_list_profiles_controller.js
│ │ │ ├── inventory_detail_controller.js
│ │ │ ├── inventory_detail_cycles_controller.js
│ │ │ ├── inventory_detail_map_controller.js
│ │ │ ├── inventory_detail_meters_controller.js
│ │ │ ├── inventory_detail_notes_modal_controller.js
│ │ │ ├── inventory_detail_sensors_controller.js
│ │ │ ├── inventory_detail_timeline_controller.js
│ │ │ ├── inventory_detail_ubid_controller.js
│ │ │ ├── inventory_group_detail_controller.js
│ │ │ ├── inventory_group_detail_dashboard_controller.js
│ │ │ ├── inventory_group_detail_meters_controller.js
│ │ │ ├── inventory_group_detail_systems_controller.js
│ │ │ ├── inventory_group_list_controller.js
│ │ │ ├── inventory_group_modal_controller.js
│ │ │ ├── inventory_list_controller.js
│ │ │ ├── inventory_map_controller.js
│ │ │ ├── inventory_plots_controller.js
│ │ │ ├── inventory_reports_controller.js
│ │ │ ├── inventory_summary_controller.js
│ │ │ ├── label_admin_controller.js
│ │ │ ├── mapping_controller.js
│ │ │ ├── members_controller.js
│ │ │ ├── menu_controller.js
│ │ │ ├── merge_modal_controller.js
│ │ │ ├── meter_deletion_modal_controller.js
│ │ │ ├── meter_edit_modal_controller.js
│ │ │ ├── modified_modal_controller.js
│ │ │ ├── move_inventory_modal_controller.js
│ │ │ ├── new_member_modal_controller.js
│ │ │ ├── notes_controller.js
│ │ │ ├── organization_access_level_tree_controller.js
│ │ │ ├── organization_add_access_level_instance_modal_controller.js
│ │ │ ├── organization_add_access_level_modal_controller.js
│ │ │ ├── organization_controller.js
│ │ │ ├── organization_delete_access_level_instance_modal_controller.js
│ │ │ ├── organization_edit_access_level_instance_modal_controller.js
│ │ │ ├── organization_settings_controller.js
│ │ │ ├── organization_sharing_controller.js
│ │ │ ├── pairing_controller.js
│ │ │ ├── pairing_settings_controller.js
│ │ │ ├── portfolio_summary_controller.js
│ │ │ ├── postoffice_modal_controller.js
│ │ │ ├── profile_controller.js
│ │ │ ├── program_setup_controller.js
│ │ │ ├── qr_code_scan_modal_controller.js
│ │ │ ├── record_match_merge_link_modal_controller.js
│ │ │ ├── rename_column_modal_controller.js
│ │ │ ├── report_configuration_modal_controller.js
│ │ │ ├── reset_modal_controller.js
│ │ │ ├── sample_data_modal_controller.js
│ │ │ ├── security_controller.js
│ │ │ ├── sensor_delete_modal_controller.js
│ │ │ ├── sensor_readings_upload_modal_controller.js
│ │ │ ├── sensor_update_modal_controller.js
│ │ │ ├── sensors_upload_modal_controller.js
│ │ │ ├── service_detail_controller.js
│ │ │ ├── service_meter_creation_modal_controller.js
│ │ │ ├── service_modal_controller.js
│ │ │ ├── set_update_to_now_modal_controller.js
│ │ │ ├── settings_profile_modal_controller.js
│ │ │ ├── show_populated_columns_modal_controller.js
│ │ │ ├── system_meter_readings_upload_modal_controller.js
│ │ │ ├── system_modal_controller.js
│ │ │ ├── two_factor_profile_controller.js
│ │ │ ├── ubid_admin_controller.js
│ │ │ ├── ubid_admin_modal_controller.js
│ │ │ ├── ubid_decode_modal_controller.js
│ │ │ ├── ubid_editor_modal_controller.js
│ │ │ ├── ubid_jaccard_index_modal_controller.js
│ │ │ ├── unmerge_modal_controller.js
│ │ │ ├── update_derived_data_modal_controller.js
│ │ │ ├── update_inventory_groups_modal_controller.js
│ │ │ └── update_item_labels_modal_controller.js
│ │ ├── decorators
│ │ │ └── ui-grid.js
│ │ ├── directives
│ │ │ ├── sd-dropdown-template.html
│ │ │ ├── sdBasicPropertyInfoChart.js
│ │ │ ├── sdCheckCycleExists.js
│ │ │ ├── sdCheckLabelExists.js
│ │ │ ├── sdDropdown.js
│ │ │ ├── sdEnter.js
│ │ │ ├── sdLabel.js
│ │ │ ├── sdResizable.js
│ │ │ ├── sdScrollSync.js
│ │ │ ├── sdUbid.js
│ │ │ ├── sdUploader.js
│ │ │ └── sdWhenScrolled.js
│ │ ├── filters
│ │ │ ├── district.js
│ │ │ ├── floatingPoint.js
│ │ │ ├── fromNow.js
│ │ │ ├── getAnalysisRunAuthor.js
│ │ │ ├── htmlToPlainText.js
│ │ │ ├── ignoremap.js
│ │ │ ├── startCase.js
│ │ │ ├── startFrom.js
│ │ │ ├── stripImportPrefix.js
│ │ │ ├── titleCase.js
│ │ │ ├── tolerantNumber.js
│ │ │ └── typedNumber.js
│ │ ├── seed.js
│ │ ├── services
│ │ │ ├── ah_service.js
│ │ │ ├── analyses_service.js
│ │ │ ├── audit_template_service.js
│ │ │ ├── auth_service.js
│ │ │ ├── cache_entry_service.js
│ │ │ ├── column_mappings_service.js
│ │ │ ├── columns_service.js
│ │ │ ├── compliance_metric_service.js
│ │ │ ├── cycle_service.js
│ │ │ ├── data_quality_service.js
│ │ │ ├── data_view_service.js
│ │ │ ├── dataset_service.js
│ │ │ ├── derived_columns_service.js
│ │ │ ├── element_service.js
│ │ │ ├── espm_service.js
│ │ │ ├── event_service.js
│ │ │ ├── facilities_plan_run_service.js
│ │ │ ├── facilities_plan_service.js
│ │ │ ├── filter_groups_service.js
│ │ │ ├── flippers.js
│ │ │ ├── geocode_service.js
│ │ │ ├── goal_service.js
│ │ │ ├── http_serializer.js
│ │ │ ├── inventory_group_service.js
│ │ │ ├── inventory_reports_service.js
│ │ │ ├── inventory_service.js
│ │ │ ├── label_service.js
│ │ │ ├── main_service.js
│ │ │ ├── map_service.js
│ │ │ ├── mapping_service.js
│ │ │ ├── matching_service.js
│ │ │ ├── meter_service.js
│ │ │ ├── meters_service.js
│ │ │ ├── modified_service.js
│ │ │ ├── note_service.js
│ │ │ ├── organization_service.js
│ │ │ ├── pairing_service.js
│ │ │ ├── postoffice_service.js
│ │ │ ├── property_measure_service.js
│ │ │ ├── report_configurations_service.js
│ │ │ ├── salesforce_config_service.js
│ │ │ ├── salesforce_mapping_service.js
│ │ │ ├── scenario_service.js
│ │ │ ├── search_service.js
│ │ │ ├── sensor_service.js
│ │ │ ├── service_service.js
│ │ │ ├── simple_modal_service.js
│ │ │ ├── system_service.js
│ │ │ ├── two_factor_service.js
│ │ │ ├── ubid_service.js
│ │ │ ├── uniformat_service.js
│ │ │ ├── uploader_service.js
│ │ │ └── user_service.js
│ │ └── utilities
│ │ │ └── spinner.js
│ │ ├── locales
│ │ ├── en_US.json
│ │ ├── es.json
│ │ └── fr_CA.json
│ │ ├── partials
│ │ ├── about.html
│ │ ├── access_level_instances_import_messages.html
│ │ ├── accounts.html
│ │ ├── accounts_nav.html
│ │ ├── admin.html
│ │ ├── analyses.html
│ │ ├── analysis.html
│ │ ├── analysis_card.html
│ │ ├── analysis_details.html
│ │ ├── analysis_run.html
│ │ ├── analysis_runs.html
│ │ ├── api_docs.html
│ │ ├── at_scenarios.html
│ │ ├── at_submission_import_modal.html
│ │ ├── bulk_edit_goalnotes_modal.html
│ │ ├── bulk_edit_properties_modal.html
│ │ ├── column_mapping_profile_modal.html
│ │ ├── column_mappings.html
│ │ ├── column_settings.html
│ │ ├── confirm_column_settings_modal.html
│ │ ├── confirm_organization_deletion_modal.html
│ │ ├── contact.html
│ │ ├── create_column_modal.html
│ │ ├── create_facilities_plan_run_modal.html
│ │ ├── create_organization_modal.html
│ │ ├── create_sub_organization_modal.html
│ │ ├── custom_ng_tags_input.html
│ │ ├── custom_view_modal.html
│ │ ├── cycle_admin.html
│ │ ├── data_logger_upload_or_update_modal.html
│ │ ├── data_quality_admin.html
│ │ ├── data_quality_labels_modal.html
│ │ ├── data_quality_modal.html
│ │ ├── data_upload_audit_template_modal.html
│ │ ├── data_upload_espm_modal.html
│ │ ├── data_upload_modal.html
│ │ ├── data_upload_modal_progress.html
│ │ ├── data_view.html
│ │ ├── dataset_detail.html
│ │ ├── dataset_list.html
│ │ ├── delete_column_modal.html
│ │ ├── delete_cycle_modal.html
│ │ ├── delete_data_logger_modal.html
│ │ ├── delete_dataset_modal.html
│ │ ├── delete_document_modal.html
│ │ ├── delete_facilities_plan_run_modal.html
│ │ ├── delete_file_modal.html
│ │ ├── delete_modal.html
│ │ ├── delete_org_modal.html
│ │ ├── derived_columns_admin.html
│ │ ├── derived_columns_editor.html
│ │ ├── developer.html
│ │ ├── document_upload_modal.html
│ │ ├── email_templates.html
│ │ ├── email_templates_modal.html
│ │ ├── event_analysis_card.html
│ │ ├── export_buildingsync_modal.html
│ │ ├── export_inventory_modal.html
│ │ ├── export_report_modal.html
│ │ ├── export_to_audit_template_modal.html
│ │ ├── export_to_cts_modal.html
│ │ ├── facilities_plan.html
│ │ ├── filter_group_modal.html
│ │ ├── geocode_modal.html
│ │ ├── goal_editor_modal.html
│ │ ├── green_button_upload_modal.html
│ │ ├── group_meter_creation_modal.html
│ │ ├── home.html
│ │ ├── import_messages.html
│ │ ├── insights_nav.html
│ │ ├── insights_program.html
│ │ ├── insights_property.html
│ │ ├── inventory_column_list_profiles.html
│ │ ├── inventory_cycles.html
│ │ ├── inventory_detail.html
│ │ ├── inventory_detail_analyses.html
│ │ ├── inventory_detail_analyses_modal.html
│ │ ├── inventory_detail_column_list_profiles.html
│ │ ├── inventory_detail_cycles.html
│ │ ├── inventory_detail_header.html
│ │ ├── inventory_detail_meters.html
│ │ ├── inventory_detail_nav.html
│ │ ├── inventory_detail_notes.html
│ │ ├── inventory_detail_notes_modal.html
│ │ ├── inventory_detail_sensors.html
│ │ ├── inventory_detail_timeline.html
│ │ ├── inventory_detail_ubid.html
│ │ ├── inventory_group_detail.html
│ │ ├── inventory_group_detail_dashboard.html
│ │ ├── inventory_group_detail_meters.html
│ │ ├── inventory_group_detail_nav.html
│ │ ├── inventory_group_detail_systems.html
│ │ ├── inventory_group_modal.html
│ │ ├── inventory_groups_list.html
│ │ ├── inventory_list.html
│ │ ├── inventory_loading_modal.html
│ │ ├── inventory_map.html
│ │ ├── inventory_nav.html
│ │ ├── inventory_plots.html
│ │ ├── inventory_reports.html
│ │ ├── inventory_summary.html
│ │ ├── label_admin.html
│ │ ├── mapping.html
│ │ ├── members.html
│ │ ├── merge_modal.html
│ │ ├── meter_deletion_modal.html
│ │ ├── meter_edit_modal.html
│ │ ├── modified_modal.html
│ │ ├── move_inventory_modal.html
│ │ ├── new_member_modal.html
│ │ ├── notes.html
│ │ ├── notes_modal.html
│ │ ├── organization_access_level_tree.html
│ │ ├── organization_add_access_level_instance_modal.html
│ │ ├── organization_add_access_level_modal.html
│ │ ├── organization_delete_access_level_instance_modal.html
│ │ ├── organization_edit_access_level_instance_modal.html
│ │ ├── organization_settings.html
│ │ ├── organization_sharing.html
│ │ ├── pairing.html
│ │ ├── pairing_nav.html
│ │ ├── pairing_settings.html
│ │ ├── portfolio_summary.html
│ │ ├── postoffice_modal.html
│ │ ├── profile.html
│ │ ├── profile_nav.html
│ │ ├── program_setup.html
│ │ ├── qr_code_scan_modal.html
│ │ ├── record_match_merge_link_modal.html
│ │ ├── rename_column_modal.html
│ │ ├── report_configuration_modal.html
│ │ ├── reset_modal.html
│ │ ├── sample_data_modal.html
│ │ ├── security.html
│ │ ├── sensor_delete_modal.html
│ │ ├── sensor_readings_upload_modal.html
│ │ ├── sensor_update_modal.html
│ │ ├── sensors_upload_modal.html
│ │ ├── service_detail.html
│ │ ├── service_meter_creation_modal.html
│ │ ├── service_modal.html
│ │ ├── services_table.html
│ │ ├── set_update_to_now_modal.html
│ │ ├── settings_profile_modal.html
│ │ ├── show_populated_columns_modal.html
│ │ ├── simple_modal.html
│ │ ├── sub_org.html
│ │ ├── system_meter_readings_upload_modal.html
│ │ ├── system_modal.html
│ │ ├── systems_table.html
│ │ ├── two_factor_profile.html
│ │ ├── ubid_admin.html
│ │ ├── ubid_admin_modal.html
│ │ ├── ubid_decode_modal.html
│ │ ├── ubid_editor_modal.html
│ │ ├── ubid_jaccard_index_modal.html
│ │ ├── unmerge_modal.html
│ │ ├── update_derived_data_modal.html
│ │ ├── update_inventory_groups_modal.html
│ │ └── update_item_labels_modal.html
│ │ ├── pdf
│ │ ├── SEED_Platform_V1.1_Getting_Started_Guide.pdf
│ │ ├── SEED_Platform_V1_3_Getting_Started_Guide.pdf
│ │ ├── SEED_Platform_V2_18_Getting_Started_Guide.pdf
│ │ ├── SEED_Release_2_User_Guide.pdf
│ │ └── SEED_v1_User_Guide.pdf
│ │ ├── sample-data
│ │ ├── __MACOSX
│ │ │ ├── ._seed-sample-data
│ │ │ └── seed-sample-data
│ │ │ │ ├── ._interval_data-example-pm-monthly-meter-usage.xlsx
│ │ │ │ ├── ._interval_data-portfolio-manager-sample.xlsx
│ │ │ │ ├── ._simple_data-covered-buildings-sample.csv
│ │ │ │ └── ._simple_data-portfolio-manager-sample.csv
│ │ ├── seed-sample-data.zip
│ │ └── seed-sample-data
│ │ │ ├── interval_data-example-pm-monthly-meter-usage.xlsx
│ │ │ ├── interval_data-portfolio-manager-sample.xlsx
│ │ │ ├── simple_data-covered-buildings-sample.csv
│ │ │ └── simple_data-portfolio-manager-sample.csv
│ │ ├── scss
│ │ ├── ng-wig.css
│ │ └── style.scss
│ │ └── tests
│ │ ├── .eslintrc.js
│ │ ├── admin_controller.spec.js
│ │ ├── create_sub_organization_modal_controller.spec.js
│ │ ├── data_quality_admin_controller.spec.js
│ │ ├── data_quality_modal_controller.spec.js
│ │ ├── data_upload_modal_controller.spec.js
│ │ ├── dataset_detail_controller.spec.js
│ │ ├── dataset_list_controller.spec.js
│ │ ├── district.spec.js
│ │ ├── fromNow.spec.js
│ │ ├── ignoremap.spec.js
│ │ ├── inventory_detail_controller.spec.js
│ │ ├── inventory_service.spec.js
│ │ ├── mapping_controller.spec.js
│ │ ├── members_controller.spec.js
│ │ ├── new_member_modal_controller.spec.js
│ │ ├── property_detail_controller.spec.js
│ │ ├── run_jasmine.js
│ │ ├── sdLabel.spec.js
│ │ ├── sdUploader.spec.js
│ │ ├── search_service.spec.js
│ │ ├── settings_controller.spec.js
│ │ ├── stripImportPrefix.spec.js
│ │ ├── taxlot_detail_controller.spec.js
│ │ ├── titleCase.spec.js
│ │ └── update_item_labels_controller.spec.js
├── tasks.py
├── templates
│ ├── drf-yasg
│ │ └── swagger-ui.html
│ └── seed
│ │ ├── _fonts.html
│ │ ├── _header.html
│ │ ├── _js_urls.html
│ │ ├── _scripts.html
│ │ ├── _sidebar.html
│ │ ├── _vendor_scripts.html
│ │ ├── account_create_email.html
│ │ ├── account_org_added.html
│ │ ├── base.html
│ │ ├── index.html
│ │ ├── jasmine_tests
│ │ └── AngularJSTests.html
│ │ └── salesforce_update_errors.html
├── templatetags
│ ├── __init__.py
│ ├── breadcrumbs.py
│ └── settings_value.py
├── test_helpers
│ ├── __init__.py
│ └── fake.py
├── tests
│ ├── __init__.py
│ ├── api
│ │ ├── seed_readingtools.py
│ │ ├── test_modules.py
│ │ └── test_seed_host_api.py
│ ├── data
│ │ ├── 2019-2020_Multiple Cycle Taxlots.xlsx
│ │ ├── 2019-2020_Multiple Cycle Year only.xlsx
│ │ ├── Has_Meters_two_buildings.xlsx
│ │ ├── Sample_MultipleCycles.xlsx
│ │ ├── access-level-instances.xlsx
│ │ ├── access-levels-wrong1.xlsx
│ │ ├── access-levels-wrong2.xlsx
│ │ ├── access-levels-wrong3.xlsx
│ │ ├── bps
│ │ │ ├── Add_Bills_to_Meters.xlsx
│ │ │ ├── Add_Meters.xlsx
│ │ │ ├── Add_Properties_en.xlsx
│ │ │ ├── BPS-sample-Targets-2019.xlsx
│ │ │ ├── BPS-sample-Targets-2020.xlsx
│ │ │ ├── BPS-sample-Targets-2021.xlsx
│ │ │ ├── BPS-sample-Targets-2022.xlsx
│ │ │ ├── BPS-sample-Targets-2023.xlsx
│ │ │ ├── BPS_Sample_AT_11911.xml
│ │ │ ├── BPS_Sample_AT_12227.xml
│ │ │ ├── BPS_Sample_AT_17971.xml
│ │ │ ├── BPS_Sample_AT_21368.xml
│ │ │ ├── BPS_Sample_AT_21378.xml
│ │ │ ├── BPS_Sample_AT_21381.xml
│ │ │ ├── BPS_Sample_AT_21404.xml
│ │ │ ├── BPS_Sample_AT_21405_2019.xml
│ │ │ ├── BPS_Sample_AT_21405_2020.xml
│ │ │ ├── BPS_Sample_AT_21405_2021.xml
│ │ │ ├── BPS_Sample_AT_21426.xml
│ │ │ ├── CBL-building-performance-standards-sample-2019.xlsx
│ │ │ ├── CBL-building-performance-standards-sample-2020.xlsx
│ │ │ ├── CBL-building-performance-standards-sample-2021.xlsx
│ │ │ ├── CBL-building-performance-standards-sample-2022.xlsx
│ │ │ ├── CBL-building-performance-standards-sample-2023.xlsx
│ │ │ ├── ESPM_BPS_Sample_Meter_Readings.xlsx
│ │ │ └── README.md
│ │ ├── bsync_export_to_at_with_meters_measures.xml
│ │ ├── building_sync_xml.txt
│ │ ├── covered-buildings-sample-with-errors.csv
│ │ ├── covered-buildings-sample.csv
│ │ ├── data-quality-check-sample.csv
│ │ ├── example-GreenButton-data-1-overlapping.xml
│ │ ├── example-GreenButton-data.xml
│ │ ├── example-GreenButton-data2.xml
│ │ ├── example-bsyncr-output.xml
│ │ ├── example-bsyncr-plot.png
│ │ ├── example-data-request-response-new-format.xlsx
│ │ ├── example-data-request-response.xlsx
│ │ ├── example-pm-monthly-meter-usage-2-cost-meters.xlsx
│ │ ├── example-pm-monthly-meter-usage-with-unknown-types-and-units.xlsx
│ │ ├── example-pm-monthly-meter-usage.xlsx
│ │ ├── example-sensor-metadata.xlsx
│ │ ├── example-sensor-readings-small-bad.csv
│ │ ├── example-sensor-readings-small.csv
│ │ ├── example-sensor-readings.csv
│ │ ├── mappings
│ │ │ ├── covered-buildings-mapping-v2.csv
│ │ │ ├── covered-buildings-mapping.csv
│ │ │ ├── espm-single-mapping.csv
│ │ │ └── portfolio-manager-mapping.csv
│ │ ├── nrel-site.geojson
│ │ ├── portfolio-manager-report.xml
│ │ ├── portfolio-manager-sample-missing-headers.csv
│ │ ├── portfolio-manager-sample-with-crlf.xlsx
│ │ ├── portfolio-manager-sample-with-errors.csv
│ │ ├── portfolio-manager-sample.csv
│ │ ├── portfolio-manager-sample.xls
│ │ ├── portfolio-manager-sample.xlsx
│ │ ├── portfolio-manager-single-22482007.xlsx
│ │ ├── property_sample_data.json
│ │ ├── san-jose-test-properties.csv
│ │ ├── san-jose-test-taxlots.csv
│ │ ├── system_meter_readings.xlsx
│ │ ├── test-document.pdf
│ │ ├── test_datatype_mapping.csv
│ │ ├── test_mapping.csv
│ │ └── vcr_cassettes
│ │ │ ├── geocode_101_unique_addresses.yaml
│ │ │ ├── geocode_base_case.yaml
│ │ │ ├── geocode_dup_addresses.yaml
│ │ │ ├── geocode_invalid_or_expired_key.yaml
│ │ │ ├── geocode_low_geocodequality.yaml
│ │ │ ├── geocode_multiple_results.yaml
│ │ │ ├── geocode_property_custom_fields.yaml
│ │ │ ├── geocode_reserved_and_unsafe_characters.yaml
│ │ │ ├── geocode_same_record_twice.yaml
│ │ │ └── geocode_taxlots_custom_fields.yaml
│ ├── test_account_views.py
│ ├── test_address_normalization.py
│ ├── test_admin_views.py
│ ├── test_analyses_views.py
│ ├── test_analysis_messages.py
│ ├── test_analysis_pipelines.py
│ ├── test_analysis_property_views.py
│ ├── test_analysis_utils.py
│ ├── test_api.py
│ ├── test_api_mixins.py
│ ├── test_audit_template.py
│ ├── test_audit_template_configs.py
│ ├── test_building_file.py
│ ├── test_certification_models.py
│ ├── test_certification_serializers.py
│ ├── test_column_list_profile.py
│ ├── test_column_list_profiles_views.py
│ ├── test_column_mapping_profiles_views.py
│ ├── test_column_views.py
│ ├── test_columns.py
│ ├── test_compliance_metrics_views.py
│ ├── test_cycle.py
│ ├── test_cycles.py
│ ├── test_data_quality_check_rules_views.py
│ ├── test_data_quality_checks.py
│ ├── test_data_view_views.py
│ ├── test_decorators.py
│ ├── test_derived_columns.py
│ ├── test_element_views.py
│ ├── test_elements.py
│ ├── test_events.py
│ ├── test_facilities_plan.py
│ ├── test_filter_groups.py
│ ├── test_gbr_properties.py
│ ├── test_geocode_views.py
│ ├── test_goals.py
│ ├── test_green_assessments.py
│ ├── test_greenbutton_import.py
│ ├── test_import_file_views.py
│ ├── test_inventory_document.py
│ ├── test_inventory_groups.py
│ ├── test_labels.py
│ ├── test_labels_api_views.py
│ ├── test_match_existing.py
│ ├── test_measures.py
│ ├── test_media.py
│ ├── test_meter_usage_import.py
│ ├── test_meter_views.py
│ ├── test_note.py
│ ├── test_note_views.py
│ ├── test_numeric_expression_parser.py
│ ├── test_organization_access_levels.py
│ ├── test_organization_users.py
│ ├── test_organization_utils.py
│ ├── test_organization_views.py
│ ├── test_permissions.py
│ ├── test_portfoliomanager.py
│ ├── test_postoffice.py
│ ├── test_properties_serializers.py
│ ├── test_property_measures.py
│ ├── test_property_view_labels.py
│ ├── test_property_views.py
│ ├── test_property_views_viewset.py
│ ├── test_public_views.py
│ ├── test_renderers.py
│ ├── test_report_configurations.py
│ ├── test_reports.py
│ ├── test_salesforce_views.py
│ ├── test_scenarios.py
│ ├── test_search.py
│ ├── test_sensors.py
│ ├── test_services.py
│ ├── test_sharing.py
│ ├── test_string_expression_parser.py
│ ├── test_systems.py
│ ├── test_tasks.py
│ ├── test_tax_lot_property.py
│ ├── test_taxlot_views.py
│ ├── test_taxlot_views_viewset.py
│ ├── test_ubids.py
│ ├── test_utils.py
│ ├── test_utils_geocode.py
│ ├── test_utils_ubid.py
│ ├── test_views.py
│ ├── util.py
│ └── v4
│ │ ├── test_analyses_views.py
│ │ ├── test_organization_user_views.py
│ │ └── test_taxlot_property_views.py
├── token_generators.py
├── ubid
│ ├── buildingid_functions.sql
│ ├── buildingid_postgis_functions.sql
│ └── pluscode_functions.sql
├── urls.py
├── utils
│ ├── CTS Facility Upload Template.xlsx
│ ├── __init__.py
│ ├── address.py
│ ├── api.py
│ ├── api_schema.py
│ ├── buildings.py
│ ├── cache.py
│ ├── cprofile.py
│ ├── encrypt.py
│ ├── facilities_plan_output.xlsx
│ ├── generic.py
│ ├── geocode.py
│ ├── goal_notes.py
│ ├── goals.py
│ ├── import_file.py
│ ├── inventory_filter.py
│ ├── labels.py
│ ├── match.py
│ ├── merge.py
│ ├── meters.py
│ ├── migrations.py
│ ├── nocache.py
│ ├── organizations.py
│ ├── pagination.py
│ ├── properties.py
│ ├── public.py
│ ├── salesforce.py
│ ├── search.py
│ ├── sensors.py
│ ├── serializers.py
│ ├── strings.py
│ ├── tax_lot_properties.py
│ ├── taxlots.py
│ ├── time_utils.py
│ ├── two_factor.py
│ ├── ubid.py
│ ├── users.py
│ ├── v4
│ │ └── inventory_filter.py
│ └── viewsets.py
├── validators.py
└── views
│ ├── __init__.py
│ ├── main.py
│ ├── v3
│ ├── access_levels.py
│ ├── analyses.py
│ ├── analysis_messages.py
│ ├── analysis_views.py
│ ├── audit_template.py
│ ├── audit_template_configs.py
│ ├── building_files.py
│ ├── cache_entries.py
│ ├── column_list_profiles.py
│ ├── column_mapping_profiles.py
│ ├── columns.py
│ ├── compliance_metrics.py
│ ├── cycles.py
│ ├── data
│ │ ├── PM Meter Data.xlsx
│ │ ├── example-GreenButton-data.xml
│ │ └── example-pm-monthly-meter-usage.xlsx
│ ├── data_logger.py
│ ├── data_quality_check_rules.py
│ ├── data_quality_checks.py
│ ├── data_views.py
│ ├── datasets.py
│ ├── derived_columns.py
│ ├── eeej.py
│ ├── elements.py
│ ├── events.py
│ ├── facilities_plan.py
│ ├── facilities_plan_run.py
│ ├── filter_group.py
│ ├── gbr_properties.py
│ ├── geocode.py
│ ├── goal_notes.py
│ ├── goals.py
│ ├── green_assessment_properties.py
│ ├── green_assessment_urls.py
│ ├── green_assessments.py
│ ├── historical_notes.py
│ ├── import_files.py
│ ├── inventory_group_mappings.py
│ ├── inventory_groups.py
│ ├── label_inventories.py
│ ├── labels.py
│ ├── measures.py
│ ├── media.py
│ ├── meter_readings.py
│ ├── meters.py
│ ├── notes.py
│ ├── organization_users.py
│ ├── organizations.py
│ ├── portfolio_manager.py
│ ├── postoffice.py
│ ├── progress.py
│ ├── properties.py
│ ├── property_measures.py
│ ├── property_scenarios.py
│ ├── property_view_labels.py
│ ├── property_views.py
│ ├── public.py
│ ├── report_configurations.py
│ ├── salesforce_configs.py
│ ├── salesforce_mappings.py
│ ├── sensors.py
│ ├── services.py
│ ├── systems.py
│ ├── tax_lot_properties.py
│ ├── taxlot_views.py
│ ├── taxlots.py
│ ├── two_factor_views.py
│ ├── ubid.py
│ ├── uniformat.py
│ ├── uploads.py
│ └── users.py
│ └── v4
│ ├── analyses.py
│ ├── organization_users.py
│ └── taxlot_properties.py
├── setup.py
├── tox.ini
└── vendors
├── package-lock.json
└── package.json
/.codeclimate.yml:
--------------------------------------------------------------------------------
1 | #
2 | # ---Choose Your Languages---
3 | # To disable analysis for a certain language, set the language to `false`.
4 | # For help setting your languages:
5 | # http://docs.codeclimate.com/article/169-configuring-analysis-languages
6 | #
7 | languages:
8 | Ruby: false
9 | JavaScript: true
10 | Python: true
11 | PHP: false
12 | #
13 | # ---Exclude Files or Directories---
14 | # List the files or directories you would like excluded from our analysis.
15 | # For help setting your exclude paths:
16 | # http://docs.codeclimate.com/article/166-excluding-files-folders
17 | #
18 | exclude_paths:
19 | - "seed/static/vendors/*"
20 |
--------------------------------------------------------------------------------
/.cspell.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2",
3 | "language": "en",
4 | "dictionaryDefinitions": [
5 | {
6 | "name": "workspace",
7 | "path": "./.spelling.dic",
8 | "addWords": true
9 | }
10 | ],
11 | "dictionaries": [
12 | "workspace"
13 | ],
14 | "enabled": true
15 | }
16 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | # .git # For now add in the .git repo so that the version is parsed on the page correctly
2 | .github
3 | .gitignore
4 | .dockerignore
5 | .idea
6 | .tox
7 | ./docker-compose*.yml
8 | ./deploy.sh
9 | **/*.pyc
10 | collected_static
11 | deploy.sh
12 | docs
13 | media
14 | node_modules
15 | vendors/node_modules
16 | config/settings/local_untracked.py
17 | config/settings/local_untracked.py.dist
18 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | charset = utf-8
6 | trim_trailing_whitespace = true
7 | insert_final_newline = true
8 |
9 | [*.{html,js,json}]
10 | indent_size = 2
11 |
12 | [*.py]
13 | indent_size = 4
14 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | seed/static/seed/js/decorators/*
2 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Set the default behavior, in case people don't have core.autocrlf set.
2 | * text=auto
3 |
4 | # Explicitly declare text files you want to always be normalized and converted
5 | # to native line endings on checkout.
6 | #*.c text
7 | #*.h text
8 |
9 | # Declare files that will always have CRLF line endings on checkout.
10 | #*.sln text eol=crlf
11 |
12 | # Declare files that will always have LF line endings on checkout.
13 | *.sh text eol=lf
14 | *.py text eol=lf
15 |
16 | # Denote all files that are truly binary and should not be modified.
17 | *.png binary
18 | *.jpg binary
19 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | #### Any background context you want to provide?
4 |
5 | #### What's this PR do?
6 |
7 | #### How should this be manually tested?
8 |
9 | #### What are the relevant tickets?
10 |
11 | #### Screenshots (if appropriate)
12 |
--------------------------------------------------------------------------------
/.github/SEED_Contribution_Proposal_v1.1_2022-12-05.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/.github/SEED_Contribution_Proposal_v1.1_2022-12-05.docx
--------------------------------------------------------------------------------
/.github/workflows/pr-labels.yml:
--------------------------------------------------------------------------------
1 | name: Verify Pull Request Labeling
2 |
3 | on:
4 | pull_request:
5 | types: [opened, labeled, unlabeled, synchronize]
6 |
7 | jobs:
8 | check_pr_labels:
9 | runs-on: ubuntu-22.04
10 | steps:
11 | - name: Verify PR label action
12 | uses: mheap/github-action-required-labels@v5
13 | with:
14 | mode: minimum
15 | count: 1
16 | labels: 'Feature, Bug, Enhancement, Maintenance, Documentation, Performance, Do not publish'
17 | add_comment: true
18 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "ng_seed/seed-angular"]
2 | path = ng_seed/seed-angular
3 | url = https://github.com/SEED-platform/seed-angular.git
4 | branch = main
5 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | CHANGELOG.md
2 | charts/persistentvolumes/templates/
3 | charts/seed/templates/
4 | seed/static/seed/locales/
5 | seed/tests/data/vcr_cassettes/
6 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "singleQuote": true,
3 | "overrides": [
4 | {
5 | "files": "*.html",
6 | "options": {
7 | "printWidth": 200
8 | }
9 | },
10 | {
11 | "files": "*.js",
12 | "options": {
13 | "printWidth": 200,
14 | "trailingComma": "none"
15 | }
16 | },
17 | {
18 | "files": "*.scss",
19 | "options": {
20 | "printWidth": 200
21 | }
22 | },
23 | {
24 | "files": ["*.yaml", "*.yml"],
25 | "options": {
26 | "singleQuote": false
27 | }
28 | }
29 | ]
30 | }
31 |
--------------------------------------------------------------------------------
/bin/drop_create_db.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # drops the ``seed`` DB, then creates it. Add a super_user
3 | # demo@seed-platform.org with password demo
4 |
5 | dropdb seed
6 | createdb seed
7 | python manage.py syncdb --migrate
8 | python manage.py create_default_user
9 |
--------------------------------------------------------------------------------
/bin/setup_database.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # NL (1/29/2016) -- Can we delete this file, it seemed to be for docker
4 | cd /seed
5 |
6 | ./manage.py syncdb
7 | ./manage.py migrate
8 | ./manage.py create_default_user
9 |
--------------------------------------------------------------------------------
/bin/start_celery.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | WORKERS=$(($(nproc) * 2))
4 | WORKERS=$(($WORKERS>1?$WORKERS:1))
5 | celery -A seed beat -l INFO -S django_celery_beat.schedulers:DatabaseScheduler &
6 | celery -A seed worker -l INFO -c $WORKERS --max-tasks-per-child 1000 -E
7 |
--------------------------------------------------------------------------------
/bin/start_uwsgi.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | WORKERS=$(($(nproc) / 2))
4 | WORKERS=$(($WORKERS>1?$WORKERS:1))
5 | /usr/local/bin/uwsgi --http 127.0.0.1:8000 --module wsgi --daemonize /home/ubuntu/uwsgi.log --max-requests 5000 --pidfile /tmp/uwsgi.pid --cheaper-initial 1 -p $WORKERS --single-interpreter --enable-threads --touch-reload /home/ubuntu/touch-reload
6 |
--------------------------------------------------------------------------------
/config/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/config/settings/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/config/template_context.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 |
7 | def session_key(request):
8 | from django.conf import settings
9 |
10 | try:
11 | return {"SESSION_KEY": request.COOKIES[settings.SESSION_COOKIE_NAME]}
12 | except BaseException:
13 | return {}
14 |
15 |
16 | def sentry_js(request):
17 | from django.conf import settings
18 |
19 | # Exists and isn't None.
20 | if hasattr(settings, "SENTRY_JS_DSN") and settings.SENTRY_JS_DSN:
21 | return {"SENTRY_JS_DSN": settings.SENTRY_JS_DSN}
22 | return {}
23 |
--------------------------------------------------------------------------------
/config/tests/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/config/tests/test_views.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from django.test import TestCase
7 | from django.urls import reverse
8 |
9 |
10 | class RobotsTests(TestCase):
11 | def test_robots(self):
12 | response = self.client.get(reverse("robots_txt"))
13 | self.assertEqual(200, response.status_code)
14 |
--------------------------------------------------------------------------------
/config/utils.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | import logging
7 | import re
8 |
9 | logger = logging.getLogger(__name__)
10 |
11 |
12 | def de_camel_case(name):
13 | s1 = re.sub("(.)([A-Z][a-z]+)", r"\1 \2", name)
14 | return re.sub("([a-z0-9])([A-Z])", r"\1 \2", s1)
15 |
--------------------------------------------------------------------------------
/config/views.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from django.conf import settings
7 | from django.http import HttpResponse
8 |
9 |
10 | def robots_txt(request, allow=False):
11 | env = getattr(settings, "ENV", "development").lower()
12 |
13 | if env == "production" or allow:
14 | content = "User-agent: *\nAllow: /"
15 | else:
16 | content = "User-agent: *\nDisallow: /"
17 |
18 | return HttpResponse(content, content_type="text/plain")
19 |
--------------------------------------------------------------------------------
/docker-compose.build.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # This docker-compose version is the configuration when deploying SEED using the
3 | # ./deploy.sh script. This file only builds what is needed for deploying locally.
4 | services:
5 | db-postgres:
6 | container_name: seed_postgres
7 | image: timescale/timescaledb-postgis:latest-pg12
8 | db-redis:
9 | container_name: seed_redis
10 | image: redis:5.0.1
11 | web:
12 | container_name: seed_web
13 | image: seedplatform/seed:latest
14 | build: .
15 | web-celery:
16 | container_name: seed_celery
17 | image: seedplatform/seed:latest
18 | build: .
19 | volumes:
20 | seed_pgdata:
21 | external: true
22 | seed_media:
23 | external: true
24 |
--------------------------------------------------------------------------------
/docker/maintenance.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ "$1" == 'on' ]
4 | then
5 | sed -e 's||'"$(date '+%-m/%-d %-H:%M %Z')"'|g' /seed/docker/maintenance.html > /seed/collected_static/maintenance.html
6 | echo '...maintenance is on...';
7 | elif [ "$1" == 'off' ]
8 | then
9 | rm -f /seed/collected_static/maintenance.html
10 | echo '...maintenance is off...';
11 | fi
12 |
--------------------------------------------------------------------------------
/docker/nginx/seed-uwsgi.conf:
--------------------------------------------------------------------------------
1 | uwsgi_pass seed_upstream;
2 | uwsgi_read_timeout 600s;
3 | uwsgi_send_timeout 600s;
4 |
5 | # https://stackoverflow.com/a/40375474/2730450
6 | uwsgi_ignore_client_abort on;
7 |
8 | include uwsgi_params;
9 |
--------------------------------------------------------------------------------
/docker/seed-entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Make sure not to echo anything out here because some of the scripts that test SEED
4 | # call docker compose run and expect the response to be in the command line.
5 | mkdir -p /seed/collected_static && chmod 775 /seed/collected_static
6 | mkdir -p /seed/media && chmod 777 /seed/media
7 | mkdir -p /seed/media/uploads && chmod 777 /seed/media/uploads
8 | mkdir -p /seed/media/uploads/pm_imports && chmod 777 /seed/media/uploads/pm_imports
9 |
10 | # set the owner to uwsgi
11 | chown -R 1000 /seed/collected_static
12 |
13 | exec "$@"
14 |
--------------------------------------------------------------------------------
/docs/source/getting_started.rst:
--------------------------------------------------------------------------------
1 | Getting Started
2 | ===============
3 |
4 | Development Setup
5 | -----------------
6 |
7 | .. toctree::
8 | :maxdepth: 2
9 |
10 | setup_osx
11 | setup_docker
12 |
--------------------------------------------------------------------------------
/docs/source/images/case-a.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/docs/source/images/case-a.webp
--------------------------------------------------------------------------------
/docs/source/images/case-abcd.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/docs/source/images/case-abcd.webp
--------------------------------------------------------------------------------
/docs/source/images/case-b.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/docs/source/images/case-b.webp
--------------------------------------------------------------------------------
/docs/source/images/case-c.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/docs/source/images/case-c.webp
--------------------------------------------------------------------------------
/docs/source/images/case-d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/docs/source/images/case-d.webp
--------------------------------------------------------------------------------
/docs/source/images/data-model.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/docs/source/images/data-model.webp
--------------------------------------------------------------------------------
/docs/source/license.rst:
--------------------------------------------------------------------------------
1 | ==============
2 | License
3 | ==============
4 |
5 | .. include:: ../../LICENSE.md
6 |
--------------------------------------------------------------------------------
/docs/source/modules.rst:
--------------------------------------------------------------------------------
1 | =========
2 | Modules
3 | =========
4 |
5 | .. toctree::
6 | :maxdepth: 3
7 |
8 | modules/config
9 | modules/seed.cleansing
10 | modules/seed.data
11 | modules/seed.data_importer
12 | modules/seed.features
13 | modules/seed.landing
14 | modules/seed.lib
15 | modules/seed.lib.mappings
16 | modules/seed.lib.merging
17 | modules/seed.mappings
18 | modules/seed.managers
19 | modules/seed.models
20 | modules/seed.public
21 | modules/seed
22 | modules/seed.serializers
23 | modules/seed.tests
24 | modules/seed.urls
25 | modules/seed.utils
26 | modules/seed.views
27 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.cleansing.rst:
--------------------------------------------------------------------------------
1 | Data Quality Package
2 | ====================
3 |
4 | Inheritance
5 | -----------
6 |
7 | .. inheritance-diagram:: seed.data_quality.models
8 | :parts: 2
9 |
10 | Submodules
11 | ----------
12 |
13 | Models
14 | ------
15 |
16 | .. automodule:: seed.models.data_quality
17 | :members:
18 | :undoc-members:
19 | :show-inheritance:
20 |
21 | Tests
22 | -----
23 |
24 | .. automodule:: seed.tests.data_quality
25 | :members:
26 | :undoc-members:
27 | :show-inheritance:
28 |
29 | Views
30 | -----
31 |
32 | .. automodule:: seed.views.data_quality
33 | :members:
34 | :undoc-members:
35 | :show-inheritance:
36 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.data.rst:
--------------------------------------------------------------------------------
1 | Data Package
2 | ============
3 |
4 | Submodules
5 | ----------
6 |
7 | BEDES
8 | -----
9 |
10 | .. automodule:: seed.data.bedes
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
15 |
16 | Module contents
17 | ---------------
18 |
19 | .. automodule:: seed.data
20 | :members:
21 | :undoc-members:
22 | :show-inheritance:
23 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.features.rst:
--------------------------------------------------------------------------------
1 | Features Package
2 | ================
3 |
4 | Submodules
5 | ----------
6 |
7 | .. Steps
8 | .. --------------------------
9 |
10 | .. .. automodule:: seed.features.steps
11 | .. :members:
12 | .. :undoc-members:
13 | .. :show-inheritance:
14 |
15 |
16 | Module contents
17 | ---------------
18 |
19 | .. automodule:: seed.features
20 | :members:
21 | :undoc-members:
22 | :show-inheritance:
23 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.landing.management.commands.rst:
--------------------------------------------------------------------------------
1 | Landing Management Package
2 | ==========================
3 |
4 | Submodules
5 | ----------
6 |
7 | Update EULA
8 | -----------
9 |
10 | .. automodule:: seed.landing.management.commands.update_eula
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
15 |
16 | Module contents
17 | ---------------
18 |
19 | .. automodule:: seed.landing.management.commands
20 | :members:
21 | :undoc-members:
22 | :show-inheritance:
23 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.landing.management.rst:
--------------------------------------------------------------------------------
1 | seed.landing.management package
2 | ===============================
3 |
4 | Subpackages
5 | -----------
6 |
7 | .. toctree::
8 |
9 | seed.landing.management.commands
10 |
11 | Module contents
12 | ---------------
13 |
14 | .. automodule:: seed.landing.management
15 | :members:
16 | :undoc-members:
17 | :show-inheritance:
18 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.lib.merging.rst:
--------------------------------------------------------------------------------
1 | seed.lib.merging package
2 | ========================
3 |
4 | Submodules
5 | ----------
6 |
7 | seed.lib.merging.merging module
8 | -------------------------------
9 |
10 | .. automodule:: seed.lib.merging.merging
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
15 |
16 | Module contents
17 | ---------------
18 |
19 | .. automodule:: seed.lib.merging
20 | :members:
21 | :undoc-members:
22 | :show-inheritance:
23 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.lib.rst:
--------------------------------------------------------------------------------
1 | Library Packages
2 | ================
3 |
4 | Submodules
5 | ----------
6 |
7 | Module contents
8 | ---------------
9 |
10 | .. automodule:: seed.lib
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
15 | .. automodule:: seed.lib.mappings
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | .. automodule:: seed.lib.merging
21 | :members:
22 | :undoc-members:
23 | :show-inheritance:
24 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.management.rst:
--------------------------------------------------------------------------------
1 | Management Package
2 | ==================
3 |
4 | Subpackages
5 | -----------
6 |
7 | .. toctree::
8 |
9 | seed.management.commands
10 |
11 | Module contents
12 | ---------------
13 |
14 | .. automodule:: seed.management
15 | :members:
16 | :undoc-members:
17 | :show-inheritance:
18 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.managers.rst:
--------------------------------------------------------------------------------
1 | Managers Package
2 | ================
3 |
4 | Subpackages
5 | -----------
6 |
7 | .. toctree::
8 |
9 | seed.managers.tests
10 |
11 | Submodules
12 | ----------
13 |
14 | JSON
15 | ----
16 |
17 | .. automodule:: seed.managers.json
18 | :members:
19 | :undoc-members:
20 | :show-inheritance:
21 |
22 |
23 | Module contents
24 | ---------------
25 |
26 | .. automodule:: seed.managers
27 | :members:
28 | :undoc-members:
29 | :show-inheritance:
30 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.managers.tests.rst:
--------------------------------------------------------------------------------
1 | Manager Tests Package
2 | =====================
3 |
4 | Submodules
5 | ----------
6 |
7 | Test JSON Manager
8 | -----------------
9 |
10 | .. automodule:: seed.managers.tests.test_json_manager
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
15 |
16 | Module contents
17 | ---------------
18 |
19 | .. automodule:: seed.managers.tests
20 | :members:
21 | :undoc-members:
22 | :show-inheritance:
23 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.public.rst:
--------------------------------------------------------------------------------
1 | Public Package
2 | ==============
3 |
4 | Submodules
5 | ----------
6 |
7 | Models
8 | ------
9 |
10 | .. automodule:: seed.public.models
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
15 |
16 | Module contents
17 | ---------------
18 |
19 | .. automodule:: seed.public
20 | :members:
21 | :undoc-members:
22 | :show-inheritance:
23 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.serializers.rst:
--------------------------------------------------------------------------------
1 | Serializers Package
2 | ===================
3 |
4 | Submodules
5 | ----------
6 |
7 | Serializers
8 | -----------
9 |
10 | .. automodule:: seed.serializers.celery
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
15 | Labels
16 | ------
17 |
18 | .. automodule:: seed.serializers.labels
19 | :members:
20 | :undoc-members:
21 | :show-inheritance:
22 |
23 |
24 | Module contents
25 | ---------------
26 |
27 | .. automodule:: seed.serializers
28 | :members:
29 | :undoc-members:
30 | :show-inheritance:
31 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.templatetags.rst:
--------------------------------------------------------------------------------
1 | Templatetags Package
2 | =========================
3 |
4 | Submodules
5 | ----------
6 |
7 | Breadcrumbs
8 | -----------
9 |
10 | .. automodule:: seed.templatetags.breadcrumbs
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.test_helpers.factory.lib.rst:
--------------------------------------------------------------------------------
1 | Test Helper Factory Lib Package
2 | ===============================
3 |
4 | Submodules
5 | ----------
6 |
7 | Chomsky
8 | -------
9 |
10 | .. automodule:: seed.test_helpers.factory.lib.chomsky
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.test_helpers.factory.rst:
--------------------------------------------------------------------------------
1 | Test Helper Factor Package
2 | ==========================
3 |
4 | Subpackages
5 | -----------
6 |
7 | .. toctree::
8 |
9 | seed.test_helpers.factory.lib
10 |
11 | Submodules
12 | ----------
13 |
14 | Helpers
15 | -------
16 |
17 | .. automodule:: seed.test_helpers.factory.helpers
18 | :members:
19 | :undoc-members:
20 | :show-inheritance:
21 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.test_helpers.rst:
--------------------------------------------------------------------------------
1 | Test Helpers Package
2 | ====================
3 |
4 | Subpackages
5 | -----------
6 |
7 | .. toctree::
8 |
9 | seed.test_helpers.factory
10 |
11 | Module contents
12 | ---------------
13 |
14 | .. automodule:: seed.test_helpers
15 | :members:
16 | :undoc-members:
17 | :show-inheritance:
18 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.tests.functional.rst:
--------------------------------------------------------------------------------
1 | Tests (Functional) Package
2 | ==========================
3 |
4 | Submodules
5 | ----------
6 |
7 | Base
8 | ----
9 | .. automodule:: seed.functional.tests.base
10 | :members:
11 |
12 | Page
13 | ----
14 | .. automodule:: seed.functional.tests.page
15 | :members:
16 |
17 | Pages
18 | -----
19 | .. automodule:: seed.functional.tests.pages
20 | :members:
21 | :show-inheritance:
22 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.urls.rst:
--------------------------------------------------------------------------------
1 | URLs Package
2 | ============
3 |
4 | Submodules
5 | ----------
6 |
7 | Accounts
8 | --------
9 |
10 | .. automodule:: seed.urls.accounts
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
15 | APIs
16 | ----
17 |
18 | .. automodule:: seed.urls.api
19 | :members:
20 | :undoc-members:
21 | :show-inheritance:
22 |
23 | Main
24 | ----
25 |
26 | .. automodule:: seed.urls.main
27 | :members:
28 | :undoc-members:
29 | :show-inheritance:
30 |
--------------------------------------------------------------------------------
/docs/source/modules/seed.utils.rst:
--------------------------------------------------------------------------------
1 | Utilities Package
2 | =================
3 |
4 | Submodules
5 | ----------
6 |
7 | APIs
8 | ----
9 |
10 | .. automodule:: seed.utils.api
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
15 | Buildings
16 | ---------
17 |
18 | .. automodule:: seed.utils.buildings
19 | :members:
20 | :undoc-members:
21 | :show-inheritance:
22 |
23 | Organizations
24 | -------------
25 |
26 | .. automodule:: seed.utils.organizations
27 | :members:
28 | :undoc-members:
29 | :show-inheritance:
30 |
31 | Time
32 | ----
33 |
34 | .. automodule:: seed.utils.time
35 | :members:
36 | :undoc-members:
37 | :show-inheritance:
38 |
--------------------------------------------------------------------------------
/locale/en_US/LC_MESSAGES/django.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/locale/en_US/LC_MESSAGES/django.mo
--------------------------------------------------------------------------------
/locale/es/LC_MESSAGES/django.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/locale/es/LC_MESSAGES/django.mo
--------------------------------------------------------------------------------
/locale/fr_CA/LC_MESSAGES/django.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/locale/fr_CA/LC_MESSAGES/django.mo
--------------------------------------------------------------------------------
/log/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/log/.gitkeep
--------------------------------------------------------------------------------
/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | """
3 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
4 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
5 | """
6 |
7 | import os
8 | import sys
9 |
10 | if __name__ == "__main__":
11 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev")
12 |
13 | from django.core.management import execute_from_command_line
14 |
15 | execute_from_command_line(sys.argv)
16 |
--------------------------------------------------------------------------------
/mypy.ini:
--------------------------------------------------------------------------------
1 | [mypy]
2 | ignore_missing_imports = True
3 | exclude = (?x)(
4 | ^docs\/source\/conf\.py$
5 | | ^seed\/tests\/test_search\.py$
6 | | ^venv\/.*$
7 | )
8 |
9 | [mypy-seed.*.migrations.*]
10 | ignore_errors = True
11 |
12 | [mypy-config.settings.*]
13 | ignore_errors = True
14 |
--------------------------------------------------------------------------------
/ng_seed/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/ng_seed/__init__.py
--------------------------------------------------------------------------------
/pytest.ini:
--------------------------------------------------------------------------------
1 | [pytest]
2 | DJANGO_SETTINGS_MODULE = config.settings.test
3 | python_files = tests.py test_*.py *_tests.py
4 | addopts = --ignore=seed/tests/api/test_seed_host_api.py --reuse-db
5 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | # This file is here because many Platforms as a Service look for
2 | # requirements.txt in the root directory of a project.
3 | -r requirements/aws.txt
4 |
--------------------------------------------------------------------------------
/requirements/aws.txt:
--------------------------------------------------------------------------------
1 | -r base.txt
2 | boto3==1.40.30
3 | django-ses==4.4.0
4 | uWSGI==2.0.30; sys_platform != "win32"
5 |
--------------------------------------------------------------------------------
/requirements/local.txt:
--------------------------------------------------------------------------------
1 | # Local development dependencies go here
2 | -r test.txt
3 | django-debug-toolbar==6.0.0
4 |
--------------------------------------------------------------------------------
/seed/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | # This will make sure the app is always imported when
7 | # Django starts so that shared_task will use this app.
8 | from .celery import app as celery_app
9 |
10 | __all__ = ("celery_app",)
11 |
--------------------------------------------------------------------------------
/seed/admin.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from django.contrib import admin
7 |
8 | from seed.models import Column, Cycle, Property, PropertyState, PropertyView, TaxLot, TaxLotProperty, TaxLotState, TaxLotView
9 |
10 | admin.site.register(Column)
11 | admin.site.register(Property)
12 | admin.site.register(PropertyView)
13 | admin.site.register(PropertyState)
14 | admin.site.register(Cycle)
15 | admin.site.register(TaxLot)
16 | admin.site.register(TaxLotView)
17 | admin.site.register(TaxLotState)
18 | admin.site.register(TaxLotProperty)
19 |
--------------------------------------------------------------------------------
/seed/analysis_pipelines/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/analysis_pipelines/better/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from seed.analysis_pipelines.better.pipeline import ( # noqa: F401
7 | BETTERPipeline,
8 | _finish_analysis,
9 | _finish_preparation,
10 | _prepare_all_properties,
11 | _start_analysis,
12 | )
13 |
--------------------------------------------------------------------------------
/seed/api/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/api/base/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/api/v3/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/api/v4/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/audit_template/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/building_sync/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/building_sync/lib/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/building_sync/tests/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/building_sync/tests/data/ExportedData.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/building_sync/tests/data/ExportedData.xlsx
--------------------------------------------------------------------------------
/seed/building_sync/tests/data/ex1_no_schemaLocation_and_ex_1.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/building_sync/tests/data/ex1_no_schemaLocation_and_ex_1.zip
--------------------------------------------------------------------------------
/seed/building_sync/tests/data/ex_1_and_buildingsync_ex01_measures.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/building_sync/tests/data/ex_1_and_buildingsync_ex01_measures.zip
--------------------------------------------------------------------------------
/seed/celery.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | """
3 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
4 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
5 | """
6 |
7 | import os
8 |
9 | import celery
10 | from django.conf import settings
11 |
12 | # set the default Django settings module for the 'celery' program.
13 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev")
14 |
15 | app = celery.Celery("seed")
16 | app.config_from_object("django.conf:settings", namespace="CELERY")
17 | app.autodiscover_tasks(lambda: (*settings.SEED_CORE_APPS, "seed.analysis_pipelines"))
18 |
19 | if __name__ == "__main__":
20 | app.start()
21 |
--------------------------------------------------------------------------------
/seed/context_processors.py:
--------------------------------------------------------------------------------
1 | from django.core.cache import cache
2 |
3 |
4 | def global_vars(_request):
5 | method_2fa = cache.get("method_2fa")
6 | user_email = cache.get("user_email")
7 | return {"method_2fa": method_2fa, "user_email": user_email}
8 |
--------------------------------------------------------------------------------
/seed/data_importer/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/0002_auto_20160218_1335.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations, models
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("data_importer", "0001_initial"),
7 | ]
8 |
9 | operations = [
10 | migrations.AlterField(
11 | model_name="importrecord",
12 | name="mcm_version",
13 | field=models.IntegerField(null=True, blank=True),
14 | ),
15 | ]
16 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/0003_merge.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("data_importer", "0002_auto_20160302_1142"),
7 | ("data_importer", "0002_auto_20160218_1335"),
8 | ]
9 |
10 | operations = []
11 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/0005_importfile_cycle.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-09-27 21:23
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0034_merge"),
9 | ("data_importer", "0004_auto_20160411_1139"),
10 | ]
11 |
12 | operations = [
13 | migrations.AddField(
14 | model_name="importfile",
15 | name="cycle",
16 | field=models.ForeignKey(blank=True, null=True, on_delete=models.deletion.CASCADE, to="seed.Cycle"),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/0007_auto_20161008_2244.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-10-09 05:44
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("data_importer", "0006_auto_20161007_0317"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="importfile",
14 | name="cycle",
15 | field=models.ForeignKey(blank=True, null=True, on_delete=models.deletion.CASCADE, to="seed.Cycle"),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/0008_importfile_cached_mapped_columns.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-12-09 17:47
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("data_importer", "0007_auto_20161008_2244"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="importfile",
14 | name="cached_mapped_columns",
15 | field=models.TextField(blank=True, null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/0009_importfile_uploaded_filename.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-01-05 21:51
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("data_importer", "0008_importfile_cached_mapped_columns"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="importfile",
14 | name="uploaded_filename",
15 | field=models.CharField(blank=True, max_length=255),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/0010_importfile_matching_results_data.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.6 on 2018-07-13 15:15
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("data_importer", "0009_importfile_uploaded_filename"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="importfile",
14 | name="matching_results_data",
15 | field=models.JSONField(blank=True, default=dict),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/0013_importfile_raw_property_state_to_filename.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.10 on 2020-04-28 23:38
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("data_importer", "0012_auto_20181107_0904"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="importfile",
14 | name="raw_property_state_to_filename",
15 | field=models.JSONField(blank=True, default=dict),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/0014_importfile_has_generated_headers.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2020-09-11 15:02
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("data_importer", "0013_importfile_raw_property_state_to_filename"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="importfile",
14 | name="has_generated_headers",
15 | field=models.BooleanField(default=False),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/0015_auto_20210712_2134.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.0.14 on 2021-07-12 21:34
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("data_importer", "0014_importfile_has_generated_headers"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterModelOptions(
13 | name="importfile",
14 | options={"ordering": ("-modified", "-created")},
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/0018_importfile_multiple_cycle_upload.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.19 on 2023-06-09 14:52
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("data_importer", "0017_pm_source_type"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="importfile",
14 | name="multiple_cycle_upload",
15 | field=models.BooleanField(default=False),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/data_importer/migrations/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/data_importer/tests/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/MultiCycle_Test.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/MultiCycle_Test.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-properties-2-invalid-footprints.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-properties-2-invalid-footprints.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-properties-duplicate-headers.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-properties-duplicate-headers.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-properties-duplicates.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-properties-duplicates.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-properties-missing-headers.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-properties-missing-headers.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-properties-postal.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-properties-postal.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-properties-small-changes.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-properties-small-changes.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-properties-unicode.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-properties-unicode.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-properties.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-properties.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-taxlots-1-invalid-footprint.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-taxlots-1-invalid-footprint.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-taxlots-2-invalid-footprints.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-taxlots-2-invalid-footprints.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-taxlots-small-changes.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-taxlots-small-changes.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-data-taxlots.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-data-taxlots.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-pm-data-request-with-meters-new-format.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-pm-data-request-with-meters-new-format.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-pm-data-request-with-meters.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-pm-data-request-with-meters.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-pm-monthly-meter-usage-1-dup.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-pm-monthly-meter-usage-1-dup.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-pm-monthly-meter-usage-2-cost-meters.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-pm-monthly-meter-usage-2-cost-meters.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-pm-monthly-meter-usage-with-unknown-types-and-units.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-pm-monthly-meter-usage-with-unknown-types-and-units.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-pm-monthly-meter-usage.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-pm-monthly-meter-usage.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/data/example-pm-properties.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/data_importer/tests/data/example-pm-properties.xlsx
--------------------------------------------------------------------------------
/seed/data_importer/tests/integration/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/docs/faq/features/irregular-data-updates.md:
--------------------------------------------------------------------------------
1 | ---
2 | question: Do you anticipate any SEED issues if there are irregular data updates for each building? For example, with a point-of-sale benchmarking program, building data would only be updated when a property is sold.
3 | tags: []
4 | ---
5 |
6 | There should not be any issues importing data at non-regular times; users frequently do so with ENERGY STAR Portfolio Manager data.
7 |
--------------------------------------------------------------------------------
/seed/docs/faq/features/linking-paired-properties.md:
--------------------------------------------------------------------------------
1 | ---
2 | question: How does linking interact with paired properties and tax lots?
3 | tags: [feature, inventory management]
4 | ---
5 |
6 | At the moment, paired property and tax lot relationships are displayed and managed separately from linked relationships. That is, paired records are viewed and managed in a separate area of SEED as linked records.
7 |
--------------------------------------------------------------------------------
/seed/docs/faq/features/verify-geocode.md:
--------------------------------------------------------------------------------
1 | ---
2 | question: I just geocoded my data using SEED. How do I review and verify the results?
3 | tags: [features, geocoding]
4 | ---
5 |
6 | There are multiple ways of verifying geocoding results. The most obvious way is to verify that latitude and longitude fields are populated. Additionally, SEED provides a field called "Geocoding Confidence". This field can provide evidence of how the geocoding went for that record - a value starting with "Low..." indicates that geocoding failed for a record because the address values didn't yield reliable results. Finally, SEED provides an inventory map page that allows you to view where the points are located on a map.
7 |
--------------------------------------------------------------------------------
/seed/docs/faq/general/resources.md:
--------------------------------------------------------------------------------
1 | ---
2 | question: What resources or support do you provide to jurisdictions interested in using SEED as part of a benchmarking program?
3 | tags: []
4 | ---
5 |
6 | We typically provide technical support as needed and within reason. As the community grows, there are more users able to provide support. It is recommended to use [GitHub issues](https://github.com/SEED-platform/seed/issues) to a) view existing feature requests and issues, and b) communicate with various developers.
7 |
--------------------------------------------------------------------------------
/seed/docs/faq/hosting/local-network.md:
--------------------------------------------------------------------------------
1 | ---
2 | question: Can the web interface of a self-hosted SEED instance be accessed via a local network, or is internet access required? Can access via local internet be disabled?
3 | tags: []
4 | ---
5 |
6 | Access via public internet would be a function of the self-hosted instance's network configuration. If SEED is hosted on Amazon Web Services, for example, the host can deny access based on CIDR blocks (IP address ranges) in the Amazon Web Services Console. If the application is hosted on user-owned infrastructure, a local firewall can prevent external access. Note that internal access in both cases would still be available (i.e., the web interface would be accessible).
7 |
--------------------------------------------------------------------------------
/seed/docs/faq/industry involvement/building-construction-permits.md:
--------------------------------------------------------------------------------
1 | ---
2 | question: Do any applications use SEED to store and analyze building construction permit applications for energy code compliance?
3 | tags: []
4 | ---
5 |
6 | We are not aware of any applications which use SEED to do this, although SEED could be linked to another tool, like SalesForce. We recommend contacting Earth Advantage and Clearly Energy for more details (see the [technical allies page](https://seed-platform.org/technical_ally/)).
7 |
--------------------------------------------------------------------------------
/seed/docs/faq/security/encryption.md:
--------------------------------------------------------------------------------
1 | ---
2 | question: Can you suggest any encryption solutions, since the SEED software does not encrypt its database?
3 | tags: []
4 | ---
5 |
6 | We recommend hard drive encryption of the database server as the easiest solution; encrypting locally is more complicated but certainly doable.
7 |
--------------------------------------------------------------------------------
/seed/docs/faq/security/ssl.md:
--------------------------------------------------------------------------------
1 | ---
2 | question: How does SEED secure internet data communications?
3 | tags: []
4 | ---
5 |
6 | Secure sockets layer (SSL) protocols must be configured on the hosted instance. This requires purchasing and adding certificates to the deployed server, or using a third-party service (e.g., CloudFlare or Cloudfront) to manage the domain name system (DNS) and the SSL certificates.
7 |
--------------------------------------------------------------------------------
/seed/docs/static/docs/images/mapping_diagram.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/docs/static/docs/images/mapping_diagram.webp
--------------------------------------------------------------------------------
/seed/docs/urls.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from django.urls import path
7 |
8 | from seed.docs.views import faq_page
9 |
10 | urlpatterns = [
11 | path("", faq_page, name="documentation"),
12 | ]
13 |
--------------------------------------------------------------------------------
/seed/hpxml/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/hpxml/tests/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/landing/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/landing/migrations/0002_auto_20151105_1539.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations, models
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("landing", "0001_initial"),
7 | ]
8 |
9 | operations = [
10 | migrations.AlterField(
11 | model_name="seeduser",
12 | name="default_custom_columns",
13 | field=models.JSONField(default={}),
14 | preserve_default=True,
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/landing/migrations/0003_seeduser_default_building_detail_custom_columns.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations, models
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("landing", "0002_auto_20151105_1539"),
7 | ]
8 |
9 | operations = [
10 | migrations.AddField(
11 | model_name="seeduser",
12 | name="default_building_detail_custom_columns",
13 | field=models.JSONField(default={}),
14 | preserve_default=True,
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/landing/migrations/0004_auto_20160316_1102.py:
--------------------------------------------------------------------------------
1 | import django.db.models.deletion
2 | from django.db import migrations, models
3 |
4 |
5 | class Migration(migrations.Migration):
6 | dependencies = [
7 | ("landing", "0003_seeduser_default_building_detail_custom_columns"),
8 | ]
9 |
10 | operations = [
11 | migrations.AlterField(
12 | model_name="seeduser",
13 | name="default_organization",
14 | field=models.ForeignKey(
15 | related_name="default_users", on_delete=django.db.models.deletion.SET_NULL, blank=True, to="orgs.Organization", null=True
16 | ),
17 | preserve_default=True,
18 | ),
19 | ]
20 |
--------------------------------------------------------------------------------
/seed/landing/migrations/0005_merge.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("landing", "0004_auto_20160316_1102"),
7 | ("landing", "0004_auto_20160218_1335"),
8 | ]
9 |
10 | operations = []
11 |
--------------------------------------------------------------------------------
/seed/landing/migrations/0006_auto_20170602_1648.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-06-02 23:48
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("landing", "0005_merge"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="seeduser",
14 | name="default_building_detail_custom_columns",
15 | field=models.JSONField(default=dict),
16 | ),
17 | migrations.AlterField(
18 | model_name="seeduser",
19 | name="default_custom_columns",
20 | field=models.JSONField(default=dict),
21 | ),
22 | ]
23 |
--------------------------------------------------------------------------------
/seed/landing/migrations/0007_auto_20181107_0904.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.16 on 2018-11-07 17:04
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("landing", "0006_auto_20170602_1648"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="seeduser",
14 | name="api_key",
15 | field=models.CharField(blank=True, db_index=True, default="", max_length=128, verbose_name="api key"),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/landing/migrations/0008_seeduser_prompt_2fa.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-04-19 20:19
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("landing", "0007_auto_20181107_0904"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="seeduser",
14 | name="prompt_2fa",
15 | field=models.BooleanField(default=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/landing/migrations/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/landing/serializers.py:
--------------------------------------------------------------------------------
1 | from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
2 |
3 |
4 | class SeedTokenObtainPairSerializer(TokenObtainPairSerializer):
5 | @classmethod
6 | def get_token(cls, user):
7 | token = super().get_token(user)
8 |
9 | # Add custom claims
10 | # token["name"] = f"{user.first_name} {user.last_name}".strip()
11 |
12 | return token
13 |
--------------------------------------------------------------------------------
/seed/landing/static/landing/images/landing/bg-paper.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/landing/static/landing/images/landing/bg-paper.webp
--------------------------------------------------------------------------------
/seed/landing/static/landing/images/landing/landing-bg.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/landing/static/landing/images/landing/landing-bg.webp
--------------------------------------------------------------------------------
/seed/landing/templates/landing/_password_note.html:
--------------------------------------------------------------------------------
1 | {% load i18n %}
2 |
3 |
{% trans "Note: Passwords must be 8 or more characters, and must contain at least 1 uppercase character, 1 lowercase character, and 1 digit." %}
4 |
--------------------------------------------------------------------------------
/seed/landing/templates/landing/base.html:
--------------------------------------------------------------------------------
1 | {% extends "seed/base.html" %}
2 | {% load compress %}
3 | {% load i18n %}
4 |
5 | {% block css %}
6 | {% compress css file landing %}
7 | {% include "seed/_fonts.html" %}
8 |
9 |
10 | {% endcompress %}
11 | {% endblock %}
12 | {% block title %}
13 | {% trans "SEED Platform™" %}
14 | {% endblock %}
15 |
16 | {% block js %}
17 | {{ block.super }}
18 | {% endblock %}
19 |
20 | {% block body %}
21 | {% block content %}{% endblock %}
22 | {% endblock %}
23 |
--------------------------------------------------------------------------------
/seed/landing/templates/landing/password_reset_email.html:
--------------------------------------------------------------------------------
1 | {% load i18n %}{% autoescape off %}
2 | {% trans "You're receiving this email because you requested a password reset" %}
3 | {% blocktrans %}for your SEED Platform™ user account{% endblocktrans %}.
4 |
5 | {% trans "Please go to the following page and choose a new password:" %}
6 | {% block reset_link %}
7 | {{ protocol }}://{{ domain }}{% url "password_reset_confirm" uidb64=uid token=token %}
8 | {% endblock %}
9 | {% trans "Your username, in case you've forgotten:" %} {{ user.email }}
10 |
11 | {% blocktrans %}The SEED team{% endblocktrans %}
12 |
13 | {% endautoescape %}
14 |
--------------------------------------------------------------------------------
/seed/landing/templates/landing/password_reset_forced_email.html:
--------------------------------------------------------------------------------
1 | {% load i18n %}{% autoescape off %}
2 | {% trans "You're receiving this e-mail because your password was reset" %}
3 | {% blocktrans %}for your SEED Platform™ user account{% endblocktrans %}.
4 |
5 | {% trans "Please go to the following page and choose a new password:" %}
6 | {% block reset_link %}
7 | {{ protocol }}://{{ domain }}{% url "password_reset_confirm" uidb64=uid token=token %}
8 | {% endblock %}
9 | {% trans "Your username, in case you've forgotten:" %} {{ user.email }}
10 |
11 | {% blocktrans %}The SEED team{% endblocktrans %}
12 |
13 | {% endautoescape %}
14 |
--------------------------------------------------------------------------------
/seed/landing/templates/landing/password_reset_subject.txt:
--------------------------------------------------------------------------------
1 | {% autoescape off %}{% load i18n %}{% trans "Password reset on SEED" %}{% endautoescape %}
2 |
--------------------------------------------------------------------------------
/seed/landing/templates/two_factor/_base_focus.html:
--------------------------------------------------------------------------------
1 | {% extends "two_factor/_base.html" %}{% load i18n %}
2 |
3 | {% block content%}
4 |
5 |
6 | {% include "landing/_marketing_bullets.html" %}
7 |
14 |
15 |
16 | {% endblock %}
17 |
--------------------------------------------------------------------------------
/seed/landing/templates/two_factor/_wizard_actions.html:
--------------------------------------------------------------------------------
1 | {% load i18n %}
2 |
3 | {% if cancel_url %}
4 | {% trans "Cancel" %}
6 | {% endif %}
7 |
8 | {% if wizard.steps.prev %}
9 |
12 | {% endif %}
13 |
20 |
21 |
--------------------------------------------------------------------------------
/seed/landing/templates/two_factor/_wizard_forms.html:
--------------------------------------------------------------------------------
1 |
2 | {{ wizard.management_form }}
3 | {{ wizard.form.as_table }}
4 |
5 | {% block js %}
6 |
16 | {% endblock %}
17 |
--------------------------------------------------------------------------------
/seed/landing/templates/two_factor/twilio/sms_message.html:
--------------------------------------------------------------------------------
1 | {% load i18n %}
2 | {% blocktrans trimmed %}
3 | Your OTP token is {{ token }}
4 | {% endblocktrans %}
5 |
--------------------------------------------------------------------------------
/seed/lib/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/geospatial/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/geospatial/data/Multifamily_Properties_-_Assisted.csv.xz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/lib/geospatial/data/Multifamily_Properties_-_Assisted.csv.xz
--------------------------------------------------------------------------------
/seed/lib/geospatial/data/Public_Housing_Developments.csv.xz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/lib/geospatial/data/Public_Housing_Developments.csv.xz
--------------------------------------------------------------------------------
/seed/lib/geospatial/data/cejst-1.0-communities.csv.xz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/lib/geospatial/data/cejst-1.0-communities.csv.xz
--------------------------------------------------------------------------------
/seed/lib/geospatial/data/test-Multifamily_Properties_-_Assisted.csv.xz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/lib/geospatial/data/test-Multifamily_Properties_-_Assisted.csv.xz
--------------------------------------------------------------------------------
/seed/lib/geospatial/data/test-Public_Housing_Developments.csv.xz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/lib/geospatial/data/test-Public_Housing_Developments.csv.xz
--------------------------------------------------------------------------------
/seed/lib/geospatial/data/test-cejst-1.0-communities.csv.xz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/lib/geospatial/data/test-cejst-1.0-communities.csv.xz
--------------------------------------------------------------------------------
/seed/lib/mappings/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/mappings/data/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/mcm/.gitignore:
--------------------------------------------------------------------------------
1 | *.py[cod]
2 | *.swp
3 | *.swo
4 |
5 | # C extensions
6 | *.so
7 |
8 | # Packages
9 | *.egg
10 | *.egg-info
11 | dist
12 | build
13 | eggs
14 | parts
15 | bin
16 | var
17 | sdist
18 | develop-eggs
19 | .installed.cfg
20 | lib
21 | lib64
22 | __pycache__
23 |
24 | # Installer logs
25 | pip-log.txt
26 |
27 | # Unit test / coverage reports
28 | .coverage
29 | .tox
30 |
31 | # Translations
32 | *.mo
33 |
34 | # Mr Developer
35 | .mr.developer.cfg
36 | .project
37 | .pydevproject
38 |
--------------------------------------------------------------------------------
/seed/lib/mcm/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | VERSION = (0, 0, 1)
7 |
8 | """
9 | This is the Map, Clean, Merge application for SEED
10 |
11 | Its purpose is to create a modular, flexible, and parallelizable
12 | way to parse tabular data and group data into appropriate ontologies,
13 | leaving everything else in an ontology by itself.
14 |
15 | """
16 |
--------------------------------------------------------------------------------
/seed/lib/mcm/data/SEED/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/mcm/data/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/mcm/tests/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/mcm/tests/test_data/test_csv.csv:
--------------------------------------------------------------------------------
1 | column 1,column 2,column 3,column 4,column 5,column 6
2 | 1,2,3,4,5,6
3 | 7,8,9,10,11,12
4 |
--------------------------------------------------------------------------------
/seed/lib/mcm/tests/test_data/test_espm.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/lib/mcm/tests/test_data/test_espm.xls
--------------------------------------------------------------------------------
/seed/lib/mcm/tests/test_data/test_espm.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/lib/mcm/tests/test_data/test_espm.xlsx
--------------------------------------------------------------------------------
/seed/lib/mcm/tests/test_data/test_espm_blank_rows.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/lib/mcm/tests/test_data/test_espm_blank_rows.xls
--------------------------------------------------------------------------------
/seed/lib/mcm/tests/test_data/test_espm_date_format.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/lib/mcm/tests/test_data/test_espm_date_format.xlsx
--------------------------------------------------------------------------------
/seed/lib/mcm/tests/test_data/test_missing_headers.csv:
--------------------------------------------------------------------------------
1 | column 1,column 2,,column 4,,column 6
2 | 1,2,3,4,5,6
3 | 7,8,9,10,11,12
4 |
--------------------------------------------------------------------------------
/seed/lib/merging/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/merging/tests/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/progress_data/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/progress_data/tests/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/superperms/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/exceptions.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 |
7 | class TooManyNestedOrgsError(Exception):
8 | """We only support one level of nesting."""
9 |
10 |
11 | class UserNotInOrganizationError(Exception):
12 | """Raised when a user does not exist, or does not belong to an org."""
13 |
14 |
15 | class InsufficientPermissionError(Exception):
16 | """Raised when a user attempts an action for which they're not allowed."""
17 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0005_merge_20180110_1156.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.6 on 2018-01-10 19:56
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0004_auto_20171120_1158"),
9 | ("orgs", "0004_auto_20180106_2123"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0006_organization_display_significant_figures.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.6 on 2018-01-23 22:15
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0005_merge_20180110_1156"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="organization",
14 | name="display_significant_figures",
15 | field=models.PositiveSmallIntegerField(default=2),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0008_organization_mapquest_api_key.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.16 on 2019-01-07 21:46
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0007_auto_20181107_0904"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="organization",
14 | name="mapquest_api_key",
15 | field=models.CharField(blank=True, default="", max_length=128),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0012_auto_20200327_1213.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.10 on 2020-03-27 19:13
2 |
3 | from django.db import migrations, models
4 |
5 | import seed.lib.superperms.orgs.models
6 |
7 |
8 | class Migration(migrations.Migration):
9 | dependencies = [
10 | ("orgs", "0011_auto_20190714_2159"),
11 | ]
12 |
13 | operations = [
14 | migrations.AlterField(
15 | model_name="organization",
16 | name="display_meter_units",
17 | field=models.JSONField(default=seed.lib.superperms.orgs.models._get_default_meter_units),
18 | ),
19 | ]
20 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0013_organization_comstock_enabled.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.10 on 2020-06-03 23:24
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0012_auto_20200327_1213"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="organization",
14 | name="comstock_enabled",
15 | field=models.BooleanField(default=False),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0014_organization_geocoding_enabled.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2020-11-11 20:26
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0013_organization_comstock_enabled"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="organization",
14 | name="geocoding_enabled",
15 | field=models.BooleanField(default=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0015_organization_property_display_field.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2021-01-26 19:05
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0014_organization_geocoding_enabled"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="organization",
14 | name="property_display_field",
15 | field=models.CharField(default="address_line_1", max_length=32),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0016_organization_taxlot_display_field.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2021-01-28 20:14
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0015_organization_property_display_field"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="organization",
14 | name="taxlot_display_field",
15 | field=models.CharField(default="address_line_1", max_length=32),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0019_organization_better_analysis_api_key.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.24 on 2021-07-29 20:31
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0018_update_organization_display_meter_units"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="organization",
14 | name="better_analysis_api_key",
15 | field=models.CharField(blank=True, default="", max_length=128),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0020_rename_display_significant_figures_organization_display_decimal_places.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.7 on 2021-10-27 20:50
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0019_organization_better_analysis_api_key"),
9 | ]
10 |
11 | operations = [
12 | migrations.RenameField(
13 | model_name="organization",
14 | old_name="display_significant_figures",
15 | new_name="display_decimal_places",
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0024_salesforce_configurations.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.16 on 2023-01-17 21:53
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0023_auto_20220721_1851"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="organization",
14 | name="salesforce_enabled",
15 | field=models.BooleanField(default=False),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0026_organizationuser_unique_user_for_organization.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.18 on 2023-05-08 20:24
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0025_remove_duplicate_users_for_org"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddConstraint(
13 | model_name="organizationuser",
14 | constraint=models.UniqueConstraint(fields=("user", "organization"), name="unique_user_for_organization"),
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0033_organization_public_geojson_enabled.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-05-13 16:34
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0032_organization_public_feed"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="organization",
14 | name="public_geojson_enabled",
15 | field=models.BooleanField(default=False),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0035_organization_require_2fa.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-05-29 19:30
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0034_org_audit_template_fields"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="organization",
14 | name="require_2fa",
15 | field=models.BooleanField(default=False),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0036_organization_display_meter_water_units.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-07-17 16:56
2 |
3 | from django.db import migrations, models
4 |
5 | import seed.lib.superperms.orgs.models
6 |
7 |
8 | class Migration(migrations.Migration):
9 | dependencies = [
10 | ("orgs", "0035_organization_require_2fa"),
11 | ]
12 |
13 | operations = [
14 | migrations.AddField(
15 | model_name="organization",
16 | name="display_meter_water_units",
17 | field=models.JSONField(default=seed.lib.superperms.orgs.models._get_default_meter_water_units),
18 | ),
19 | ]
20 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/0042_organizationuser_settings.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2025-03-31 17:51
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0041_add_at_tracking_fields"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="organizationuser",
14 | name="settings",
15 | field=models.JSONField(blank=True, default=dict, null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/lib/superperms/orgs/migrations/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/superperms/tests/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/lib/xml_mapping/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/management/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/management/commands/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/management/commands/add_eeej_datasources.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from django.core.management.base import BaseCommand
7 |
8 | from seed.lib.geospatial.eeej import add_eeej_data
9 |
10 |
11 | class Command(BaseCommand):
12 | help = "Add EEEJ Data: HUD and CEJST"
13 |
14 | def handle(self, *args, **options):
15 | add_eeej_data()
16 | print("done!")
17 |
--------------------------------------------------------------------------------
/seed/migrations/0002_buildingsnapshot_duplicate.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations, models
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("seed", "0001_initial"),
7 | ]
8 |
9 | operations = [
10 | migrations.AddField(
11 | model_name="buildingsnapshot",
12 | name="duplicate",
13 | field=models.ForeignKey(on_delete=models.deletion.CASCADE, related_name="+", blank=True, to="seed.BuildingSnapshot", null=True),
14 | preserve_default=True,
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/migrations/0004_noncanonicalprojectbuildings.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations, models
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("seed", "0003_auto_20151105_1539"),
7 | ]
8 |
9 | operations = [
10 | migrations.CreateModel(
11 | name="NonCanonicalProjectBuildings",
12 | fields=[
13 | (
14 | "projectbuilding",
15 | models.ForeignKey(on_delete=models.deletion.CASCADE, primary_key=True, serialize=False, to="seed.ProjectBuilding"),
16 | ),
17 | ],
18 | options={},
19 | bases=(models.Model,),
20 | ),
21 | ]
22 |
--------------------------------------------------------------------------------
/seed/migrations/0006_canonicalbuilding_labels.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations, models
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("seed", "0005_auto_20151201_1510"),
7 | ]
8 |
9 | operations = [
10 | migrations.AddField(
11 | model_name="canonicalbuilding",
12 | name="labels",
13 | field=models.ManyToManyField(to="seed.StatusLabel"),
14 | preserve_default=True,
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/migrations/0008_remove_projectbuilding_status_label.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("seed", "0007_auto_20151201_1515"),
7 | ]
8 |
9 | operations = [
10 | migrations.RemoveField(
11 | model_name="projectbuilding",
12 | name="status_label",
13 | ),
14 | ]
15 |
--------------------------------------------------------------------------------
/seed/migrations/0009_merge.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("seed", "0008_remove_projectbuilding_status_label"),
7 | ("seed", "0004_auto_20151201_1404"),
8 | ]
9 |
10 | operations = []
11 |
--------------------------------------------------------------------------------
/seed/migrations/0013_auto_20160225_1213.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations, models
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("seed", "0012_auto_20151222_1031"),
7 | ]
8 |
9 | operations = [
10 | migrations.AlterField(
11 | model_name="attributeoption",
12 | name="value",
13 | field=models.TextField(),
14 | preserve_default=True,
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/migrations/0014_auto_20160308_1106.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("seed", "0013_auto_20160225_1213"),
7 | ]
8 |
9 | operations = [
10 | migrations.RemoveField(
11 | model_name="schema",
12 | name="columns",
13 | ),
14 | migrations.RemoveField(
15 | model_name="schema",
16 | name="organization",
17 | ),
18 | migrations.DeleteModel(
19 | name="Schema",
20 | ),
21 | ]
22 |
--------------------------------------------------------------------------------
/seed/migrations/0015_merge.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations
2 |
3 |
4 | class Migration(migrations.Migration):
5 | dependencies = [
6 | ("seed", "0013_auto_20160218_1335"),
7 | ("seed", "0014_auto_20160308_1106"),
8 | ]
9 |
10 | operations = []
11 |
--------------------------------------------------------------------------------
/seed/migrations/0017_auto_20160602_1436.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-06-02 21:36
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0016_auto_20160411_1139"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="buildingsnapshot",
14 | name="recent_sale_date",
15 | field=models.DateTimeField(blank=True, db_index=True, null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0017_column_extra_data_source.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-06-14 20:27
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0016_auto_20160411_1139"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="column",
14 | name="extra_data_source",
15 | field=models.CharField(blank=True, choices=[(b"P", b"Property"), (b"T", b"Taxlot")], db_index=True, max_length=1, null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0018_auto_20160609_0841.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-06-09 15:41
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0017_auto_20160602_1436"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="buildingsnapshot",
14 | name="recent_sale_date",
15 | field=models.DateTimeField(blank=True, null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0018_auto_20160614_1330.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-06-14 20:30
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0017_column_extra_data_source"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterUniqueTogether(
13 | name="column",
14 | unique_together={("organization", "column_name", "is_extra_data", "extra_data_source")},
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/migrations/0019_merge.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-06-16 16:04
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0018_auto_20160614_1330"),
9 | ("seed", "0018_auto_20160609_0841"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0021_auto_20160818_1016.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-08-18 17:16
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0020_auto_20160725_1033"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="propertyview",
14 | name="labels",
15 | field=models.ManyToManyField(to="seed.StatusLabel"),
16 | ),
17 | migrations.AddField(
18 | model_name="taxlotview",
19 | name="labels",
20 | field=models.ManyToManyField(to="seed.StatusLabel"),
21 | ),
22 | ]
23 |
--------------------------------------------------------------------------------
/seed/migrations/0022_merge.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-08-23 03:48
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0021_auto_20160818_1016"),
9 | ("seed", "0021_propertyauditlog_taxlotauditlog"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0022_propertystate_data_state.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-08-16 20:12
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0021_auto_20160727_1347"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="propertystate",
14 | name="data_state",
15 | field=models.IntegerField(choices=[(0, "Unknown"), (1, "Post Import"), (2, "Post Mapping"), (3, "Post Matching")], default=0),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0024_merge.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-08-23 17:53
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0021_auto_20160818_1016"),
9 | ("seed", "0023_auto_20160817_0901"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0026_auto_20160822_2109.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-08-23 04:09
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0025_auto_20160822_2108"),
9 | ]
10 |
11 | operations = [
12 | migrations.RenameField(
13 | model_name="taxlotauditlog",
14 | old_name="child",
15 | new_name="state",
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0029_merge.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-08-29 20:42
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0024_merge"),
9 | ("seed", "0028_auto_20160824_1642"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0030_column_table_name.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-08-31 15:52
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0029_merge"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="column",
14 | name="table_name",
15 | field=models.CharField(blank=True, db_index=True, max_length=512),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0033_merge.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-09-13 23:04
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0032_migrate_label_data"),
9 | ("seed", "0031_auto_20160913_0001"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0034_merge.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-09-20 17:42
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0033_merge"),
9 | ("seed", "0032_auto_20160916_1212"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0042_auto_20161015_0611.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-10-15 13:11
2 |
3 | import django.db.models.deletion
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("seed", "0041_auto_20161014_1908"),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterField(
14 | model_name="taxlotauditlog",
15 | name="state",
16 | field=models.ForeignKey(
17 | on_delete=django.db.models.deletion.CASCADE, related_name="taxlotauditlog__state", to="seed.TaxLotState"
18 | ),
19 | ),
20 | ]
21 |
--------------------------------------------------------------------------------
/seed/migrations/0044_propertystate_property_type.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2016-12-09 17:47
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0043_auto_20161025_1033"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="propertystate",
14 | name="property_type",
15 | field=models.TextField(blank=True, null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0045_auto_20170112_1233.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-01-12 20:33
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0044_propertystate_property_type"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="propertystate",
14 | name="lot_number",
15 | field=models.TextField(blank=True, null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0053_auto_20170320_1159.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-03-20 18:59
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0052_auto_20170307_0955"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterUniqueTogether(
13 | name="column",
14 | unique_together=set(),
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/migrations/0057_remove_column_extra_data_source.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-03-21 19:32
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0056_cleanup_columns"),
9 | ]
10 |
11 | operations = [
12 | migrations.RemoveField(
13 | model_name="column",
14 | name="extra_data_source",
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/migrations/0060_column_import_file.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-04-09 03:02
2 |
3 | import django.db.models.deletion
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("data_importer", "0009_importfile_uploaded_filename"),
10 | ("seed", "0059_auto_20170407_1516"),
11 | ]
12 |
13 | operations = [
14 | migrations.AddField(
15 | model_name="column",
16 | name="import_file",
17 | field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to="data_importer.ImportFile"),
18 | ),
19 | ]
20 |
--------------------------------------------------------------------------------
/seed/migrations/0062_auto_20170510_1525.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-05-10 22:25
2 |
3 | import django.db.models.deletion
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("seed", "0061_dataqualitycheck_rule"),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterField(
14 | model_name="rule",
15 | name="status_label",
16 | field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.DO_NOTHING, to="seed.StatusLabel"),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/seed/migrations/0063_rule_text_match.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-05-11 22:00
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0062_auto_20170510_1525"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="rule",
14 | name="text_match",
15 | field=models.CharField(max_length=200, null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0064_auto_20170516_1155.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-05-16 18:55
2 |
3 | from django.db import migrations
4 |
5 | # remove the cleansing_rules from the database
6 |
7 | DROP_ACCOUNT_TABLES = """\
8 | DROP TABLE IF EXISTS cleansing_rules CASCADE;
9 | """
10 |
11 |
12 | class Migration(migrations.Migration):
13 | dependencies = [
14 | ("seed", "0063_rule_text_match"),
15 | ]
16 |
17 | operations = [
18 | migrations.RunSQL(DROP_ACCOUNT_TABLES),
19 | ]
20 |
--------------------------------------------------------------------------------
/seed/migrations/0065_auto_20170518_0854.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-05-18 15:54
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0064_auto_20170516_1155"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="dataqualitycheck",
14 | name="name",
15 | field=models.CharField(default=b"Default Data Quality Check", max_length=255),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0066_auto_20170522_1252.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-05-22 19:52
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0065_auto_20170518_0854"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="rule",
14 | name="severity",
15 | field=models.IntegerField(choices=[(0, b"error"), (1, b"warning")], default=0),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0070_merge.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.13 on 2017-06-21 21:38
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0068_green_assessments"),
9 | ("seed", "0069_auto_20170614_1430"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0072_auto_20170918_0850.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.13 on 2017-09-18 15:50
2 |
3 | import django.db.models.deletion
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("seed", "0071_auto_20170721_1203"),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterField(
14 | model_name="noncanonicalprojectbuildings",
15 | name="projectbuilding",
16 | field=models.OneToOneField(
17 | on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to="seed.ProjectBuilding"
18 | ),
19 | ),
20 | ]
21 |
--------------------------------------------------------------------------------
/seed/migrations/0073_column_units_pint.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.13 on 2017-09-08 23:28
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0072_auto_20170908_1521"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="column",
14 | name="units_pint",
15 | field=models.CharField(blank=True, max_length=64, null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0074_merge.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.13 on 2017-09-20 00:27
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0073_column_units_pint"),
9 | ("seed", "0072_auto_20170918_0850"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0079_propertystate_ubid.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.6 on 2017-12-15 15:12
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0078_auto_20171214_0846"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="propertystate",
14 | name="ubid",
15 | field=models.CharField(blank=True, max_length=255, null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0080_column_shared_field_type.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.6 on 2018-01-06 02:48
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0079_propertystate_ubid"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="column",
14 | name="shared_field_type",
15 | field=models.IntegerField(choices=[(0, b"None"), (1, b"Public")], default=0),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0081_merge_20180109_0747.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.6 on 2018-01-09 15:47
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0080_column_shared_field_type"),
9 | ("seed", "0080_auto_20180107_0808"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0087_merge_20180123_1033.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.6 on 2018-01-23 18:33
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0082_auto_20180119_1021"),
9 | ("seed", "0086_auto_20180111_1531"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0088_auto_20180423_0933.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.6 on 2018-04-23 16:33
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0087_merge_20180123_1033"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="propertystate",
14 | name="latitude",
15 | field=models.FloatField(blank=True, null=True),
16 | ),
17 | migrations.AddField(
18 | model_name="propertystate",
19 | name="longitude",
20 | field=models.FloatField(blank=True, null=True),
21 | ),
22 | ]
23 |
--------------------------------------------------------------------------------
/seed/migrations/0094_column_merge_protection.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.6 on 2018-08-24 17:03
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0093_auto_20180817_1112"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="column",
14 | name="merge_protection",
15 | field=models.IntegerField(choices=[(0, b"Favor New"), (1, b"Favor Existing")], default=0),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0095_auto_20180920_1819.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.6 on 2018-09-21 01:19
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0094_column_merge_protection"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterUniqueTogether(
13 | name="propertymeasure",
14 | unique_together={("property_measure_name", "property_state", "measure", "application_scale", "implementation_status")},
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/migrations/0099_auto_20190214_1259.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.18 on 2019-02-14 20:59
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0098_auto_20181121_1302"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="buildingfile",
14 | name="file_type",
15 | field=models.IntegerField(choices=[(0, "Unknown"), (1, "BuildingSync"), (3, "HPXML")], default=0),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0106_meter_scenario_id.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.21 on 2019-07-09 17:23
2 |
3 | import django.db.models.deletion
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("seed", "0105_auto_20190702_1400"),
10 | ]
11 |
12 | operations = [
13 | migrations.AddField(
14 | model_name="meter",
15 | name="scenario_id",
16 | field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to="seed.Scenario"),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/seed/migrations/0107_auto_20190709_2058.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.21 on 2019-07-10 03:58
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0106_meter_scenario_id"),
9 | ]
10 |
11 | operations = [
12 | migrations.RenameField(
13 | model_name="meter",
14 | old_name="scenario_id",
15 | new_name="scenario",
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0108_merge_20190716_1038.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.21 on 2019-07-16 17:38
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0105_auto_20190613_1251"),
9 | ("seed", "0107_auto_20190709_2058"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0114_auto_20191211_0958.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.23 on 2019-12-11 17:58
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0113_column_geocoding_order"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="rule",
14 | name="severity",
15 | field=models.IntegerField(choices=[(0, "error"), (1, "warning"), (2, "valid")], default=0),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0128_auto_20200810_1731.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2020-08-10 17:31
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("orgs", "0013_organization_comstock_enabled"),
9 | ("seed", "0127_auto_20200605_1125"),
10 | ]
11 |
12 | operations = [
13 | migrations.RenameModel(
14 | old_name="ColumnMappingPreset",
15 | new_name="ColumnMappingProfile",
16 | ),
17 | migrations.RenameField(
18 | model_name="columnmappingprofile",
19 | old_name="preset_type",
20 | new_name="profile_type",
21 | ),
22 | ]
23 |
--------------------------------------------------------------------------------
/seed/migrations/0128_auto_20210119_1238.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2021-01-19 20:38
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0127_auto_20200605_1125"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="propertystate",
14 | name="jurisdiction_property_id",
15 | field=models.TextField(blank=True, null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0130_auto_20200924_1337.py:
--------------------------------------------------------------------------------
1 | # Manually generated on 2020-09-24 13:10
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0129_auto_20200828_0610"),
9 | ]
10 |
11 | operations = [
12 | migrations.RunSQL('ALTER TABLE "seed_taxlotstate" ALTER COLUMN "extra_data" TYPE jsonb;'),
13 | migrations.RunSQL('ALTER TABLE "seed_propertystate" ALTER COLUMN "extra_data" TYPE jsonb;'),
14 | ]
15 |
--------------------------------------------------------------------------------
/seed/migrations/0133_auto_20201216_2035.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2020-12-16 20:35
2 |
3 | import django.db.models.deletion
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("seed", "0132_auto_20201211_1949_squashed_0134_auto_20201211_2053"),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterField(
14 | model_name="analysisinputfile",
15 | name="analysis",
16 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="input_files", to="seed.Analysis"),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/seed/migrations/0134_auto_20201217_2236.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2020-12-17 22:36
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0133_auto_20201216_2035"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="analysismessage",
14 | name="type",
15 | field=models.IntegerField(choices=[(1, "default"), (10, "debug"), (20, "info"), (30, "warning"), (40, "error")]),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0135_auto_20210112_2306.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2021-01-12 23:06
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0134_auto_20201217_2236"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="analysisoutputfile",
14 | name="content_type",
15 | field=models.IntegerField(choices=[(1, "BuildingSync"), (100, "PNG")]),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0136_merge_20210120_0944.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2021-01-20 17:44
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0135_auto_20210112_2306"),
9 | ("seed", "0128_auto_20210119_1238"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0137_statuslabel_show_in_list.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2021-04-14 21:09
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0136_merge_20210120_0944"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="statuslabel",
14 | name="show_in_list",
15 | field=models.BooleanField(default=False),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0139_auto_20210524_1016.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.20 on 2021-05-24 17:16
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0138_auto_20210512_0024"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="propertymeasure",
14 | name="recommended",
15 | field=models.BooleanField(default=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0140_scenario_annual_peak_electricity_reduction.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.20 on 2021-06-02 22:28
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0139_auto_20210524_1016"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="scenario",
14 | name="annual_peak_electricity_reduction",
15 | field=models.FloatField(null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0141_propertymeasure_useful_life.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.20 on 2021-06-03 18:10
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0140_scenario_annual_peak_electricity_reduction"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="propertymeasure",
14 | name="useful_life",
15 | field=models.FloatField(null=True),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0142_columnlistprofile_derived_columns.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.20 on 2021-06-03 19:14
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0141_propertymeasure_useful_life"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="columnlistprofile",
14 | name="derived_columns",
15 | field=models.ManyToManyField(related_name="column_list_profiles", to="seed.DerivedColumn"),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0142_merge_20210611_0610.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2021-06-11 13:10
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0141_auto_20210611_0539"),
9 | ("seed", "0141_propertymeasure_useful_life"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0144_merge_20210615_1322.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2021-06-15 20:22
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0143_auto_20210614_2058"),
9 | ("seed", "0142_merge_20210611_0610"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0145_merge_20210621_0716.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.13 on 2021-06-21 14:16
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0140_postofficeemail_postofficeemailtemplate"),
9 | ("seed", "0144_merge_20210615_1322"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0145_rule_for_derived_column.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.20 on 2021-06-15 21:30
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0144_merge_20210615_1322"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="rule",
14 | name="for_derived_column",
15 | field=models.BooleanField(default=False),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0146_merge_20210622_2054.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.24 on 2021-06-22 20:54
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0145_rule_for_derived_column"),
9 | ("seed", "0145_merge_20210621_0716"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0148_auto_20210712_2134.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.0.14 on 2021-07-12 21:34
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0147_rename_bsync_col_mapping_preset"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterModelOptions(
13 | name="compliance",
14 | options={"ordering": ("-modified", "-created")},
15 | ),
16 | migrations.AlterModelOptions(
17 | name="project",
18 | options={"ordering": ("-modified", "-created")},
19 | ),
20 | ]
21 |
--------------------------------------------------------------------------------
/seed/migrations/0149_auto_20210922_1740.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.1.13 on 2021-09-22 17:40
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0148_auto_20210712_2134"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="analysis",
14 | name="service",
15 | field=models.IntegerField(choices=[(1, "BSyncr"), (2, "BETTER"), (3, "EUI")]),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0151_seeduser_20210923_1337.py:
--------------------------------------------------------------------------------
1 | # Manually created on 2021-09-23
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0150_auto_20210922_1909"),
9 | ]
10 |
11 | operations = [
12 | migrations.RunSQL('ALTER TABLE "landing_seeduser" ALTER COLUMN "default_custom_columns" TYPE jsonb;'),
13 | migrations.RunSQL('ALTER TABLE "landing_seeduser" ALTER COLUMN "default_building_detail_custom_columns" TYPE jsonb;'),
14 | ]
15 |
--------------------------------------------------------------------------------
/seed/migrations/0153_auto_20211012_2202.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.0.14 on 2021-10-12 22:02
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0152_seed_renameeuicol_20211004_1337"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="analysis",
14 | name="service",
15 | field=models.IntegerField(choices=[(1, "BSyncr"), (2, "BETTER"), (3, "EUI"), (4, "CO2")]),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0154_analysis_created_at.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.0.14 on 2021-10-18 18:42
2 |
3 | import django.utils.timezone
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("seed", "0153_auto_20211012_2202"),
10 | ]
11 |
12 | operations = [
13 | migrations.AddField(
14 | model_name="analysis",
15 | name="created_at",
16 | field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
17 | preserve_default=False,
18 | ),
19 | ]
20 |
--------------------------------------------------------------------------------
/seed/migrations/0160_merge_0159_auto_20220310_1648_0159_inventorydocument.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.12 on 2022-04-11 03:11
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0159_auto_20220310_1648"),
9 | ("seed", "0159_inventorydocument"),
10 | ]
11 |
12 | operations = []
13 |
--------------------------------------------------------------------------------
/seed/migrations/0161_alter_inventorydocument_file_type.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.12 on 2022-04-11 04:01
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0160_merge_0159_auto_20220310_1648_0159_inventorydocument"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="inventorydocument",
14 | name="file_type",
15 | field=models.IntegerField(choices=[(0, "Unknown"), (1, "PDF"), (2, "OSM"), (3, "IDF"), (4, "DXF")], default=0),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0168_datalogger_identifier.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.13 on 2022-06-09 21:16
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0167_auto_20220608_0759"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="datalogger",
14 | name="identifier",
15 | field=models.CharField(default="", max_length=255),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0194_alter_taxlotview_taxlot.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.18 on 2023-04-27 15:55
2 |
3 | import django.db.models.deletion
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("seed", "0193_remove_null_taxlot_views"),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterField(
14 | model_name="taxlotview",
15 | name="taxlot",
16 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="views", to="seed.taxlot"),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/seed/migrations/0195_sf_delete_label_checkbox.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.18 on 2023-05-04 15:59
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0194_alter_taxlotview_taxlot"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="salesforceconfig",
14 | name="delete_label_after_sync",
15 | field=models.BooleanField(default=False),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0198_auto_20230703_0828.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.19 on 2023-07-03 14:28
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0197_pm_source_type"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="cycle",
14 | name="end",
15 | field=models.DateField(),
16 | ),
17 | migrations.AlterField(
18 | model_name="cycle",
19 | name="start",
20 | field=models.DateField(),
21 | ),
22 | ]
23 |
--------------------------------------------------------------------------------
/seed/migrations/0200_rehash.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-01-19 21:18
2 |
3 | from django.db import migrations
4 |
5 | from seed.utils.migrations import rehash
6 |
7 |
8 | class Migration(migrations.Migration):
9 | dependencies = [
10 | ("seed", "0199_rename_ulid_taxlotstate_ubid"),
11 | ]
12 |
13 | operations = [
14 | migrations.RunPython(lambda apps, _schema_editor: rehash(apps)),
15 | ]
16 |
--------------------------------------------------------------------------------
/seed/migrations/0208_alter_scenario_event.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.20 on 2023-09-27 18:10
2 |
3 | import django.db.models.deletion
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("seed", "0207_uniformat"),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterField(
14 | model_name="scenario",
15 | name="event",
16 | field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="scenarios", to="seed.atevent"),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/seed/migrations/0211_auto_20240109_1348.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.23 on 2024-01-09 21:48
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0210_natural_sort"),
9 | ]
10 |
11 | operations = [
12 | migrations.RemoveConstraint(
13 | model_name="derivedcolumn",
14 | name="unique_name_for_organization",
15 | ),
16 | migrations.AddConstraint(
17 | model_name="derivedcolumn",
18 | constraint=models.UniqueConstraint(fields=("organization", "name", "inventory_type"), name="unique_name_for_organization"),
19 | ),
20 | ]
21 |
--------------------------------------------------------------------------------
/seed/migrations/0214_delete_filtergroup_labels.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.18 on 2023-12-19 16:20
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0213_move_filtergroup_labels"),
9 | ]
10 |
11 | operations = [
12 | migrations.RemoveField(
13 | model_name="filtergroup",
14 | name="label_logic",
15 | ),
16 | migrations.RemoveField(
17 | model_name="filtergroup",
18 | name="labels",
19 | ),
20 | ]
21 |
--------------------------------------------------------------------------------
/seed/migrations/0216_alter_sensor_unique_together.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.23 on 2024-03-11 23:50
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0215_accountability_hierarchy"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterUniqueTogether(
13 | name="sensor",
14 | unique_together={("data_logger", "display_name"), ("data_logger", "column_name")},
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/migrations/0217_goal_commitment_sqft.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-05-07 19:38
2 |
3 | import django.core.validators
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("seed", "0216_alter_sensor_unique_together"),
10 | ]
11 |
12 | operations = [
13 | migrations.AddField(
14 | model_name="goal",
15 | name="commitment_sqft",
16 | field=models.IntegerField(blank=True, null=True, validators=[django.core.validators.MinValueValidator(0)]),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/seed/migrations/0219_auto_20240604_1605.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-06-04 23:05
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0218_elements"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="column",
14 | name="is_option_for_reports_x_axis",
15 | field=models.BooleanField(default=False),
16 | ),
17 | migrations.AddField(
18 | model_name="column",
19 | name="is_option_for_reports_y_axis",
20 | field=models.BooleanField(default=False),
21 | ),
22 | ]
23 |
--------------------------------------------------------------------------------
/seed/migrations/0220_alter_analysis_service.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-07-02 18:57
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0219_auto_20240604_1605"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterField(
13 | model_name="analysis",
14 | name="service",
15 | field=models.IntegerField(
16 | choices=[(1, "BSyncr"), (2, "BETTER"), (3, "EUI"), (4, "CO2"), (5, "EEEJ"), (6, "Element Statistics")]
17 | ),
18 | ),
19 | ]
20 |
--------------------------------------------------------------------------------
/seed/migrations/0225_column_is_excluded_from_hash.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-06-03 18:23
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0224_alter_meter_type"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="column",
14 | name="is_excluded_from_hash",
15 | field=models.BooleanField(default=False),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0226_rehash.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.9.5 on 2017-01-19 21:18
2 |
3 | from django.db import migrations
4 |
5 | from seed.utils.migrations import rehash
6 |
7 |
8 | class Migration(migrations.Migration):
9 | dependencies = [
10 | ("seed", "0225_column_is_excluded_from_hash"),
11 | ]
12 |
13 | operations = [
14 | migrations.RunPython(lambda apps, _schema_editor: rehash(apps)),
15 | ]
16 |
--------------------------------------------------------------------------------
/seed/migrations/0227_remove_oauth.py:
--------------------------------------------------------------------------------
1 | from django.db import migrations
2 |
3 | # remove the oauth2 tables from the database
4 |
5 | DROP_OAUTH_TABLES = """
6 | DROP TABLE IF EXISTS oauth2_jwt_provider_publickey CASCADE;
7 | DROP TABLE IF EXISTS oauth2_provider_accesstoken CASCADE;
8 | DROP TABLE IF EXISTS oauth2_provider_application CASCADE;
9 | DROP TABLE IF EXISTS oauth2_provider_grant CASCADE;
10 | DROP TABLE IF EXISTS oauth2_provider_refreshtoken CASCADE;
11 | """
12 |
13 |
14 | class Migration(migrations.Migration):
15 | dependencies = [
16 | ("seed", "0226_rehash"),
17 | ]
18 |
19 | operations = [
20 | migrations.RunSQL(DROP_OAUTH_TABLES),
21 | ]
22 |
--------------------------------------------------------------------------------
/seed/migrations/0230_alter_event_cycle.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-09-06 17:02
2 |
3 | import django.db.models.deletion
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("seed", "0229_add_extra_data_to_states"),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterField(
14 | model_name="event",
15 | name="cycle",
16 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="seed.cycle"),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/seed/migrations/0231_column_is_updating.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-08-20 22:53
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0230_alter_event_cycle"),
9 | ]
10 |
11 | operations = [
12 | migrations.AddField(
13 | model_name="column",
14 | name="is_updating",
15 | field=models.BooleanField(default=False),
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/seed/migrations/0233_alter_goal_options.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-11-01 21:40
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0232_reportconfiguration"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterModelOptions(
13 | name="goal",
14 | options={"ordering": ["name"]},
15 | ),
16 | ]
17 |
--------------------------------------------------------------------------------
/seed/migrations/0238_meter_systems.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-10-10 19:18
2 |
3 | import django.db.models.deletion
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 | dependencies = [
9 | ("seed", "0237_auto_20241008_1510"),
10 | ]
11 |
12 | operations = [
13 | migrations.AddField(
14 | model_name="meter",
15 | name="system",
16 | field=models.ForeignKey(
17 | blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name="meters", to="seed.system"
18 | ),
19 | ),
20 | ]
21 |
--------------------------------------------------------------------------------
/seed/migrations/0239_auto_20241030_1434.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 3.2.25 on 2024-10-30 21:34
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("seed", "0238_meter_systems"),
9 | ]
10 |
11 | operations = [
12 | migrations.AlterModelOptions(
13 | name="service",
14 | options={"ordering": ["name"]},
15 | ),
16 | migrations.AlterModelOptions(
17 | name="system",
18 | options={"ordering": ["name"]},
19 | ),
20 | ]
21 |
--------------------------------------------------------------------------------
/seed/migrations/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/models/auditlog.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | AUDIT_IMPORT = 0
7 | AUDIT_USER_EDIT = 1
8 | AUDIT_USER_CREATE = 2
9 |
10 | DATA_UPDATE_TYPE = ((AUDIT_IMPORT, "ImportFile"), (AUDIT_USER_EDIT, "UserEdit"), (AUDIT_USER_CREATE, "UserCreate"))
11 |
--------------------------------------------------------------------------------
/seed/public/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/public/migrations/0003_auto_20180106_2123.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 1.11.6 on 2018-01-07 05:23
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 | dependencies = [
8 | ("public", "0002_auto_20160411_1139"),
9 | ]
10 |
11 | operations = [
12 | migrations.RemoveField(
13 | model_name="sharedbuildingfield",
14 | name="field",
15 | ),
16 | migrations.RemoveField(
17 | model_name="sharedbuildingfield",
18 | name="org",
19 | ),
20 | migrations.DeleteModel(
21 | name="SharedBuildingField",
22 | ),
23 | ]
24 |
--------------------------------------------------------------------------------
/seed/public/migrations/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/serializers/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/serializers/access_level_instances.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import AccessLevelInstance
9 |
10 |
11 | class AccessLevelInstanceSerializer(serializers.ModelSerializer):
12 | class Meta:
13 | model = AccessLevelInstance
14 | fields = "__all__"
15 |
--------------------------------------------------------------------------------
/seed/serializers/analyses.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import Analysis
9 | from seed.serializers.utils import CustomChoicesField
10 |
11 |
12 | class AnalysisSerializer(serializers.ModelSerializer):
13 | service = CustomChoicesField(Analysis.SERVICE_TYPES)
14 | status = serializers.CharField(source="get_status_display")
15 |
16 | class Meta:
17 | model = Analysis
18 | fields = "__all__"
19 |
--------------------------------------------------------------------------------
/seed/serializers/analysis_input_files.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import AnalysisInputFile
9 |
10 |
11 | class AnalysisInputFileSerializer(serializers.ModelSerializer):
12 | content_type = serializers.CharField(source="get_content_type_display")
13 |
14 | class Meta:
15 | model = AnalysisInputFile
16 | fields = "__all__"
17 |
--------------------------------------------------------------------------------
/seed/serializers/analysis_messages.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import AnalysisMessage
9 |
10 |
11 | class AnalysisMessageSerializer(serializers.ModelSerializer):
12 | type = serializers.CharField(source="get_type_display")
13 |
14 | class Meta:
15 | model = AnalysisMessage
16 | fields = "__all__"
17 |
--------------------------------------------------------------------------------
/seed/serializers/analysis_output_files.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import AnalysisOutputFile
9 |
10 |
11 | class AnalysisOutputFileSerializer(serializers.ModelSerializer):
12 | content_type = serializers.CharField(source="get_content_type_display")
13 |
14 | class Meta:
15 | model = AnalysisOutputFile
16 | fields = "__all__"
17 |
--------------------------------------------------------------------------------
/seed/serializers/audit_template_configs.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import AuditTemplateConfig
9 |
10 |
11 | class AuditTemplateConfigSerializer(serializers.ModelSerializer):
12 | class Meta:
13 | model = AuditTemplateConfig
14 | fields = "__all__"
15 |
--------------------------------------------------------------------------------
/seed/serializers/cycles.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import Cycle
9 |
10 |
11 | class CycleSerializer(serializers.ModelSerializer):
12 | class Meta:
13 | model = Cycle
14 | fields = (
15 | "name",
16 | "start",
17 | "end",
18 | "organization",
19 | "user",
20 | "id",
21 | )
22 | extra_kwargs = {"user": {"read_only": True}, "organization": {"read_only": True}}
23 |
--------------------------------------------------------------------------------
/seed/serializers/data_loggers.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import DataLogger
9 |
10 |
11 | class DataLoggerSerializer(serializers.ModelSerializer):
12 | class Meta:
13 | model = DataLogger
14 | fields = "__all__"
15 |
--------------------------------------------------------------------------------
/seed/serializers/facilities_plan.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import FacilitiesPlan
9 |
10 |
11 | class FacilitiesPlanSerializer(serializers.ModelSerializer):
12 | class Meta:
13 | model = FacilitiesPlan
14 | fields = "__all__"
15 |
--------------------------------------------------------------------------------
/seed/serializers/goal_notes.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import GoalNote
9 |
10 |
11 | class GoalNoteSerializer(serializers.ModelSerializer):
12 | class Meta:
13 | model = GoalNote
14 | fields = "__all__"
15 |
--------------------------------------------------------------------------------
/seed/serializers/historical_notes.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import HistoricalNote
9 |
10 |
11 | class HistoricalNoteSerializer(serializers.ModelSerializer):
12 | class Meta:
13 | model = HistoricalNote
14 | fields = "__all__"
15 |
--------------------------------------------------------------------------------
/seed/serializers/inventory_document.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 |
5 | :author Katherine Fleming
6 | """
7 |
8 | from rest_framework import serializers
9 |
10 | from seed.models import InventoryDocument
11 | from seed.serializers.base import ChoiceField
12 |
13 |
14 | class InventoryDocumentSerializer(serializers.ModelSerializer):
15 | file_type = ChoiceField(choices=InventoryDocument.FILE_TYPES)
16 |
17 | class Meta:
18 | model = InventoryDocument
19 | fields = "__all__"
20 |
--------------------------------------------------------------------------------
/seed/serializers/scenarios.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from rest_framework import serializers
7 |
8 | from seed.models import Scenario
9 | from seed.serializers.base import ChoiceField
10 | from seed.serializers.measures import PropertyMeasureSerializer
11 |
12 |
13 | class ScenarioSerializer(serializers.ModelSerializer):
14 | measures = PropertyMeasureSerializer(many=True)
15 | temporal_status = ChoiceField(choices=Scenario.TEMPORAL_STATUS_TYPES)
16 |
17 | class Meta:
18 | model = Scenario
19 | fields = "__all__"
20 |
--------------------------------------------------------------------------------
/seed/static/seed/images/ali-tree-example-lg.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/images/ali-tree-example-lg.webp
--------------------------------------------------------------------------------
/seed/static/seed/images/bg_first_td.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/images/bg_first_td.webp
--------------------------------------------------------------------------------
/seed/static/seed/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/images/favicon.ico
--------------------------------------------------------------------------------
/seed/static/seed/images/gray_square.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/seed/static/seed/images/kc_2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/images/kc_2.webp
--------------------------------------------------------------------------------
/seed/static/seed/images/map_pin.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/images/map_pin.webp
--------------------------------------------------------------------------------
/seed/static/seed/images/red_triangle.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/seed/static/seed/images/teal_circle.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/seed/static/seed/images/timeline_electricity.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/seed/static/seed/images/timeline_natural_gas.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/seed/static/seed/images/timeline_peak_down.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/seed/static/seed/images/upsidedown_t.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/seed/static/seed/js/constants.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | */
5 | angular
6 | .module('SEED.constants', [])
7 | .constant('COLUMN_MAPPING_PROFILE_TYPE_NORMAL', 'Normal')
8 | .constant('COLUMN_MAPPING_PROFILE_TYPE_BUILDINGSYNC_DEFAULT', 'BuildingSync Default')
9 | .constant('COLUMN_MAPPING_PROFILE_TYPE_BUILDINGSYNC_CUSTOM', 'BuildingSync Custom');
10 |
--------------------------------------------------------------------------------
/seed/static/seed/js/controllers/about_controller.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | */
5 | angular.module('SEED.controller.about', []).controller('about_controller', [
6 | '$scope',
7 | 'version_payload',
8 | // eslint-disable-next-line func-names
9 | function ($scope, version_payload) {
10 | $scope.version = version_payload.version;
11 | $scope.sha = version_payload.sha;
12 | }
13 | ]);
14 |
--------------------------------------------------------------------------------
/seed/static/seed/js/controllers/modified_modal_controller.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | */
5 | angular.module('SEED.controller.modified_modal', []).controller('modified_modal_controller', [
6 | '$scope',
7 | '$uibModalInstance',
8 | // eslint-disable-next-line func-names
9 | function ($scope, $uibModalInstance) {
10 | $scope.leave = () => {
11 | $uibModalInstance.close();
12 | };
13 |
14 | $scope.stay = () => {
15 | $uibModalInstance.dismiss();
16 | };
17 | }
18 | ]);
19 |
--------------------------------------------------------------------------------
/seed/static/seed/js/controllers/reset_modal_controller.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | */
5 | angular.module('SEED.controller.reset_modal', []).controller('reset_modal_controller', [
6 | '$scope',
7 | '$uibModalInstance',
8 | // eslint-disable-next-line func-names
9 | function ($scope, $uibModalInstance) {
10 | $scope.reset = () => {
11 | $uibModalInstance.close();
12 | };
13 |
14 | $scope.cancel = () => {
15 | $uibModalInstance.dismiss();
16 | };
17 | }
18 | ]);
19 |
--------------------------------------------------------------------------------
/seed/static/seed/js/directives/sdEnter.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | *
5 | * Directive sd-enter used for search or filter input to only fire on 'enter' or 'return'
6 | */
7 | angular.module('sdEnter', []).directive(
8 | 'sdEnter',
9 | () => (scope, element, attrs) => {
10 | element.bind('keydown keypress', (event) => {
11 | if (event.which === 13) {
12 | scope.$apply(() => {
13 | scope.$eval(attrs.sdEnter);
14 | });
15 | event.preventDefault();
16 | }
17 | });
18 | }
19 | );
20 |
--------------------------------------------------------------------------------
/seed/static/seed/js/directives/sdUbid.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | */
5 | angular.module('sdUbid', []).directive('ubid', () => ({
6 | require: 'ngModel',
7 | link: (scope, elm, attrs, ctrl) => {
8 | ctrl.$validators.ubid = (modelValue) => UniqueBuildingIdentification.v3.isValid(modelValue);
9 | }
10 | }));
11 |
--------------------------------------------------------------------------------
/seed/static/seed/js/directives/sdWhenScrolled.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | *
5 | * infinite-scrolling: http://jsfiddle.net/vojtajina/U7Bz9/
6 | */
7 | angular.module('sdWhenScrolled', []).directive(
8 | 'sdWhenScrolled',
9 | () => (scope, elm, attr) => {
10 | const raw = elm[0];
11 |
12 | elm.bind('scroll', () => {
13 | if (raw.scrollTop + raw.offsetHeight >= raw.scrollHeight) {
14 | scope.$apply(attr.sdWhenScrolled);
15 | }
16 | });
17 | }
18 | );
19 |
--------------------------------------------------------------------------------
/seed/static/seed/js/filters/district.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | *
5 | * district
6 | * For when you want to capitalize each word, remove underscores.
7 | */
8 | angular.module('district', []).filter(
9 | 'district',
10 | () => (input) => {
11 | if (_.isNil(input)) {
12 | return input;
13 | }
14 | if (input.toUpperCase() === 'DISTRICT') {
15 | return 'County/District/Ward/Borough';
16 | }
17 | return input;
18 | }
19 | );
20 |
--------------------------------------------------------------------------------
/seed/static/seed/js/filters/fromNow.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | *
5 | * filter 'fromNow' using the moment.js function 'fromNow()'
6 | * see: http://momentjs.com/
7 | */
8 | angular.module('fromNow', []).filter(
9 | 'fromNow',
10 | () => (dateString) => {
11 | if (_.isNumber(dateString) || /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z/.test(dateString)) {
12 | const m = moment(dateString);
13 | if (m.isValid()) return m.fromNow();
14 | }
15 | return 'a few seconds ago';
16 | }
17 | );
18 |
--------------------------------------------------------------------------------
/seed/static/seed/js/filters/getAnalysisRunAuthor.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | */
5 | angular.module('getAnalysisRunAuthor', []).filter(
6 | 'getAnalysisRunAuthor',
7 | () => (users) => {
8 | if (!users || users.length < 1) {
9 | return ''; // no user, display nothing
10 | }
11 | const user = users[0];
12 | if (!user.first_name || !user.last_name) {
13 | return user.email; // no full name, display email
14 | }
15 | return [user.last_name, user.first_name].join(', '); // display full name
16 | }
17 | );
18 |
--------------------------------------------------------------------------------
/seed/static/seed/js/filters/htmlToPlainText.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | *
5 | * htmlToPlainText
6 | * Strips html tags from text
7 | */
8 | angular.module('htmlToPlainText', []).filter(
9 | 'htmlToPlainText',
10 | () => (html) => {
11 | const temp = document.createElement('div');
12 | temp.innerHTML = html;
13 | return temp.textContent; // Or return temp.innerText if you need to return only visible text. It's slower.
14 | }
15 | );
16 |
--------------------------------------------------------------------------------
/seed/static/seed/js/filters/ignoremap.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | */
5 | angular.module('ignoremap', []).filter(
6 | 'ignoremap',
7 | () => (input) => {
8 | if (_.isEmpty(input)) return '------ Ignore Row ------';
9 | return input;
10 | }
11 | );
12 |
--------------------------------------------------------------------------------
/seed/static/seed/js/filters/startCase.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | *
5 | * StartCase
6 | * For when you want to capitalize the first letter of each word
7 | * https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage
8 | */
9 | angular.module('startCase', []).filter(
10 | 'startCase',
11 | () => (input) => {
12 | if (typeof input !== 'string') return input;
13 |
14 | return _.startCase(input.toLowerCase());
15 | }
16 | );
17 |
--------------------------------------------------------------------------------
/seed/static/seed/js/filters/startFrom.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | *
5 | * StartFrom
6 | * For when you want to paginate client side, and start ng-repeat from a specific number.
7 | */
8 | angular.module('startFrom', []).filter(
9 | 'startFrom',
10 | () => (input, start) => {
11 | start = +start; // parse to int
12 | return input.slice(start);
13 | }
14 | );
15 |
--------------------------------------------------------------------------------
/seed/static/seed/js/filters/titleCase.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | *
5 | * TitleCase
6 | * For when you want to capitalize each word, remove underscores.
7 | */
8 | angular.module('titleCase', []).filter(
9 | 'titleCase',
10 | () => (input) => {
11 | if (_.isNil(input)) {
12 | return input;
13 | }
14 | input = input.toString();
15 | input = input.replace(/_/g, ' ');
16 | input = input.replace(/(?:^|\s)\S/g, (a) => a.toUpperCase());
17 |
18 | return input;
19 | }
20 | );
21 |
--------------------------------------------------------------------------------
/seed/static/seed/js/services/main_service.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | */
5 | angular.module('SEED.service.main', []).factory('main_service', [
6 | '$http',
7 | ($http) => {
8 | const main_factory = {};
9 |
10 | main_factory.version = () => $http.get('/api/version/').then((response) => response.data);
11 |
12 | return main_factory;
13 | }
14 | ]);
15 |
--------------------------------------------------------------------------------
/seed/static/seed/js/services/meters_service.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | */
5 | angular.module('SEED.service.meters', []).factory('meters_service', [
6 | '$http',
7 | ($http) => {
8 | const meters_factory = {};
9 |
10 | meters_factory.valid_energy_types_units = () => $http.get('/api/v3/properties/valid_meter_types_and_units/').then((response) => response.data);
11 |
12 | return meters_factory;
13 | }
14 | ]);
15 |
--------------------------------------------------------------------------------
/seed/static/seed/js/services/uniformat_service.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | * See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | */
5 | angular.module('SEED.service.uniformat', []).factory('uniformat_service', [
6 | '$http',
7 | ($http) => ({
8 | // Return all uniformat categories
9 | get_uniformat: () => $http
10 | .get('/api/v3/uniformat/').then(({ data }) => data.reduce((acc, element) => {
11 | const { id, ...rest } = element;
12 | acc[id] = rest;
13 | return acc;
14 | }, {}))
15 | })
16 | ]);
17 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/api_docs.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/create_column_modal.html:
--------------------------------------------------------------------------------
1 |
4 |
12 |
17 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/delete_facilities_plan_run_modal.html:
--------------------------------------------------------------------------------
1 |
4 |
5 | Delete Facilities Plan Run '{$ facilities_plan_run.name $}'?
6 |
7 |
15 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/delete_file_modal.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | {$:: 'Are you sure you want to delete the data file' | translate $},
7 | {$:: file.name $}?
8 |
9 |
10 |
24 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/event_analysis_card.html:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/inventory_loading_modal.html:
--------------------------------------------------------------------------------
1 |
2 |
Loading inventory...
3 |
4 | {$ progress.current $} / {$ progress.total $}
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/meter_deletion_modal.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
23 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/modified_modal.html:
--------------------------------------------------------------------------------
1 |
4 |
5 | You will lose your unsaved changes if you navigate away without saving. Would
6 | you like to continue?
7 |
8 |
22 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/notes_modal.html:
--------------------------------------------------------------------------------
1 |
4 |
8 |
19 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/pairing_nav.html:
--------------------------------------------------------------------------------
1 | Pairing
8 | Pairing Settings
15 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/profile_nav.html:
--------------------------------------------------------------------------------
1 | Profile Info
2 | Security
3 | Admin
6 | Developer
7 | Two Factor Profile
10 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/reset_modal.html:
--------------------------------------------------------------------------------
1 |
6 |
7 | All rules will be deleted and only default rules will be initiated.
8 |
9 |
23 |
--------------------------------------------------------------------------------
/seed/static/seed/partials/ubid_admin_modal.html:
--------------------------------------------------------------------------------
1 |
8 |
14 |
19 |
--------------------------------------------------------------------------------
/seed/static/seed/pdf/SEED_Platform_V1.1_Getting_Started_Guide.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/pdf/SEED_Platform_V1.1_Getting_Started_Guide.pdf
--------------------------------------------------------------------------------
/seed/static/seed/pdf/SEED_Platform_V1_3_Getting_Started_Guide.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/pdf/SEED_Platform_V1_3_Getting_Started_Guide.pdf
--------------------------------------------------------------------------------
/seed/static/seed/pdf/SEED_Platform_V2_18_Getting_Started_Guide.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/pdf/SEED_Platform_V2_18_Getting_Started_Guide.pdf
--------------------------------------------------------------------------------
/seed/static/seed/pdf/SEED_Release_2_User_Guide.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/pdf/SEED_Release_2_User_Guide.pdf
--------------------------------------------------------------------------------
/seed/static/seed/pdf/SEED_v1_User_Guide.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/pdf/SEED_v1_User_Guide.pdf
--------------------------------------------------------------------------------
/seed/static/seed/sample-data/__MACOSX/._seed-sample-data:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/sample-data/__MACOSX/._seed-sample-data
--------------------------------------------------------------------------------
/seed/static/seed/sample-data/__MACOSX/seed-sample-data/._interval_data-example-pm-monthly-meter-usage.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/sample-data/__MACOSX/seed-sample-data/._interval_data-example-pm-monthly-meter-usage.xlsx
--------------------------------------------------------------------------------
/seed/static/seed/sample-data/__MACOSX/seed-sample-data/._interval_data-portfolio-manager-sample.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/sample-data/__MACOSX/seed-sample-data/._interval_data-portfolio-manager-sample.xlsx
--------------------------------------------------------------------------------
/seed/static/seed/sample-data/__MACOSX/seed-sample-data/._simple_data-covered-buildings-sample.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/sample-data/__MACOSX/seed-sample-data/._simple_data-covered-buildings-sample.csv
--------------------------------------------------------------------------------
/seed/static/seed/sample-data/__MACOSX/seed-sample-data/._simple_data-portfolio-manager-sample.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/sample-data/__MACOSX/seed-sample-data/._simple_data-portfolio-manager-sample.csv
--------------------------------------------------------------------------------
/seed/static/seed/sample-data/seed-sample-data.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/sample-data/seed-sample-data.zip
--------------------------------------------------------------------------------
/seed/static/seed/sample-data/seed-sample-data/interval_data-example-pm-monthly-meter-usage.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/sample-data/seed-sample-data/interval_data-example-pm-monthly-meter-usage.xlsx
--------------------------------------------------------------------------------
/seed/static/seed/sample-data/seed-sample-data/interval_data-portfolio-manager-sample.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/static/seed/sample-data/seed-sample-data/interval_data-portfolio-manager-sample.xlsx
--------------------------------------------------------------------------------
/seed/static/seed/tests/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | jasmine: true
4 | },
5 | globals: {
6 | module: true
7 | },
8 | rules: {
9 | 'import/no-extraneous-dependencies': 'off',
10 | 'no-global-assign': ['error', {
11 | exceptions: ['confirm']
12 | }]
13 | }
14 | };
15 |
--------------------------------------------------------------------------------
/seed/templates/seed/_fonts.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/seed/templates/seed/_js_urls.html:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/seed/templates/seed/account_org_added.html:
--------------------------------------------------------------------------------
1 | {% load i18n %}{% autoescape off %}
2 | {% blocktrans %}Hello {{ first_name }}, {% endblocktrans %}
3 |
4 | {% blocktrans %}You are receiving this e-mail because you have been added to the '{{ new_org }}' organization by '{{ requested_by }}'. Please disregard this message if you are not expecting access
5 | to SEED.{% endblocktrans %}
6 |
7 | {% blocktrans %}You can view your new organization by logging into the SEED instance here:{% endblocktrans %}
8 | {{ protocol }}://{{ domain }}
9 |
10 | {% blocktrans %}The SEED Team{% endblocktrans %}
11 |
12 | {% endautoescape %}
13 |
--------------------------------------------------------------------------------
/seed/templates/seed/salesforce_update_errors.html:
--------------------------------------------------------------------------------
1 | {% load i18n %}{% autoescape off %}
2 | {% blocktrans %}Hello, {% endblocktrans %}
3 |
4 | {% blocktrans %}You're receiving this message because your e-mail is registered as the 'logging email' for Salesforce updates in the SEED {{ organization_name }} organization. {% endblocktrans %}
5 |
6 | {% blocktrans %}Errors were encountered while running the automatic Salesforce update process:{% endblocktrans %}
7 |
8 | {% blocktrans %}{{ errors }}{% endblocktrans %}
9 |
10 |
11 | {% blocktrans %}The SEED Team{% endblocktrans %}
12 |
13 | {% endautoescape %}
14 |
--------------------------------------------------------------------------------
/seed/templatetags/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/templatetags/settings_value.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 |
5 | Simple templatetag to return a value from the settings file. e.g., {% settings_value "LOGIN_REDIRECT_URL" %}
6 | """
7 |
8 | import logging
9 |
10 | from django import template
11 | from django.conf import settings
12 |
13 | _log = logging.getLogger(__name__)
14 |
15 | register = template.Library()
16 |
17 |
18 | @register.simple_tag
19 | def settings_value(name):
20 | return getattr(settings, name, "")
21 |
--------------------------------------------------------------------------------
/seed/test_helpers/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/tests/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | import logging
7 |
8 | logging.disable(logging.DEBUG)
9 |
--------------------------------------------------------------------------------
/seed/tests/data/2019-2020_Multiple Cycle Taxlots.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/2019-2020_Multiple Cycle Taxlots.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/2019-2020_Multiple Cycle Year only.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/2019-2020_Multiple Cycle Year only.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/Has_Meters_two_buildings.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/Has_Meters_two_buildings.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/Sample_MultipleCycles.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/Sample_MultipleCycles.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/access-level-instances.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/access-level-instances.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/access-levels-wrong1.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/access-levels-wrong1.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/access-levels-wrong2.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/access-levels-wrong2.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/access-levels-wrong3.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/access-levels-wrong3.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/Add_Bills_to_Meters.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/Add_Bills_to_Meters.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/Add_Meters.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/Add_Meters.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/Add_Properties_en.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/Add_Properties_en.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/BPS-sample-Targets-2019.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/BPS-sample-Targets-2019.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/BPS-sample-Targets-2020.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/BPS-sample-Targets-2020.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/BPS-sample-Targets-2021.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/BPS-sample-Targets-2021.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/BPS-sample-Targets-2022.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/BPS-sample-Targets-2022.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/BPS-sample-Targets-2023.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/BPS-sample-Targets-2023.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/CBL-building-performance-standards-sample-2019.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/CBL-building-performance-standards-sample-2019.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/CBL-building-performance-standards-sample-2020.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/CBL-building-performance-standards-sample-2020.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/CBL-building-performance-standards-sample-2021.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/CBL-building-performance-standards-sample-2021.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/CBL-building-performance-standards-sample-2022.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/CBL-building-performance-standards-sample-2022.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/CBL-building-performance-standards-sample-2023.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/CBL-building-performance-standards-sample-2023.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/bps/ESPM_BPS_Sample_Meter_Readings.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/bps/ESPM_BPS_Sample_Meter_Readings.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/covered-buildings-sample-with-errors.csv:
--------------------------------------------------------------------------------
1 | UBI,UBID,GBA,BLDGS,Address,Owner,City,State,Zip,Property Type,AYB_YearBuilt,Custom ID,PM Property ID
2 | 10107/71db4,86HJPCWQ+2VV-1-3-2-3,10000000000,1,120243 E True Lane,MileStone Community Builders,EnergyTown,Illinois,10107-7915,COMMERCIAL,0,,
3 | 10107/c6596,,"322,701",1,95373 E Peach Avenue,Pangea Properties,EnergyTown,Illinois,10107-1544,COMMERCIAL,1962,my-own-id,
4 | ,,512,1,123 Main Street,Longmont,EnergyTown,Colorado,80123,COMMERCIAL,1962,some-other-self-id,
5 | Perfect Record,86HJW6QJ+VFQ-1-2-3-4,248,1,1234 Peach Tree Avenue,Dark Roads Properties,EnergyTown,Illinois,10107-1544,COMMERCIAL,1962,my-own-id,my-pm-property
6 |
--------------------------------------------------------------------------------
/seed/tests/data/example-bsyncr-plot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/example-bsyncr-plot.png
--------------------------------------------------------------------------------
/seed/tests/data/example-data-request-response-new-format.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/example-data-request-response-new-format.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/example-data-request-response.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/example-data-request-response.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/example-pm-monthly-meter-usage-2-cost-meters.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/example-pm-monthly-meter-usage-2-cost-meters.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/example-pm-monthly-meter-usage-with-unknown-types-and-units.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/example-pm-monthly-meter-usage-with-unknown-types-and-units.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/example-pm-monthly-meter-usage.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/example-pm-monthly-meter-usage.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/example-sensor-metadata.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/example-sensor-metadata.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/example-sensor-readings-small-bad.csv:
--------------------------------------------------------------------------------
1 | timestamp,I'm not here,my_coolness_sensor,charisma_sensor_1,dex_sensor_1,intelligence_sensor
2 | 2021-10-22 16:30Z,8700000.8,20.7,61,670.9,asdf
3 | 2021-10-22 17:00Z,90.5,21.7,56.7,704.8,207.9
4 | 2021-10-22 17:15Z,90,20.8,59.2,654.1,163.8
5 | 22/12/2021 17:30Z,87.9,20,61.8,636.2,54.9
6 | 2021-10-22 17:45Z,89.5,20.7,60,653.9,69.2
7 |
--------------------------------------------------------------------------------
/seed/tests/data/example-sensor-readings-small.csv:
--------------------------------------------------------------------------------
1 | timestamp,my_cuteness_sensor,my_coolness_sensor,charisma_sensor_1,dex_sensor_1,intelligence_sensor
2 | 2021-10-22 16:30Z,8700000.8,20.7,61,670.9,144.2
3 | 2021-10-22 17:00Z,90.5,21.7,56.7,704.8,207.9
4 | 2021-10-22 17:15Z,90,20.8,59.2,654.1,163.8
5 | 2021-10-22 17:30Z,87.9,20,61.8,636.2,54.9
6 | 2021-10-22 17:45Z,89.5,20.7,60,653.9,69.2
7 |
--------------------------------------------------------------------------------
/seed/tests/data/mappings/covered-buildings-mapping-v2.csv:
--------------------------------------------------------------------------------
1 | Raw Columns,units,SEED Table,SEED Columns
2 | UBI,,TaxLotState,jurisdiction_tax_lot_id
3 | UBID,,PropertyState,ubid
4 | GBA,ft**2,PropertyState,gross_floor_area
5 | BLDGS,,PropertyState,building_count
6 | Address,,PropertyState,address_line_1
7 | Owner,,PropertyState,owner
8 | State,,PropertyState,state_province
9 | City,,PropertyState,city
10 | Zip,,PropertyState,postal_code
11 | Property Type,,PropertyState,use_description
12 | AYB_YearBuilt,,PropertyState,year_built
13 | Note,,PropertyState,property_notes
14 |
--------------------------------------------------------------------------------
/seed/tests/data/mappings/covered-buildings-mapping.csv:
--------------------------------------------------------------------------------
1 | map_columns,,raw_columns,
2 | UBI,,TaxLotState,jurisdiction_tax_lot_id
3 | GBA,ft**2,PropertyState,gross_floor_area
4 | BLDGS,,PropertyState,building_count
5 | Address,,PropertyState,address_line_1
6 | Owner,,PropertyState,owner
7 | State,,PropertyState,state_province
8 | City,,PropertyState,city
9 | Zip,,PropertyState,postal_code
10 | Property Type,,PropertyState,use_description
11 | AYB_YearBuilt,,PropertyState,year_built
12 |
--------------------------------------------------------------------------------
/seed/tests/data/portfolio-manager-sample-with-crlf.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/portfolio-manager-sample-with-crlf.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/portfolio-manager-sample.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/portfolio-manager-sample.xls
--------------------------------------------------------------------------------
/seed/tests/data/portfolio-manager-sample.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/portfolio-manager-sample.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/portfolio-manager-single-22482007.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/portfolio-manager-single-22482007.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/system_meter_readings.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/system_meter_readings.xlsx
--------------------------------------------------------------------------------
/seed/tests/data/test-document.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/tests/data/test-document.pdf
--------------------------------------------------------------------------------
/seed/tests/data/test_datatype_mapping.csv:
--------------------------------------------------------------------------------
1 | Raw Column,Table Name,Field Name,Field Display Name,Field Data Type,Field Unit Type
2 | UBI,TaxLotState,jurisdiction_tax_lot_id,,,
3 | GBA,PropertyState,gross_floor_area,,,
4 | BLDGS,PropertyState,building_count,,,
5 | Address,PropertyState,address_line_1,,,
6 | Owner,PropertyState,owner,,,
7 | City,PropertyState,city,,Integer,
8 | State,PropertyState,state,,,
9 | Zip,PropertyState,postal_code,,,
10 | Property Type,PropertyState,property_type,,,
11 | AYB_YearBuilt,PropertyState,year_built,,,
12 | Custom ID,PropertyState,custom_id_1,,,
13 | PM Property ID,PropertyState,pm_property_id,,,
14 | New Note Field,PropertyState,new_note_field,,string,
15 |
--------------------------------------------------------------------------------
/seed/tests/data/test_mapping.csv:
--------------------------------------------------------------------------------
1 | Raw Column,Table Name,Field Name,Field Display Name,Field Data Type,Field Unit Type
2 | UBI,TaxLotState,jurisdiction_tax_lot_id,,,
3 | GBA,PropertyState,gross_floor_area,,,
4 | BLDGS,PropertyState,building_count,,,
5 | Address,PropertyState,address_line_1,,,
6 | Owner,PropertyState,owner,,,
7 | City,PropertyState,city,,,
8 | State,PropertyState,state,,,
9 | Zip,PropertyState,postal_code,,,
10 | Property Type,PropertyState,property_type,,,
11 | AYB_YearBuilt,PropertyState,year_built,,,
12 | Custom ID,PropertyState,custom_id_1,,,
13 | PM Property ID,PropertyState,pm_property_id,,,
14 |
--------------------------------------------------------------------------------
/seed/urls.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from django.urls import path
7 |
8 | from seed.views.main import home
9 |
10 | urlpatterns = [
11 | path("", home, name="home"),
12 | ]
13 |
--------------------------------------------------------------------------------
/seed/utils/CTS Facility Upload Template.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/utils/CTS Facility Upload Template.xlsx
--------------------------------------------------------------------------------
/seed/utils/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/utils/facilities_plan_output.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/utils/facilities_plan_output.xlsx
--------------------------------------------------------------------------------
/seed/utils/nocache.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
6 | from django.utils.cache import add_never_cache_headers
7 |
8 |
9 | class DisableClientSideCachingMiddleware:
10 | def __init__(self, get_response):
11 | self.get_response = get_response
12 |
13 | def __call__(self, request):
14 | response = self.get_response(request)
15 |
16 | add_never_cache_headers(response)
17 | return response
18 |
--------------------------------------------------------------------------------
/seed/utils/strings.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 |
5 | :author nicholas.long@nrel.gov
6 |
7 | Methods to help with string parsing etc.
8 | """
9 |
10 | from string import capwords
11 |
12 |
13 | def titlecase(s):
14 | # Titlelize the display names correctly per python's documentation. Don't use .title()
15 | # https://docs.python.org/2/library/stdtypes.html#str.title
16 | return capwords(s.replace("_", " "))
17 |
--------------------------------------------------------------------------------
/seed/views/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | SEED Platform (TM), Copyright (c) Alliance for Sustainable Energy, LLC, and other contributors.
3 | See also https://github.com/SEED-platform/seed/blob/main/LICENSE.md
4 | """
5 |
--------------------------------------------------------------------------------
/seed/views/v3/data/PM Meter Data.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/views/v3/data/PM Meter Data.xlsx
--------------------------------------------------------------------------------
/seed/views/v3/data/example-pm-monthly-meter-usage.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SEED-platform/seed/c0960f0f55e7d3f86b5384e0e4db3660d8988673/seed/views/v3/data/example-pm-monthly-meter-usage.xlsx
--------------------------------------------------------------------------------