diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 080743c6..8fe9d5d0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,7 +62,5 @@ jobs: DATABASE_URL: postgis://postgres:postgres@localhost:5432/lametro SEARCH_URL: http://localhost:9200 run: | - flake8 . - black --check . cp .env.local.example .env.local pytest -sv diff --git a/.gitignore b/.gitignore index 4d5e6994..d68f2568 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ lametro/secrets.py .env .venv +media/ diff --git a/README.md b/README.md index 655cf344..3c5dec77 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,18 @@ Grab the values for the `AWS_ACCESS_KEY_ID` and the `AWS_SECRET_ACCESS_KEY` and Now you should be able to start uploading some files! +## Review Apps +This repo is set up to deploy review apps on Heroku, and those pull from the staging database to match the experience of deploying as closely as possible! However, note that in order to prevent unapproved model changes from effecting the staging database, migrations are prevented from running on review apps. So those will still have to be reviewed locally. + +### Review apps for Wagtail changes + +1. Configure the S3 connection, as documented above. +2. Once a release phase successfully completes, provision an Essential 0 database for your review app. +3. Retrieve the URI from the Credentials tab. +4. Run `export HEROKU_DATABASE_URL=`. +5. If needed, run `docker compose run --rm -e DATABASE_URL=${HEROKU_DATABASE_URI} scrapers` to populate initial legislative data. +6. Run `docker compose run --rm -e DATABASE_URL=${HEROKU_DATABASE_URI} app python manage.py load_content` to populate initial CMS content from the version controlled fixtures. + ## Adding a new board member Hooray! A new member has been elected or appointed to the Board of Directors. @@ -205,9 +217,10 @@ This will start the Locust web server on http://localhost:8089. For more details see the [Locust documentation](https://docs.locust.io/en/stable/). ## Review Apps + This repo is set up to deploy review apps on Heroku, and those pull from the staging database to match the experience of deploying as closely as possible! However, note that in order to prevent unapproved model changes from effecting the staging database, migrations are prevented from running on review apps. So those will still have to be reviewed locally. -## Updating the documentation +## Updating the Documentation To make changes to the documentation, [install Quarto](https://quarto.org/docs/get-started/). diff --git a/councilmatic/minimal_settings.py b/councilmatic/minimal_settings.py deleted file mode 100644 index 34fce23c..00000000 --- a/councilmatic/minimal_settings.py +++ /dev/null @@ -1,31 +0,0 @@ -""" -As part of our build process, we need to run collectstatic from within the -Dockerfile. This is a minimal settings file to enable that one management command -""" - -import os - -BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -STATIC_ROOT = os.path.join(BASE_DIR, "static") -STATIC_URL = "/static/" - -INSTALLED_APPS = ( - "django.contrib.staticfiles", - "django.contrib.gis", - "opencivicdata.core", - "opencivicdata.legislative", - "lametro", - "councilmatic_core", - "debug_toolbar", - "captcha", -) - -HAYSTACK_CONNECTIONS = { - "default": { - "ENGINE": "haystack.backends.elasticsearch7_backend.Elasticsearch7SearchEngine", - "URL": "http://elasticsearch:9200", - "INDEX_NAME": "lametro", - "SILENTLY_FAIL": False, - "BATCH_SIZE": 10, - } -} diff --git a/councilmatic/settings.py b/councilmatic/settings.py index d9629d7f..bc0f581d 100644 --- a/councilmatic/settings.py +++ b/councilmatic/settings.py @@ -40,6 +40,7 @@ REMOTE_ANALYTICS_FOLDER=(str, ""), GOOGLE_SERVICE_ACCT_API_KEY=(str, ""), GOOGLE_API_KEY=(str, ""), + WAGTAILADMIN_BASE_URL=(str, "https://boardagendas.metro.net"), ) # Core Django Settings @@ -137,6 +138,20 @@ "template_profiler_panel", "captcha", "markdownify.apps.MarkdownifyConfig", + "wagtail.contrib.forms", + "wagtail.contrib.redirects", + "wagtail.contrib.typed_table_block", + "wagtail.embeds", + "wagtail.sites", + "wagtail.users", + "wagtail.snippets", + "wagtail.documents", + "wagtail.images", + "wagtail.search", + "wagtail.admin", + "wagtail", + "modelcluster", + "taggit", ) try: @@ -154,6 +169,7 @@ "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", + "wagtail.contrib.redirects.middleware.RedirectMiddleware", ) ROOT_URLCONF = "councilmatic.urls" @@ -199,6 +215,9 @@ STATIC_URL = "/static/" STATIC_ROOT = os.path.join(BASE_DIR, "static") +MEDIA_ROOT = os.path.join(BASE_DIR, "media") +MEDIA_URL = "/media/" + # Third Party Keys RECAPTCHA_PUBLIC_KEY = env("RECAPTCHA_PUBLIC_KEY") RECAPTCHA_PRIVATE_KEY = env("RECAPTCHA_PRIVATE_KEY") @@ -243,10 +262,9 @@ ) from django.core.files.storage import get_storage_class - S3Storage = get_storage_class("storages.backends.s3boto3.S3Boto3Storage") - AWS_QUERYSTRING_AUTH = False - COUNCILMATIC_HEADSHOT_STORAGE_BACKEND = S3Storage() + DEFAULT_FILE_STORAGE = "storages.backends.s3boto3.S3Boto3Storage" + COUNCILMATIC_HEADSHOT_STORAGE_BACKEND = get_storage_class(DEFAULT_FILE_STORAGE) else: print("AWS not configured. Defaulting to local storage...") @@ -338,3 +356,6 @@ def custom_sampler(ctx): # Hard time limit on HTTP requests REQUEST_TIMEOUT = 5 + +WAGTAIL_SITE_NAME = "boardagendas.metro.net" +WAGTAILADMIN_BASE_URL = env("WAGTAILADMIN_BASE_URL") diff --git a/councilmatic/urls.py b/councilmatic/urls.py index 5debfab5..4e2aa204 100644 --- a/councilmatic/urls.py +++ b/councilmatic/urls.py @@ -1,5 +1,6 @@ from django.conf import settings from django.conf.urls import include, url +from django.conf.urls.static import static from django.contrib import admin from django.urls import path from django.views.static import serve @@ -7,6 +8,10 @@ from haystack.query import EmptySearchQuerySet +from wagtail.admin import urls as wagtailadmin_urls +from wagtail import urls as wagtail_urls +from wagtail.documents import urls as wagtaildocs_urls + from councilmatic_core.views import ( CouncilmaticSearchForm, ) @@ -23,7 +28,6 @@ LAMetroEventDetail, LABillDetail, LABoardMembersView, - LAMetroAboutView, LACommitteeDetailView, LACommitteesView, LAPersonDetailView, @@ -63,7 +67,6 @@ ), url(r"^archive-search", LAMetroArchiveSearch.as_view(), name="archive-search"), url(r"^$", never_cache(LAMetroIndexView.as_view()), name="index"), - url(r"^about/$", LAMetroAboutView.as_view(), name="about"), url( r"^board-report/(?P[^/]+)/$", LABillDetail.as_view(), @@ -129,9 +132,12 @@ name="lametro_ses_endpoint", ), path("smartlogic/", include("smartlogic.urls", namespace="smartlogic")), + path("cms/", include(wagtailadmin_urls)), + path("documents/", include(wagtaildocs_urls)), + path("", include(wagtail_urls)), url(r"", include("councilmatic_core.urls")), url(r"^test-logging/$", test_logging, name="test_logging"), -] +] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) if settings.DEBUG: import debug_toolbar diff --git a/docker-compose.yml b/docker-compose.yml index ea8f6952..d0c19d04 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -66,7 +66,7 @@ services: DATABASE_URL: 'postgis://postgres:postgres@postgres/lametro' SHARED_DB: "True" OCD_DIVISION_CSV: '/app/lametro_divisions.csv' - command: sh -c 'pupa update --rpm=600 lametro people && pupa update --rpm=600 lametro bills window=14 && pupa update --rpm=600 lametro events window=14' + command: sh -c 'pupa update --rpm=600 lametro people && pupa update --rpm=600 lametro bills window=7 && pupa update --rpm=600 lametro events window=7' volumes: - ./lametro/secrets.py:/app/lametro/secrets.py - ./data/lametro_divisions.csv:/app/lametro_divisions.csv diff --git a/lametro/blocks.py b/lametro/blocks.py new file mode 100644 index 00000000..64c348a4 --- /dev/null +++ b/lametro/blocks.py @@ -0,0 +1,66 @@ +from wagtail import blocks +from wagtail.images.blocks import ImageChooserBlock +from wagtail.contrib.typed_table_block.blocks import TypedTableBlock + + +class NavigationBlock(blocks.StaticBlock): + class Meta: + template = "lametro/blocks/navigation.html" + icon = "bars" + + def get_context(self, *args, **kwargs): + context = super().get_context(*args, **kwargs) + + if parent_context := kwargs.get("parent_context"): + context["navigation_items"] = { + section.value["heading"] or "Unnamed Section": section.value["anchor"] + for section in parent_context["page"].body + if section.value["anchor"] + } + + return context + + +class Breakpoints(blocks.StructBlock): + class Meta: + help_text = "Max number of columns to display on different devices" + + sm = blocks.IntegerBlock(default=1, help_text="Mobile phone") + md = blocks.IntegerBlock(default=2, help_text="Tablet") + lg = blocks.IntegerBlock(default=4, help_text="Desktop") + + +class ResponsiveContent(blocks.StructBlock): + breakpoints = Breakpoints() + content = blocks.StreamBlock( + [ + ( + "table", + TypedTableBlock( + [ + ("rich_text", blocks.RichTextBlock()), + ] + ), + ) + ] + ) + + +class ContentBlock(blocks.StreamBlock): + text = blocks.RichTextBlock() + image = ImageChooserBlock() + table = TypedTableBlock( + [ + ("rich_text", blocks.RichTextBlock()), + ] + ) + navigation = NavigationBlock() + responsive_element = ResponsiveContent() + + +class ArticleBlock(blocks.StructBlock): + heading = blocks.CharBlock(required=False) + content = ContentBlock() + anchor = blocks.CharBlock( + required=False, help_text="Add anchor to enable direct links to this section" + ) diff --git a/lametro/fixtures/cms_content.json b/lametro/fixtures/cms_content.json new file mode 100644 index 00000000..e32380a9 --- /dev/null +++ b/lametro/fixtures/cms_content.json @@ -0,0 +1,1385 @@ +[ +{ + "model": "auth.group", + "pk": 1, + "fields": { + "name": "Moderators", + "permissions": [ + [ + "access_admin", + "wagtailadmin", + "admin" + ], + [ + "add_document", + "wagtaildocs", + "document" + ], + [ + "change_document", + "wagtaildocs", + "document" + ], + [ + "choose_document", + "wagtaildocs", + "document" + ], + [ + "delete_document", + "wagtaildocs", + "document" + ], + [ + "add_image", + "wagtailimages", + "image" + ], + [ + "change_image", + "wagtailimages", + "image" + ], + [ + "choose_image", + "wagtailimages", + "image" + ], + [ + "delete_image", + "wagtailimages", + "image" + ] + ] + } +}, +{ + "model": "auth.group", + "pk": 2, + "fields": { + "name": "Editors", + "permissions": [ + [ + "access_admin", + "wagtailadmin", + "admin" + ], + [ + "add_document", + "wagtaildocs", + "document" + ], + [ + "change_document", + "wagtaildocs", + "document" + ], + [ + "choose_document", + "wagtaildocs", + "document" + ], + [ + "delete_document", + "wagtaildocs", + "document" + ], + [ + "add_image", + "wagtailimages", + "image" + ], + [ + "change_image", + "wagtailimages", + "image" + ], + [ + "choose_image", + "wagtailimages", + "image" + ], + [ + "delete_image", + "wagtailimages", + "image" + ] + ] + } +}, +{ + "model": "auth.user", + "pk": 1, + "fields": { + "password": "pbkdf2_sha256$260000$B9ENOePr7fGI3Pa5LU7l1h$ekAXX9iQL7ygx/1ug0AI5GLbltK6rT7aFiPw/gU18Ag=", + "last_login": "2024-11-21T14:09:55.136Z", + "is_superuser": true, + "username": "hannah", + "first_name": "", + "last_name": "", + "email": "", + "is_staff": true, + "is_active": true, + "date_joined": "2024-11-20T16:12:03.607Z", + "groups": [], + "user_permissions": [] + } +}, +{ + "model": "lametro.aboutpage", + "pk": 3, + "fields": { + "body": "[{\"id\": \"fffd0bb0-3c05-4553-aad3-849517d38c1c\", \"type\": \"section\", \"value\": {\"anchor\": \"\", \"content\": [{\"id\": \"cccde923-3381-4213-82ef-e50e21f123f6\", \"type\": \"text\", \"value\": \"

This site offers tools for understanding and tracking the activity of the Board Members of the Los Angeles County Metropolitan Transportation Authority. It connects Los Angeles County residents to Metro policy makers, for greater online public dialogue about issues related to transit services and programs.

With this site, you can:

\"}], \"heading\": \"\"}}, {\"id\": \"fed3bfcd-3067-423e-ba8d-e62517e68e1a\", \"type\": \"section\", \"value\": {\"anchor\": \"\", \"content\": [{\"id\": \"fcf5d8a4-6e06-4e7e-b3dd-82eac2e292e0\", \"type\": \"navigation\", \"value\": null}], \"heading\": \"\"}}, {\"id\": \"6861258a-da02-48ed-a21c-c8283ac588df\", \"type\": \"section\", \"value\": {\"anchor\": \"about-la-metro\", \"content\": [{\"id\": \"7d711eb3-f937-4900-8e48-164de929ca99\", \"type\": \"text\", \"value\": \"

The Los Angeles County Metropolitan Transportation Authority (Metro) was created by the State of California to set policy, coordinate, plan, fund, build, and operate transit services and transportation programs throughout Los Angeles County. Metro supports the transportation improvement programs of the 88 cities and 16 municipal transit operators within Los Angeles County, as well as LA's paratransit provider, ASI, and its regional commuter rail service provider, Metrolink.

Board of Directors

The Board of Directors is comprised of representatives from the City of Los Angeles, the County of Los Angeles, the other incorporated cities and unincorporated areas in Los Angeles County, and a non-voting member representing the Governor. The full Board typically meets once a month to review budgets, contracts, policies and programs, and make decisions about what to adopt, fund and build.

Board Member Appointments

City of Los Angeles representatives include the Mayor of Los Angeles and the Mayor\\u2019s three appointees. Los Angeles County representatives include the Los Angeles County Board of Supervisors representative of each of the five county districts. Representatives from the other incorporated cities and unincorporated areas in Los Angeles County are appointed by the City Selection Committee.

The Los Angeles County City Selection Committee is a group comprised of the mayor of each city within Los Angeles County, excluding the City of Los Angeles. Within the Committee, there are four Subcommittees, one for each Sector of the county, comprised of the mayor of each city within each Sector:

Each Sector Subcommittee nominates one mayor or council member from the Sector to serve on the Metro Board (unless a motion to nominate multiple candidates is made, seconded and passed by a majority weighted vote). Nominees are approved and appointed to the Metro Board by the entire City Selection Committee, whereby each city within the Committee may cast one \\u201cyea\\u201d or \\u201cnay\\u201d vote for every 10,000 residents.

Full documentation of this process can be found in the Los Angeles County City Selection Committee Rules and Regulations for Appointments to Los Angeles County Metropolitan Transportation Authority .

Board Chair

Each Metro Board Chair serves a one year term, from July 1st to June 30th. The Chair\\u2019s term rotates annually between the Mayor of Los Angeles, a member of the Los Angeles County Board of Supervisors, and one of the City Selection Committee Members.

Board Committees

Per the Administrative Ordinance, the Board of Directors has 5 standing committees. The Chair of the Board of Directors may designate other standing and ad hoc committees subject to concurrence of the Board of Directors. Learn more here.

Board Meetings

Learn more about Metro Board of Directors meetings, and view meetings and agendas here.

\"}], \"heading\": \"What is the Metro Board of Directors, and how does it work?\"}}, {\"id\": \"30d5c8c4-29b8-4dcd-8ca3-ce4d7c3a6957\", \"type\": \"section\", \"value\": {\"anchor\": \"procedures\", \"content\": [{\"id\": \"be011f8d-c089-4b2e-9ba4-e82476944f89\", \"type\": \"text\", \"value\": \"

Metro Board follows specific procedures to hold meetings and organize its members.

Read about all Metro Rules & Procedures.

Code of Conduct

\"}], \"heading\": \"Board Room Rules and Procedures\"}}, {\"id\": \"ff0bd369-1329-4fce-a5ab-40ae385c31d7\", \"type\": \"section\", \"value\": {\"anchor\": \"\", \"content\": [{\"id\": \"8c4c61e5-2313-4f7c-96ee-ebad34958766\", \"type\": \"responsive_element\", \"value\": {\"content\": [{\"id\": \"db5ecbfe-bb13-48f8-b814-d29cdf48ba18\", \"type\": \"table\", \"value\": {\"rows\": [{\"values\": [\"

Agreement

\", \"

A negotiated arrangement between parties.

\"]}], \"columns\": [{\"type\": \"rich_text\", \"heading\": \"Type\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}]}}], \"breakpoints\": {\"lg\": 4, \"md\": 2, \"sm\": 1}}}], \"heading\": \"Types of Board Reports\"}}, {\"id\": \"df0eabeb-b23a-4747-8d95-9057204a910b\", \"type\": \"section\", \"value\": {\"anchor\": \"\", \"content\": [{\"id\": \"52c0a408-c3a2-4ca6-aca7-7b855322c399\", \"type\": \"text\", \"value\": \"

Each Metro board report has one of 22 posible statuses:

\"}, {\"id\": \"8f171ff2-5370-4f49-88b0-51463d6b68f0\", \"type\": \"responsive_element\", \"value\": {\"content\": [{\"id\": \"20ff5c56-3d82-49fd-8c3f-77aaefce1212\", \"type\": \"table\", \"value\": {\"rows\": [{\"values\": [\"

Adopted

\", \"

Adopted

\", \"

Item was adopted by a majority vote of the Board.

\"]}, {\"values\": [\"

Adopted As Amended

\", \"

Adopted

\", \"

Item was adopted by a majority vote of the Board.

\"]}], \"columns\": [{\"type\": \"rich_text\", \"heading\": \"Status\"}, {\"type\": \"rich_text\", \"heading\": \"Displayed Status\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}]}}], \"breakpoints\": {\"lg\": 4, \"md\": 2, \"sm\": 2}}}], \"heading\": \"Board Report Statuses\"}}, {\"id\": \"8655a141-976d-46ac-940c-b132f64d7381\", \"type\": \"section\", \"value\": {\"anchor\": \"visit\", \"content\": [{\"id\": \"780fe99f-4159-44f3-9ac7-99f89f585700\", \"type\": \"text\", \"value\": \"

One Gateway Plaza
Los Angeles, CA 90012-2952

Metro Headquarters is located on the corner of Cesar E. Chavez Ave. and Vignes St.

Get directions to Metro Headquarters.

\"}], \"heading\": \"Visit Metro Headquarters Building\"}}, {\"id\": \"e8e5d832-9607-405e-921d-bcdcb18ee160\", \"type\": \"section\", \"value\": {\"anchor\": \"data\", \"content\": [{\"id\": \"afdae4a4-3865-4a7e-b2aa-abb766d93c7d\", \"type\": \"text\", \"value\": \"

The data for this website comes from the Metro board reports site, a system built by Granicus using their Legistar Legislative Management Suite.

With the help of the Legistar Web API, we collect data daily and store it using the Open Civic Data standard and platform. Open Civic Data standardizes information about people, organizations, events and bills at any level of government: it was built in collaboration with The Sunlight Foundation, Google, Granicus, and Open North.

\"}], \"heading\": \"Data\"}}, {\"id\": \"4d81311a-e4a8-47a7-85fa-e3c984389e42\", \"type\": \"section\", \"value\": {\"anchor\": \"credits\", \"content\": [{\"id\": \"faef24a9-ef94-4206-8913-37e1330061ea\", \"type\": \"text\", \"value\": \"

This site represents a collaborative effort of Metro\\u2019s Office of the CEO, Office of Board Administration, and Research & Records, Information Management, to ensure Board activity is transparent and easily accessible for the public.

The site was built by DataMade, a civic technology company. They build open source technology using open data to empower journalists, researchers, governments and advocacy organizations.

\"}], \"heading\": \"Credits\"}}, {\"id\": \"7feeebc5-aad8-4175-bd4e-81027284f76b\", \"type\": \"section\", \"value\": {\"anchor\": \"contact\", \"content\": [{\"id\": \"c376852b-d5e6-43d6-9fca-e6fe682ab51f\", \"type\": \"text\", \"value\": \"

For questions about or comments for the Metro Board, please contact boardclerk@metro.net. Written public comment can be mailed to:

Office of Board Administration
1 Gateway Plaza, Mail Stop 99-3-1
Los Angeles, CA 90012

If you are commenting on a specific item, please include the item number and your position on it - for, against, general comment, or item needs more consideration - in your message. Written public comment (via mail or email) must be received by 5pm the evening prior to the meeting where the item will be considered.

For questions about this website or Board records, please email boardreport@metro.net.

\"}], \"heading\": \"Contact us\"}}]" + } +}, +{ + "model": "wagtailusers.userprofile", + "pk": 1, + "fields": { + "user": [ + "hannah" + ], + "submitted_notifications": true, + "approved_notifications": true, + "rejected_notifications": true, + "updated_comments_notifications": true, + "preferred_language": "", + "current_time_zone": "", + "avatar": "", + "dismissibles": {}, + "theme": "system" + } +}, +{ + "model": "wagtailimages.image", + "pk": 1, + "fields": { + "collection": 1, + "title": "datamade_logo_sm", + "file": "original_images/datamade_logo_sm.png", + "width": 192, + "height": 40, + "created_at": "2024-11-20T16:19:04.189Z", + "uploaded_by_user": [ + "hannah" + ], + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 11601, + "file_hash": "c734010a4df828c8526e454895dd427619e36281" + } +}, +{ + "model": "wagtailimages.rendition", + "pk": 1, + "fields": { + "filter_spec": "max-800x600", + "file": "images/datamade_logo_sm.max-800x600.png", + "width": 192, + "height": 40, + "focal_point_key": "", + "image": 1 + } +}, +{ + "model": "wagtailimages.rendition", + "pk": 2, + "fields": { + "filter_spec": "width-500", + "file": "images/datamade_logo_sm.width-500.png", + "width": 192, + "height": 40, + "focal_point_key": "", + "image": 1 + } +}, +{ + "model": "wagtailimages.rendition", + "pk": 3, + "fields": { + "filter_spec": "max-165x165", + "file": "images/datamade_logo_sm.max-165x165.png", + "width": 165, + "height": 34, + "focal_point_key": "", + "image": 1 + } +}, +{ + "model": "wagtailcore.locale", + "pk": 1, + "fields": { + "language_code": "en" + } +}, +{ + "model": "wagtailcore.site", + "pk": 1, + "fields": { + "hostname": "localhost", + "port": 80, + "site_name": "", + "root_page": 2, + "is_default_site": true + } +}, +{ + "model": "wagtailcore.collection", + "pk": 1, + "fields": { + "path": "0001", + "depth": 1, + "numchild": 0, + "name": "Root" + } +}, +{ + "model": "wagtailcore.referenceindex", + "pk": 1, + "fields": { + "content_type": [ + "wagtailimages", + "image" + ], + "base_content_type": [ + "wagtailimages", + "image" + ], + "object_id": "1", + "to_content_type": [ + "wagtailcore", + "collection" + ], + "to_object_id": "1", + "model_path": "collection", + "content_path": "collection", + "content_path_hash": "b40b1263-e929-57f2-a7f8-9dbce56b887b" + } +}, +{ + "model": "wagtailcore.referenceindex", + "pk": 2, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "base_content_type": [ + "wagtailcore", + "page" + ], + "object_id": "3", + "to_content_type": [ + "wagtailimages", + "image" + ], + "to_object_id": "1", + "model_path": "body.section.content.text", + "content_path": "body.4d81311a-e4a8-47a7-85fa-e3c984389e42.content.faef24a9-ef94-4206-8913-37e1330061ea", + "content_path_hash": "3338c073-7d90-511e-8368-43e4475f071b" + } +}, +{ + "model": "wagtailcore.referenceindex", + "pk": 3, + "fields": { + "content_type": [ + "wagtailimages", + "image" + ], + "base_content_type": [ + "wagtailimages", + "image" + ], + "object_id": "2", + "to_content_type": [ + "wagtailcore", + "collection" + ], + "to_object_id": "1", + "model_path": "collection", + "content_path": "collection", + "content_path_hash": "b40b1263-e929-57f2-a7f8-9dbce56b887b" + } +}, +{ + "model": "wagtailcore.page", + "pk": 1, + "fields": { + "path": "0001", + "depth": 1, + "numchild": 1, + "translation_key": "73103789-679f-4802-bf61-e760a9f500db", + "locale": 1, + "latest_revision": null, + "live": true, + "has_unpublished_changes": false, + "first_published_at": null, + "last_published_at": null, + "live_revision": null, + "go_live_at": null, + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "locked_by": null, + "title": "Root", + "draft_title": "Root", + "slug": "root", + "content_type": [ + "wagtailcore", + "page" + ], + "url_path": "/", + "owner": null, + "seo_title": "", + "show_in_menus": false, + "search_description": "", + "latest_revision_created_at": null, + "alias_of": null + } +}, +{ + "model": "wagtailcore.page", + "pk": 2, + "fields": { + "path": "00010001", + "depth": 2, + "numchild": 1, + "translation_key": "3163da97-7779-470f-8f98-cc72d0d86064", + "locale": 1, + "latest_revision": 10, + "live": true, + "has_unpublished_changes": false, + "first_published_at": "2024-11-21T14:49:22.762Z", + "last_published_at": "2024-11-21T14:49:22.762Z", + "live_revision": 10, + "go_live_at": null, + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "locked_by": null, + "title": "LA Metro Board Agendas", + "draft_title": "LA Metro Board Agendas", + "slug": "home", + "content_type": [ + "wagtailcore", + "page" + ], + "url_path": "/home/", + "owner": null, + "seo_title": "", + "show_in_menus": false, + "search_description": "", + "latest_revision_created_at": "2024-11-21T14:49:22.714Z", + "alias_of": null + } +}, +{ + "model": "wagtailcore.page", + "pk": 3, + "fields": { + "path": "000100010001", + "depth": 3, + "numchild": 0, + "translation_key": "cd676e32-0e4a-4e60-aa61-17e11ed9e8de", + "locale": 1, + "latest_revision": 9, + "live": true, + "has_unpublished_changes": false, + "first_published_at": "2024-11-20T16:14:42.213Z", + "last_published_at": "2024-11-21T14:10:05.826Z", + "live_revision": 9, + "go_live_at": null, + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "locked_by": null, + "title": "About us", + "draft_title": "About us", + "slug": "about", + "content_type": [ + "lametro", + "aboutpage" + ], + "url_path": "/home/about/", + "owner": [ + "hannah" + ], + "seo_title": "", + "show_in_menus": false, + "search_description": "", + "latest_revision_created_at": "2024-11-21T14:10:05.780Z", + "alias_of": null + } +}, +{ + "model": "wagtailcore.revision", + "pk": 1, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "base_content_type": [ + "wagtailcore", + "page" + ], + "object_id": "3", + "submitted_for_moderation": false, + "created_at": "2024-11-20T16:14:38.047Z", + "user": [ + "hannah" + ], + "object_str": "About us", + "content": { + "pk": 3, + "body": "[{\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"text\", \"value\": \"

This site offers tools for understanding and tracking the activity of the Board Members of the Los Angeles County Metropolitan Transportation Authority. It connects Los Angeles County residents to Metro policy makers, for greater online public dialogue about issues related to transit services and programs.

With this site, you can:

\", \"id\": \"cccde923-3381-4213-82ef-e50e21f123f6\"}], \"anchor\": \"\"}, \"id\": \"fffd0bb0-3c05-4553-aad3-849517d38c1c\"}, {\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"navigation\", \"value\": null, \"id\": \"fcf5d8a4-6e06-4e7e-b3dd-82eac2e292e0\"}], \"anchor\": \"\"}, \"id\": \"fed3bfcd-3067-423e-ba8d-e62517e68e1a\"}, {\"type\": \"section\", \"value\": {\"heading\": \"What is the Metro Board of Directors, and how does it work?\", \"content\": [{\"type\": \"text\", \"value\": \"

The Los Angeles County Metropolitan Transportation Authority (Metro) was created by the State of California to set policy, coordinate, plan, fund, build, and operate transit services and transportation programs throughout Los Angeles County. Metro supports the transportation improvement programs of the 88 cities and 16 municipal transit operators within Los Angeles County, as well as LA's paratransit provider, ASI, and its regional commuter rail service provider, Metrolink.

Board of Directors

The Board of Directors is comprised of representatives from the City of Los Angeles, the County of Los Angeles, the other incorporated cities and unincorporated areas in Los Angeles County, and a non-voting member representing the Governor. The full Board typically meets once a month to review budgets, contracts, policies and programs, and make decisions about what to adopt, fund and build.

Board Member Appointments

City of Los Angeles representatives include the Mayor of Los Angeles and the Mayor\\u2019s three appointees. Los Angeles County representatives include the Los Angeles County Board of Supervisors representative of each of the five county districts. Representatives from the other incorporated cities and unincorporated areas in Los Angeles County are appointed by the City Selection Committee.

The Los Angeles County City Selection Committee is a group comprised of the mayor of each city within Los Angeles County, excluding the City of Los Angeles. Within the Committee, there are four Subcommittees, one for each Sector of the county, comprised of the mayor of each city within each Sector:

Each Sector Subcommittee nominates one mayor or council member from the Sector to serve on the Metro Board (unless a motion to nominate multiple candidates is made, seconded and passed by a majority weighted vote). Nominees are approved and appointed to the Metro Board by the entire City Selection Committee, whereby each city within the Committee may cast one \\u201cyea\\u201d or \\u201cnay\\u201d vote for every 10,000 residents.

Full documentation of this process can be found in the Los Angeles County City Selection Committee Rules and Regulations for Appointments to Los Angeles County Metropolitan Transportation Authority .

Board Chair

Each Metro Board Chair serves a one year term, from July 1st to June 30th. The Chair\\u2019s term rotates annually between the Mayor of Los Angeles, a member of the Los Angeles County Board of Supervisors, and one of the City Selection Committee Members.

Board Committees

Per the Administrative Ordinance, the Board of Directors has 5 standing committees. The Chair of the Board of Directors may designate other standing and ad hoc committees subject to concurrence of the Board of Directors. Learn more here.

Board Meetings

Learn more about Metro Board of Directors meetings, and view meetings and agendas here.

Board Room Rules and Procedures

Metro Board follows specific procedures to hold meetings and organize its members.

Read about all Metro Rules & Procedures.

Code of Conduct

\", \"id\": \"7d711eb3-f937-4900-8e48-164de929ca99\"}], \"anchor\": \"about-la-metro\"}, \"id\": \"6861258a-da02-48ed-a21c-c8283ac588df\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Types of Board Reports\", \"content\": [{\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Type\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Agreement

\", \"

A negotiated arrangement between parties.

\"]}, {\"values\": [\"

Application

\", \"

A formal request, usually for state and federal funding programs.

\"]}]}, \"id\": \"8de5339a-e596-422a-96e9-1d348ac977c4\"}], \"anchor\": \"\"}, \"id\": \"ff0bd369-1329-4fce-a5ab-40ae385c31d7\"}]", + "live": false, + "path": "000100010001", + "slug": "about-us", + "depth": 3, + "owner": 1, + "title": "About us", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 0, + "url_path": "/home/about-us/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "draft_title": "About us", + "content_type": 99, + "live_revision": null, + "show_in_menus": false, + "latest_revision": null, + "translation_key": "cd676e32-0e4a-4e60-aa61-17e11ed9e8de", + "last_published_at": null, + "first_published_at": null, + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": false, + "latest_revision_created_at": null + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.revision", + "pk": 2, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "base_content_type": [ + "wagtailcore", + "page" + ], + "object_id": "3", + "submitted_for_moderation": false, + "created_at": "2024-11-20T16:14:42.192Z", + "user": [ + "hannah" + ], + "object_str": "About us", + "content": { + "pk": 3, + "body": "[{\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"text\", \"value\": \"

This site offers tools for understanding and tracking the activity of the Board Members of the Los Angeles County Metropolitan Transportation Authority. It connects Los Angeles County residents to Metro policy makers, for greater online public dialogue about issues related to transit services and programs.

With this site, you can:

\", \"id\": \"cccde923-3381-4213-82ef-e50e21f123f6\"}], \"anchor\": \"\"}, \"id\": \"fffd0bb0-3c05-4553-aad3-849517d38c1c\"}, {\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"navigation\", \"value\": null, \"id\": \"fcf5d8a4-6e06-4e7e-b3dd-82eac2e292e0\"}], \"anchor\": \"\"}, \"id\": \"fed3bfcd-3067-423e-ba8d-e62517e68e1a\"}, {\"type\": \"section\", \"value\": {\"heading\": \"What is the Metro Board of Directors, and how does it work?\", \"content\": [{\"type\": \"text\", \"value\": \"

The Los Angeles County Metropolitan Transportation Authority (Metro) was created by the State of California to set policy, coordinate, plan, fund, build, and operate transit services and transportation programs throughout Los Angeles County. Metro supports the transportation improvement programs of the 88 cities and 16 municipal transit operators within Los Angeles County, as well as LA's paratransit provider, ASI, and its regional commuter rail service provider, Metrolink.

Board of Directors

The Board of Directors is comprised of representatives from the City of Los Angeles, the County of Los Angeles, the other incorporated cities and unincorporated areas in Los Angeles County, and a non-voting member representing the Governor. The full Board typically meets once a month to review budgets, contracts, policies and programs, and make decisions about what to adopt, fund and build.

Board Member Appointments

City of Los Angeles representatives include the Mayor of Los Angeles and the Mayor\\u2019s three appointees. Los Angeles County representatives include the Los Angeles County Board of Supervisors representative of each of the five county districts. Representatives from the other incorporated cities and unincorporated areas in Los Angeles County are appointed by the City Selection Committee.

The Los Angeles County City Selection Committee is a group comprised of the mayor of each city within Los Angeles County, excluding the City of Los Angeles. Within the Committee, there are four Subcommittees, one for each Sector of the county, comprised of the mayor of each city within each Sector:

Each Sector Subcommittee nominates one mayor or council member from the Sector to serve on the Metro Board (unless a motion to nominate multiple candidates is made, seconded and passed by a majority weighted vote). Nominees are approved and appointed to the Metro Board by the entire City Selection Committee, whereby each city within the Committee may cast one \\u201cyea\\u201d or \\u201cnay\\u201d vote for every 10,000 residents.

Full documentation of this process can be found in the Los Angeles County City Selection Committee Rules and Regulations for Appointments to Los Angeles County Metropolitan Transportation Authority .

Board Chair

Each Metro Board Chair serves a one year term, from July 1st to June 30th. The Chair\\u2019s term rotates annually between the Mayor of Los Angeles, a member of the Los Angeles County Board of Supervisors, and one of the City Selection Committee Members.

Board Committees

Per the Administrative Ordinance, the Board of Directors has 5 standing committees. The Chair of the Board of Directors may designate other standing and ad hoc committees subject to concurrence of the Board of Directors. Learn more here.

Board Meetings

Learn more about Metro Board of Directors meetings, and view meetings and agendas here.

Board Room Rules and Procedures

Metro Board follows specific procedures to hold meetings and organize its members.

Read about all Metro Rules & Procedures.

Code of Conduct

\", \"id\": \"7d711eb3-f937-4900-8e48-164de929ca99\"}], \"anchor\": \"about-la-metro\"}, \"id\": \"6861258a-da02-48ed-a21c-c8283ac588df\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Types of Board Reports\", \"content\": [{\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Type\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Agreement

\", \"

A negotiated arrangement between parties.

\"]}, {\"values\": [\"

Application

\", \"

A formal request, usually for state and federal funding programs.

\"]}]}, \"id\": \"8de5339a-e596-422a-96e9-1d348ac977c4\"}], \"anchor\": \"\"}, \"id\": \"ff0bd369-1329-4fce-a5ab-40ae385c31d7\"}]", + "live": false, + "path": "000100010001", + "slug": "about-us", + "depth": 3, + "owner": 1, + "title": "About us", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 0, + "url_path": "/home/about-us/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "draft_title": "About us", + "content_type": 99, + "live_revision": null, + "show_in_menus": false, + "latest_revision": 1, + "translation_key": "cd676e32-0e4a-4e60-aa61-17e11ed9e8de", + "last_published_at": null, + "first_published_at": null, + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": true, + "latest_revision_created_at": "2024-11-20T16:14:38.047Z" + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.revision", + "pk": 3, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "base_content_type": [ + "wagtailcore", + "page" + ], + "object_id": "3", + "submitted_for_moderation": false, + "created_at": "2024-11-20T16:17:55.798Z", + "user": [ + "hannah" + ], + "object_str": "About us", + "content": { + "pk": 3, + "body": "[{\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"text\", \"value\": \"

This site offers tools for understanding and tracking the activity of the Board Members of the Los Angeles County Metropolitan Transportation Authority. It connects Los Angeles County residents to Metro policy makers, for greater online public dialogue about issues related to transit services and programs.

With this site, you can:

\", \"id\": \"cccde923-3381-4213-82ef-e50e21f123f6\"}], \"anchor\": \"\"}, \"id\": \"fffd0bb0-3c05-4553-aad3-849517d38c1c\"}, {\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"navigation\", \"value\": null, \"id\": \"fcf5d8a4-6e06-4e7e-b3dd-82eac2e292e0\"}], \"anchor\": \"\"}, \"id\": \"fed3bfcd-3067-423e-ba8d-e62517e68e1a\"}, {\"type\": \"section\", \"value\": {\"heading\": \"What is the Metro Board of Directors, and how does it work?\", \"content\": [{\"type\": \"text\", \"value\": \"

The Los Angeles County Metropolitan Transportation Authority (Metro) was created by the State of California to set policy, coordinate, plan, fund, build, and operate transit services and transportation programs throughout Los Angeles County. Metro supports the transportation improvement programs of the 88 cities and 16 municipal transit operators within Los Angeles County, as well as LA's paratransit provider, ASI, and its regional commuter rail service provider, Metrolink.

Board of Directors

The Board of Directors is comprised of representatives from the City of Los Angeles, the County of Los Angeles, the other incorporated cities and unincorporated areas in Los Angeles County, and a non-voting member representing the Governor. The full Board typically meets once a month to review budgets, contracts, policies and programs, and make decisions about what to adopt, fund and build.

Board Member Appointments

City of Los Angeles representatives include the Mayor of Los Angeles and the Mayor\\u2019s three appointees. Los Angeles County representatives include the Los Angeles County Board of Supervisors representative of each of the five county districts. Representatives from the other incorporated cities and unincorporated areas in Los Angeles County are appointed by the City Selection Committee.

The Los Angeles County City Selection Committee is a group comprised of the mayor of each city within Los Angeles County, excluding the City of Los Angeles. Within the Committee, there are four Subcommittees, one for each Sector of the county, comprised of the mayor of each city within each Sector:

Each Sector Subcommittee nominates one mayor or council member from the Sector to serve on the Metro Board (unless a motion to nominate multiple candidates is made, seconded and passed by a majority weighted vote). Nominees are approved and appointed to the Metro Board by the entire City Selection Committee, whereby each city within the Committee may cast one \\u201cyea\\u201d or \\u201cnay\\u201d vote for every 10,000 residents.

Full documentation of this process can be found in the Los Angeles County City Selection Committee Rules and Regulations for Appointments to Los Angeles County Metropolitan Transportation Authority .

Board Chair

Each Metro Board Chair serves a one year term, from July 1st to June 30th. The Chair\\u2019s term rotates annually between the Mayor of Los Angeles, a member of the Los Angeles County Board of Supervisors, and one of the City Selection Committee Members.

Board Committees

Per the Administrative Ordinance, the Board of Directors has 5 standing committees. The Chair of the Board of Directors may designate other standing and ad hoc committees subject to concurrence of the Board of Directors. Learn more here.

Board Meetings

Learn more about Metro Board of Directors meetings, and view meetings and agendas here.

\", \"id\": \"7d711eb3-f937-4900-8e48-164de929ca99\"}], \"anchor\": \"about-la-metro\"}, \"id\": \"6861258a-da02-48ed-a21c-c8283ac588df\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Room Rules and Procedures\", \"content\": [{\"type\": \"text\", \"value\": \"

Metro Board follows specific procedures to hold meetings and organize its members.

Read about all Metro Rules & Procedures.

Code of Conduct

\", \"id\": \"be011f8d-c089-4b2e-9ba4-e82476944f89\"}], \"anchor\": \"procedures\"}, \"id\": \"30d5c8c4-29b8-4dcd-8ca3-ce4d7c3a6957\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Types of Board Reports\", \"content\": [{\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Type\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Agreement

\", \"

A negotiated arrangement between parties.

\"]}, {\"values\": [\"

Application

\", \"

A formal request, usually for state and federal funding programs.

\"]}, {\"values\": [\"

Appointment

\", \"

The Board of Directors makes appointments to various committees created for the purpose of collecting and reviewing public input such as the Citizens Advisory Council and the Metro Service Councils, and also to external organizations that include representation from Metro such as Metrolink.

\"]}]}, \"id\": \"8de5339a-e596-422a-96e9-1d348ac977c4\"}], \"anchor\": \"\"}, \"id\": \"ff0bd369-1329-4fce-a5ab-40ae385c31d7\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Report Statuses\", \"content\": [{\"type\": \"text\", \"value\": \"

Each Metro board report has one of 22 posible statuses:

\", \"id\": \"52c0a408-c3a2-4ca6-aca7-7b855322c399\"}, {\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Status\"}, {\"type\": \"rich_text\", \"heading\": \"Displayed Status\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Adopted

\", \"

Adopted

\", \"

Item was adopted by a majority vote of the Board.

\"]}, {\"values\": [\"

Adopted As Amended

\", \"

Adopted

\", \"

Item was adopted as amended by a majority vote of the Board.

\"]}, {\"values\": [\"

Approved

\", \"

Approved

\", \"

Item was approved by a majority vote of the Board.

\"]}]}, \"id\": \"c0885150-64d7-4181-8ddb-af704e697c35\"}], \"anchor\": \"\"}, \"id\": \"df0eabeb-b23a-4747-8d95-9057204a910b\"}]", + "live": true, + "path": "000100010001", + "slug": "about-us", + "depth": 3, + "owner": 1, + "title": "About us", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 0, + "url_path": "/home/about-us/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "draft_title": "About us", + "content_type": 99, + "live_revision": 2, + "show_in_menus": false, + "latest_revision": 2, + "translation_key": "cd676e32-0e4a-4e60-aa61-17e11ed9e8de", + "last_published_at": "2024-11-20T16:14:42.213Z", + "first_published_at": "2024-11-20T16:14:42.213Z", + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": false, + "latest_revision_created_at": "2024-11-20T16:14:42.192Z" + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.revision", + "pk": 4, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "base_content_type": [ + "wagtailcore", + "page" + ], + "object_id": "3", + "submitted_for_moderation": false, + "created_at": "2024-11-20T16:21:02.185Z", + "user": [ + "hannah" + ], + "object_str": "About us", + "content": { + "pk": 3, + "body": "[{\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"text\", \"value\": \"

This site offers tools for understanding and tracking the activity of the Board Members of the Los Angeles County Metropolitan Transportation Authority. It connects Los Angeles County residents to Metro policy makers, for greater online public dialogue about issues related to transit services and programs.

With this site, you can:

\", \"id\": \"cccde923-3381-4213-82ef-e50e21f123f6\"}], \"anchor\": \"\"}, \"id\": \"fffd0bb0-3c05-4553-aad3-849517d38c1c\"}, {\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"navigation\", \"value\": null, \"id\": \"fcf5d8a4-6e06-4e7e-b3dd-82eac2e292e0\"}], \"anchor\": \"\"}, \"id\": \"fed3bfcd-3067-423e-ba8d-e62517e68e1a\"}, {\"type\": \"section\", \"value\": {\"heading\": \"What is the Metro Board of Directors, and how does it work?\", \"content\": [{\"type\": \"text\", \"value\": \"

The Los Angeles County Metropolitan Transportation Authority (Metro) was created by the State of California to set policy, coordinate, plan, fund, build, and operate transit services and transportation programs throughout Los Angeles County. Metro supports the transportation improvement programs of the 88 cities and 16 municipal transit operators within Los Angeles County, as well as LA's paratransit provider, ASI, and its regional commuter rail service provider, Metrolink.

Board of Directors

The Board of Directors is comprised of representatives from the City of Los Angeles, the County of Los Angeles, the other incorporated cities and unincorporated areas in Los Angeles County, and a non-voting member representing the Governor. The full Board typically meets once a month to review budgets, contracts, policies and programs, and make decisions about what to adopt, fund and build.

Board Member Appointments

City of Los Angeles representatives include the Mayor of Los Angeles and the Mayor\\u2019s three appointees. Los Angeles County representatives include the Los Angeles County Board of Supervisors representative of each of the five county districts. Representatives from the other incorporated cities and unincorporated areas in Los Angeles County are appointed by the City Selection Committee.

The Los Angeles County City Selection Committee is a group comprised of the mayor of each city within Los Angeles County, excluding the City of Los Angeles. Within the Committee, there are four Subcommittees, one for each Sector of the county, comprised of the mayor of each city within each Sector:

Each Sector Subcommittee nominates one mayor or council member from the Sector to serve on the Metro Board (unless a motion to nominate multiple candidates is made, seconded and passed by a majority weighted vote). Nominees are approved and appointed to the Metro Board by the entire City Selection Committee, whereby each city within the Committee may cast one \\u201cyea\\u201d or \\u201cnay\\u201d vote for every 10,000 residents.

Full documentation of this process can be found in the Los Angeles County City Selection Committee Rules and Regulations for Appointments to Los Angeles County Metropolitan Transportation Authority .

Board Chair

Each Metro Board Chair serves a one year term, from July 1st to June 30th. The Chair\\u2019s term rotates annually between the Mayor of Los Angeles, a member of the Los Angeles County Board of Supervisors, and one of the City Selection Committee Members.

Board Committees

Per the Administrative Ordinance, the Board of Directors has 5 standing committees. The Chair of the Board of Directors may designate other standing and ad hoc committees subject to concurrence of the Board of Directors. Learn more here.

Board Meetings

Learn more about Metro Board of Directors meetings, and view meetings and agendas here.

\", \"id\": \"7d711eb3-f937-4900-8e48-164de929ca99\"}], \"anchor\": \"about-la-metro\"}, \"id\": \"6861258a-da02-48ed-a21c-c8283ac588df\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Room Rules and Procedures\", \"content\": [{\"type\": \"text\", \"value\": \"

Metro Board follows specific procedures to hold meetings and organize its members.

Read about all Metro Rules & Procedures.

Code of Conduct

\", \"id\": \"be011f8d-c089-4b2e-9ba4-e82476944f89\"}], \"anchor\": \"procedures\"}, \"id\": \"30d5c8c4-29b8-4dcd-8ca3-ce4d7c3a6957\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Types of Board Reports\", \"content\": [{\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Type\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Agreement

\", \"

A negotiated arrangement between parties.

\"]}, {\"values\": [\"

Application

\", \"

A formal request, usually for state and federal funding programs.

\"]}, {\"values\": [\"

Appointment

\", \"

The Board of Directors makes appointments to various committees created for the purpose of collecting and reviewing public input such as the Citizens Advisory Council and the Metro Service Councils, and also to external organizations that include representation from Metro such as Metrolink.

\"]}]}, \"id\": \"8de5339a-e596-422a-96e9-1d348ac977c4\"}], \"anchor\": \"\"}, \"id\": \"ff0bd369-1329-4fce-a5ab-40ae385c31d7\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Report Statuses\", \"content\": [{\"type\": \"text\", \"value\": \"

Each Metro board report has one of 22 posible statuses:

\", \"id\": \"52c0a408-c3a2-4ca6-aca7-7b855322c399\"}, {\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Status\"}, {\"type\": \"rich_text\", \"heading\": \"Displayed Status\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Adopted

\", \"

Adopted

\", \"

Item was adopted by a majority vote of the Board.

\"]}, {\"values\": [\"

Adopted As Amended

\", \"

Adopted

\", \"

Item was adopted as amended by a majority vote of the Board.

\"]}, {\"values\": [\"

Approved

\", \"

Approved

\", \"

Item was approved by a majority vote of the Board.

\"]}]}, \"id\": \"c0885150-64d7-4181-8ddb-af704e697c35\"}], \"anchor\": \"\"}, \"id\": \"df0eabeb-b23a-4747-8d95-9057204a910b\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Visit Metro Headquarters Building\", \"content\": [{\"type\": \"text\", \"value\": \"

One Gateway Plaza
Los Angeles, CA 90012-2952

Metro Headquarters is located on the corner of Cesar E. Chavez Ave. and Vignes St.

Get directions to Metro Headquarters.

\", \"id\": \"780fe99f-4159-44f3-9ac7-99f89f585700\"}], \"anchor\": \"visit\"}, \"id\": \"8655a141-976d-46ac-940c-b132f64d7381\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Data\", \"content\": [{\"type\": \"text\", \"value\": \"

The data for this website comes from the Metro board reports site, a system built by Granicus using their Legistar Legislative Management Suite.

With the help of the Legistar Web API, we collect data daily and store it using the Open Civic Data standard and platform. Open Civic Data standardizes information about people, organizations, events and bills at any level of government: it was built in collaboration with The Sunlight Foundation, Google, Granicus, and Open North.

\", \"id\": \"afdae4a4-3865-4a7e-b2aa-abb766d93c7d\"}], \"anchor\": \"data\"}, \"id\": \"e8e5d832-9607-405e-921d-bcdcb18ee160\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Credits\", \"content\": [{\"type\": \"text\", \"value\": \"

This site represents a collaborative effort of Metro\\u2019s Office of the CEO, Office of Board Administration, and Research & Records, Information Management, to ensure Board activity is transparent and easily accessible for the public.

The site was built by DataMade, a civic technology company. They build open source technology using open data to empower journalists, researchers, governments and advocacy organizations.

\", \"id\": \"faef24a9-ef94-4206-8913-37e1330061ea\"}], \"anchor\": \"credits\"}, \"id\": \"4d81311a-e4a8-47a7-85fa-e3c984389e42\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Contact us\", \"content\": [{\"type\": \"text\", \"value\": \"

For questions about or comments for the Metro Board, please contact boardclerk@metro.net. Written public comment can be mailed to:

Office of Board Administration
1 Gateway Plaza, Mail Stop 99-3-1
Los Angeles, CA 90012

If you are commenting on a specific item, please include the item number and your position on it - for, against, general comment, or item needs more consideration - in your message. Written public comment (via mail or email) must be received by 5pm the evening prior to the meeting where the item will be considered.

For questions about this website or Board records, please email boardreport@metro.net.

\", \"id\": \"c376852b-d5e6-43d6-9fca-e6fe682ab51f\"}], \"anchor\": \"contact\"}, \"id\": \"7feeebc5-aad8-4175-bd4e-81027284f76b\"}]", + "live": true, + "path": "000100010001", + "slug": "about-us", + "depth": 3, + "owner": 1, + "title": "About us", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 0, + "url_path": "/home/about-us/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "draft_title": "About us", + "content_type": 99, + "live_revision": 2, + "show_in_menus": false, + "latest_revision": 3, + "translation_key": "cd676e32-0e4a-4e60-aa61-17e11ed9e8de", + "last_published_at": "2024-11-20T16:14:42.213Z", + "first_published_at": "2024-11-20T16:14:42.213Z", + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": true, + "latest_revision_created_at": "2024-11-20T16:17:55.798Z" + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.revision", + "pk": 5, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "base_content_type": [ + "wagtailcore", + "page" + ], + "object_id": "3", + "submitted_for_moderation": false, + "created_at": "2024-11-20T16:21:05.183Z", + "user": [ + "hannah" + ], + "object_str": "About us", + "content": { + "pk": 3, + "body": "[{\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"text\", \"value\": \"

This site offers tools for understanding and tracking the activity of the Board Members of the Los Angeles County Metropolitan Transportation Authority. It connects Los Angeles County residents to Metro policy makers, for greater online public dialogue about issues related to transit services and programs.

With this site, you can:

\", \"id\": \"cccde923-3381-4213-82ef-e50e21f123f6\"}], \"anchor\": \"\"}, \"id\": \"fffd0bb0-3c05-4553-aad3-849517d38c1c\"}, {\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"navigation\", \"value\": null, \"id\": \"fcf5d8a4-6e06-4e7e-b3dd-82eac2e292e0\"}], \"anchor\": \"\"}, \"id\": \"fed3bfcd-3067-423e-ba8d-e62517e68e1a\"}, {\"type\": \"section\", \"value\": {\"heading\": \"What is the Metro Board of Directors, and how does it work?\", \"content\": [{\"type\": \"text\", \"value\": \"

The Los Angeles County Metropolitan Transportation Authority (Metro) was created by the State of California to set policy, coordinate, plan, fund, build, and operate transit services and transportation programs throughout Los Angeles County. Metro supports the transportation improvement programs of the 88 cities and 16 municipal transit operators within Los Angeles County, as well as LA's paratransit provider, ASI, and its regional commuter rail service provider, Metrolink.

Board of Directors

The Board of Directors is comprised of representatives from the City of Los Angeles, the County of Los Angeles, the other incorporated cities and unincorporated areas in Los Angeles County, and a non-voting member representing the Governor. The full Board typically meets once a month to review budgets, contracts, policies and programs, and make decisions about what to adopt, fund and build.

Board Member Appointments

City of Los Angeles representatives include the Mayor of Los Angeles and the Mayor\\u2019s three appointees. Los Angeles County representatives include the Los Angeles County Board of Supervisors representative of each of the five county districts. Representatives from the other incorporated cities and unincorporated areas in Los Angeles County are appointed by the City Selection Committee.

The Los Angeles County City Selection Committee is a group comprised of the mayor of each city within Los Angeles County, excluding the City of Los Angeles. Within the Committee, there are four Subcommittees, one for each Sector of the county, comprised of the mayor of each city within each Sector:

Each Sector Subcommittee nominates one mayor or council member from the Sector to serve on the Metro Board (unless a motion to nominate multiple candidates is made, seconded and passed by a majority weighted vote). Nominees are approved and appointed to the Metro Board by the entire City Selection Committee, whereby each city within the Committee may cast one \\u201cyea\\u201d or \\u201cnay\\u201d vote for every 10,000 residents.

Full documentation of this process can be found in the Los Angeles County City Selection Committee Rules and Regulations for Appointments to Los Angeles County Metropolitan Transportation Authority .

Board Chair

Each Metro Board Chair serves a one year term, from July 1st to June 30th. The Chair\\u2019s term rotates annually between the Mayor of Los Angeles, a member of the Los Angeles County Board of Supervisors, and one of the City Selection Committee Members.

Board Committees

Per the Administrative Ordinance, the Board of Directors has 5 standing committees. The Chair of the Board of Directors may designate other standing and ad hoc committees subject to concurrence of the Board of Directors. Learn more here.

Board Meetings

Learn more about Metro Board of Directors meetings, and view meetings and agendas here.

\", \"id\": \"7d711eb3-f937-4900-8e48-164de929ca99\"}], \"anchor\": \"about-la-metro\"}, \"id\": \"6861258a-da02-48ed-a21c-c8283ac588df\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Room Rules and Procedures\", \"content\": [{\"type\": \"text\", \"value\": \"

Metro Board follows specific procedures to hold meetings and organize its members.

Read about all Metro Rules & Procedures.

Code of Conduct

\", \"id\": \"be011f8d-c089-4b2e-9ba4-e82476944f89\"}], \"anchor\": \"procedures\"}, \"id\": \"30d5c8c4-29b8-4dcd-8ca3-ce4d7c3a6957\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Types of Board Reports\", \"content\": [{\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Type\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Agreement

\", \"

A negotiated arrangement between parties.

\"]}, {\"values\": [\"

Application

\", \"

A formal request, usually for state and federal funding programs.

\"]}, {\"values\": [\"

Appointment

\", \"

The Board of Directors makes appointments to various committees created for the purpose of collecting and reviewing public input such as the Citizens Advisory Council and the Metro Service Councils, and also to external organizations that include representation from Metro such as Metrolink.

\"]}]}, \"id\": \"8de5339a-e596-422a-96e9-1d348ac977c4\"}], \"anchor\": \"\"}, \"id\": \"ff0bd369-1329-4fce-a5ab-40ae385c31d7\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Report Statuses\", \"content\": [{\"type\": \"text\", \"value\": \"

Each Metro board report has one of 22 posible statuses:

\", \"id\": \"52c0a408-c3a2-4ca6-aca7-7b855322c399\"}, {\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Status\"}, {\"type\": \"rich_text\", \"heading\": \"Displayed Status\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Adopted

\", \"

Adopted

\", \"

Item was adopted by a majority vote of the Board.

\"]}, {\"values\": [\"

Adopted As Amended

\", \"

Adopted

\", \"

Item was adopted as amended by a majority vote of the Board.

\"]}, {\"values\": [\"

Approved

\", \"

Approved

\", \"

Item was approved by a majority vote of the Board.

\"]}]}, \"id\": \"c0885150-64d7-4181-8ddb-af704e697c35\"}], \"anchor\": \"\"}, \"id\": \"df0eabeb-b23a-4747-8d95-9057204a910b\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Visit Metro Headquarters Building\", \"content\": [{\"type\": \"text\", \"value\": \"

One Gateway Plaza
Los Angeles, CA 90012-2952

Metro Headquarters is located on the corner of Cesar E. Chavez Ave. and Vignes St.

Get directions to Metro Headquarters.

\", \"id\": \"780fe99f-4159-44f3-9ac7-99f89f585700\"}], \"anchor\": \"visit\"}, \"id\": \"8655a141-976d-46ac-940c-b132f64d7381\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Data\", \"content\": [{\"type\": \"text\", \"value\": \"

The data for this website comes from the Metro board reports site, a system built by Granicus using their Legistar Legislative Management Suite.

With the help of the Legistar Web API, we collect data daily and store it using the Open Civic Data standard and platform. Open Civic Data standardizes information about people, organizations, events and bills at any level of government: it was built in collaboration with The Sunlight Foundation, Google, Granicus, and Open North.

\", \"id\": \"afdae4a4-3865-4a7e-b2aa-abb766d93c7d\"}], \"anchor\": \"data\"}, \"id\": \"e8e5d832-9607-405e-921d-bcdcb18ee160\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Credits\", \"content\": [{\"type\": \"text\", \"value\": \"

This site represents a collaborative effort of Metro\\u2019s Office of the CEO, Office of Board Administration, and Research & Records, Information Management, to ensure Board activity is transparent and easily accessible for the public.

The site was built by DataMade, a civic technology company. They build open source technology using open data to empower journalists, researchers, governments and advocacy organizations.

\", \"id\": \"faef24a9-ef94-4206-8913-37e1330061ea\"}], \"anchor\": \"credits\"}, \"id\": \"4d81311a-e4a8-47a7-85fa-e3c984389e42\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Contact us\", \"content\": [{\"type\": \"text\", \"value\": \"

For questions about or comments for the Metro Board, please contact boardclerk@metro.net. Written public comment can be mailed to:

Office of Board Administration
1 Gateway Plaza, Mail Stop 99-3-1
Los Angeles, CA 90012

If you are commenting on a specific item, please include the item number and your position on it - for, against, general comment, or item needs more consideration - in your message. Written public comment (via mail or email) must be received by 5pm the evening prior to the meeting where the item will be considered.

For questions about this website or Board records, please email boardreport@metro.net.

\", \"id\": \"c376852b-d5e6-43d6-9fca-e6fe682ab51f\"}], \"anchor\": \"contact\"}, \"id\": \"7feeebc5-aad8-4175-bd4e-81027284f76b\"}]", + "live": true, + "path": "000100010001", + "slug": "about-us", + "depth": 3, + "owner": 1, + "title": "About us", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 0, + "url_path": "/home/about-us/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "draft_title": "About us", + "content_type": 99, + "live_revision": 2, + "show_in_menus": false, + "latest_revision": 4, + "translation_key": "cd676e32-0e4a-4e60-aa61-17e11ed9e8de", + "last_published_at": "2024-11-20T16:14:42.213Z", + "first_published_at": "2024-11-20T16:14:42.213Z", + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": true, + "latest_revision_created_at": "2024-11-20T16:21:02.185Z" + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.revision", + "pk": 6, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "base_content_type": [ + "wagtailcore", + "page" + ], + "object_id": "3", + "submitted_for_moderation": false, + "created_at": "2024-11-20T17:40:53.326Z", + "user": [ + "hannah" + ], + "object_str": "About us", + "content": { + "pk": 3, + "body": "[{\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"text\", \"value\": \"

This site offers tools for understanding and tracking the activity of the Board Members of the Los Angeles County Metropolitan Transportation Authority. It connects Los Angeles County residents to Metro policy makers, for greater online public dialogue about issues related to transit services and programs.

With this site, you can:

\", \"id\": \"cccde923-3381-4213-82ef-e50e21f123f6\"}], \"anchor\": \"\"}, \"id\": \"fffd0bb0-3c05-4553-aad3-849517d38c1c\"}, {\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"navigation\", \"value\": null, \"id\": \"fcf5d8a4-6e06-4e7e-b3dd-82eac2e292e0\"}], \"anchor\": \"\"}, \"id\": \"fed3bfcd-3067-423e-ba8d-e62517e68e1a\"}, {\"type\": \"section\", \"value\": {\"heading\": \"What is the Metro Board of Directors, and how does it work?\", \"content\": [{\"type\": \"text\", \"value\": \"

The Los Angeles County Metropolitan Transportation Authority (Metro) was created by the State of California to set policy, coordinate, plan, fund, build, and operate transit services and transportation programs throughout Los Angeles County. Metro supports the transportation improvement programs of the 88 cities and 16 municipal transit operators within Los Angeles County, as well as LA's paratransit provider, ASI, and its regional commuter rail service provider, Metrolink.

Board of Directors

The Board of Directors is comprised of representatives from the City of Los Angeles, the County of Los Angeles, the other incorporated cities and unincorporated areas in Los Angeles County, and a non-voting member representing the Governor. The full Board typically meets once a month to review budgets, contracts, policies and programs, and make decisions about what to adopt, fund and build.

Board Member Appointments

City of Los Angeles representatives include the Mayor of Los Angeles and the Mayor\\u2019s three appointees. Los Angeles County representatives include the Los Angeles County Board of Supervisors representative of each of the five county districts. Representatives from the other incorporated cities and unincorporated areas in Los Angeles County are appointed by the City Selection Committee.

The Los Angeles County City Selection Committee is a group comprised of the mayor of each city within Los Angeles County, excluding the City of Los Angeles. Within the Committee, there are four Subcommittees, one for each Sector of the county, comprised of the mayor of each city within each Sector:

Each Sector Subcommittee nominates one mayor or council member from the Sector to serve on the Metro Board (unless a motion to nominate multiple candidates is made, seconded and passed by a majority weighted vote). Nominees are approved and appointed to the Metro Board by the entire City Selection Committee, whereby each city within the Committee may cast one \\u201cyea\\u201d or \\u201cnay\\u201d vote for every 10,000 residents.

Full documentation of this process can be found in the Los Angeles County City Selection Committee Rules and Regulations for Appointments to Los Angeles County Metropolitan Transportation Authority .

Board Chair

Each Metro Board Chair serves a one year term, from July 1st to June 30th. The Chair\\u2019s term rotates annually between the Mayor of Los Angeles, a member of the Los Angeles County Board of Supervisors, and one of the City Selection Committee Members.

Board Committees

Per the Administrative Ordinance, the Board of Directors has 5 standing committees. The Chair of the Board of Directors may designate other standing and ad hoc committees subject to concurrence of the Board of Directors. Learn more here.

Board Meetings

Learn more about Metro Board of Directors meetings, and view meetings and agendas here.

\", \"id\": \"7d711eb3-f937-4900-8e48-164de929ca99\"}], \"anchor\": \"about-la-metro\"}, \"id\": \"6861258a-da02-48ed-a21c-c8283ac588df\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Room Rules and Procedures\", \"content\": [{\"type\": \"text\", \"value\": \"

Metro Board follows specific procedures to hold meetings and organize its members.

Read about all Metro Rules & Procedures.

Code of Conduct

\", \"id\": \"be011f8d-c089-4b2e-9ba4-e82476944f89\"}], \"anchor\": \"procedures\"}, \"id\": \"30d5c8c4-29b8-4dcd-8ca3-ce4d7c3a6957\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Types of Board Reports\", \"content\": [{\"type\": \"responsive_element\", \"value\": {\"breakpoints\": {\"sm\": 1, \"md\": 2, \"lg\": 4}, \"content\": [{\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Type\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Agreement

\", \"

A negotiated arrangement between parties.

\"]}]}, \"id\": \"db5ecbfe-bb13-48f8-b814-d29cdf48ba18\"}]}, \"id\": \"8c4c61e5-2313-4f7c-96ee-ebad34958766\"}, {\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Type\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Agreement

\", \"

A negotiated arrangement between parties.

\"]}, {\"values\": [\"

Application

\", \"

A formal request, usually for state and federal funding programs.

\"]}, {\"values\": [\"

Appointment

\", \"

The Board of Directors makes appointments to various committees created for the purpose of collecting and reviewing public input such as the Citizens Advisory Council and the Metro Service Councils, and also to external organizations that include representation from Metro such as Metrolink.

\"]}]}, \"id\": \"1fb9819a-248c-416c-a068-6764e4a23f99\"}], \"anchor\": \"\"}, \"id\": \"ff0bd369-1329-4fce-a5ab-40ae385c31d7\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Report Statuses\", \"content\": [{\"type\": \"text\", \"value\": \"

Each Metro board report has one of 22 posible statuses:

\", \"id\": \"52c0a408-c3a2-4ca6-aca7-7b855322c399\"}, {\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Status\"}, {\"type\": \"rich_text\", \"heading\": \"Displayed Status\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Adopted

\", \"

Adopted

\", \"

Item was adopted by a majority vote of the Board.

\"]}, {\"values\": [\"

Adopted As Amended

\", \"

Adopted

\", \"

Item was adopted as amended by a majority vote of the Board.

\"]}, {\"values\": [\"

Approved

\", \"

Approved

\", \"

Item was approved by a majority vote of the Board.

\"]}]}, \"id\": \"c0885150-64d7-4181-8ddb-af704e697c35\"}], \"anchor\": \"\"}, \"id\": \"df0eabeb-b23a-4747-8d95-9057204a910b\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Visit Metro Headquarters Building\", \"content\": [{\"type\": \"text\", \"value\": \"

One Gateway Plaza
Los Angeles, CA 90012-2952

Metro Headquarters is located on the corner of Cesar E. Chavez Ave. and Vignes St.

Get directions to Metro Headquarters.

\", \"id\": \"780fe99f-4159-44f3-9ac7-99f89f585700\"}], \"anchor\": \"visit\"}, \"id\": \"8655a141-976d-46ac-940c-b132f64d7381\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Data\", \"content\": [{\"type\": \"text\", \"value\": \"

The data for this website comes from the Metro board reports site, a system built by Granicus using their Legistar Legislative Management Suite.

With the help of the Legistar Web API, we collect data daily and store it using the Open Civic Data standard and platform. Open Civic Data standardizes information about people, organizations, events and bills at any level of government: it was built in collaboration with The Sunlight Foundation, Google, Granicus, and Open North.

\", \"id\": \"afdae4a4-3865-4a7e-b2aa-abb766d93c7d\"}], \"anchor\": \"data\"}, \"id\": \"e8e5d832-9607-405e-921d-bcdcb18ee160\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Credits\", \"content\": [{\"type\": \"text\", \"value\": \"

This site represents a collaborative effort of Metro\\u2019s Office of the CEO, Office of Board Administration, and Research & Records, Information Management, to ensure Board activity is transparent and easily accessible for the public.

The site was built by DataMade, a civic technology company. They build open source technology using open data to empower journalists, researchers, governments and advocacy organizations.

\", \"id\": \"faef24a9-ef94-4206-8913-37e1330061ea\"}], \"anchor\": \"credits\"}, \"id\": \"4d81311a-e4a8-47a7-85fa-e3c984389e42\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Contact us\", \"content\": [{\"type\": \"text\", \"value\": \"

For questions about or comments for the Metro Board, please contact boardclerk@metro.net. Written public comment can be mailed to:

Office of Board Administration
1 Gateway Plaza, Mail Stop 99-3-1
Los Angeles, CA 90012

If you are commenting on a specific item, please include the item number and your position on it - for, against, general comment, or item needs more consideration - in your message. Written public comment (via mail or email) must be received by 5pm the evening prior to the meeting where the item will be considered.

For questions about this website or Board records, please email boardreport@metro.net.

\", \"id\": \"c376852b-d5e6-43d6-9fca-e6fe682ab51f\"}], \"anchor\": \"contact\"}, \"id\": \"7feeebc5-aad8-4175-bd4e-81027284f76b\"}]", + "live": true, + "path": "000100010001", + "slug": "about-us", + "depth": 3, + "owner": 1, + "title": "About us", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 0, + "url_path": "/home/about-us/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "draft_title": "About us", + "content_type": 99, + "live_revision": 5, + "show_in_menus": false, + "latest_revision": 5, + "translation_key": "cd676e32-0e4a-4e60-aa61-17e11ed9e8de", + "last_published_at": "2024-11-20T16:21:05.210Z", + "first_published_at": "2024-11-20T16:14:42.213Z", + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": false, + "latest_revision_created_at": "2024-11-20T16:21:05.183Z" + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.revision", + "pk": 7, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "base_content_type": [ + "wagtailcore", + "page" + ], + "object_id": "3", + "submitted_for_moderation": false, + "created_at": "2024-11-20T17:56:26.816Z", + "user": [ + "hannah" + ], + "object_str": "About us", + "content": { + "pk": 3, + "body": "[{\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"text\", \"value\": \"

This site offers tools for understanding and tracking the activity of the Board Members of the Los Angeles County Metropolitan Transportation Authority. It connects Los Angeles County residents to Metro policy makers, for greater online public dialogue about issues related to transit services and programs.

With this site, you can:

\", \"id\": \"cccde923-3381-4213-82ef-e50e21f123f6\"}], \"anchor\": \"\"}, \"id\": \"fffd0bb0-3c05-4553-aad3-849517d38c1c\"}, {\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"navigation\", \"value\": null, \"id\": \"fcf5d8a4-6e06-4e7e-b3dd-82eac2e292e0\"}], \"anchor\": \"\"}, \"id\": \"fed3bfcd-3067-423e-ba8d-e62517e68e1a\"}, {\"type\": \"section\", \"value\": {\"heading\": \"What is the Metro Board of Directors, and how does it work?\", \"content\": [{\"type\": \"text\", \"value\": \"

The Los Angeles County Metropolitan Transportation Authority (Metro) was created by the State of California to set policy, coordinate, plan, fund, build, and operate transit services and transportation programs throughout Los Angeles County. Metro supports the transportation improvement programs of the 88 cities and 16 municipal transit operators within Los Angeles County, as well as LA's paratransit provider, ASI, and its regional commuter rail service provider, Metrolink.

Board of Directors

The Board of Directors is comprised of representatives from the City of Los Angeles, the County of Los Angeles, the other incorporated cities and unincorporated areas in Los Angeles County, and a non-voting member representing the Governor. The full Board typically meets once a month to review budgets, contracts, policies and programs, and make decisions about what to adopt, fund and build.

Board Member Appointments

City of Los Angeles representatives include the Mayor of Los Angeles and the Mayor\\u2019s three appointees. Los Angeles County representatives include the Los Angeles County Board of Supervisors representative of each of the five county districts. Representatives from the other incorporated cities and unincorporated areas in Los Angeles County are appointed by the City Selection Committee.

The Los Angeles County City Selection Committee is a group comprised of the mayor of each city within Los Angeles County, excluding the City of Los Angeles. Within the Committee, there are four Subcommittees, one for each Sector of the county, comprised of the mayor of each city within each Sector:

Each Sector Subcommittee nominates one mayor or council member from the Sector to serve on the Metro Board (unless a motion to nominate multiple candidates is made, seconded and passed by a majority weighted vote). Nominees are approved and appointed to the Metro Board by the entire City Selection Committee, whereby each city within the Committee may cast one \\u201cyea\\u201d or \\u201cnay\\u201d vote for every 10,000 residents.

Full documentation of this process can be found in the Los Angeles County City Selection Committee Rules and Regulations for Appointments to Los Angeles County Metropolitan Transportation Authority .

Board Chair

Each Metro Board Chair serves a one year term, from July 1st to June 30th. The Chair\\u2019s term rotates annually between the Mayor of Los Angeles, a member of the Los Angeles County Board of Supervisors, and one of the City Selection Committee Members.

Board Committees

Per the Administrative Ordinance, the Board of Directors has 5 standing committees. The Chair of the Board of Directors may designate other standing and ad hoc committees subject to concurrence of the Board of Directors. Learn more here.

Board Meetings

Learn more about Metro Board of Directors meetings, and view meetings and agendas here.

\", \"id\": \"7d711eb3-f937-4900-8e48-164de929ca99\"}], \"anchor\": \"about-la-metro\"}, \"id\": \"6861258a-da02-48ed-a21c-c8283ac588df\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Room Rules and Procedures\", \"content\": [{\"type\": \"text\", \"value\": \"

Metro Board follows specific procedures to hold meetings and organize its members.

Read about all Metro Rules & Procedures.

Code of Conduct

\", \"id\": \"be011f8d-c089-4b2e-9ba4-e82476944f89\"}], \"anchor\": \"procedures\"}, \"id\": \"30d5c8c4-29b8-4dcd-8ca3-ce4d7c3a6957\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Types of Board Reports\", \"content\": [{\"type\": \"responsive_element\", \"value\": {\"breakpoints\": {\"sm\": 1, \"md\": 2, \"lg\": 4}, \"content\": [{\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Type\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Agreement

\", \"

A negotiated arrangement between parties.

\"]}]}, \"id\": \"db5ecbfe-bb13-48f8-b814-d29cdf48ba18\"}]}, \"id\": \"8c4c61e5-2313-4f7c-96ee-ebad34958766\"}], \"anchor\": \"\"}, \"id\": \"ff0bd369-1329-4fce-a5ab-40ae385c31d7\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Report Statuses\", \"content\": [{\"type\": \"text\", \"value\": \"

Each Metro board report has one of 22 posible statuses:

\", \"id\": \"52c0a408-c3a2-4ca6-aca7-7b855322c399\"}, {\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Status\"}, {\"type\": \"rich_text\", \"heading\": \"Displayed Status\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Adopted

\", \"

Adopted

\", \"

Item was adopted by a majority vote of the Board.

\"]}, {\"values\": [\"

Adopted As Amended

\", \"

Adopted

\", \"

Item was adopted as amended by a majority vote of the Board.

\"]}, {\"values\": [\"

Approved

\", \"

Approved

\", \"

Item was approved by a majority vote of the Board.

\"]}]}, \"id\": \"c0885150-64d7-4181-8ddb-af704e697c35\"}], \"anchor\": \"\"}, \"id\": \"df0eabeb-b23a-4747-8d95-9057204a910b\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Visit Metro Headquarters Building\", \"content\": [{\"type\": \"text\", \"value\": \"

One Gateway Plaza
Los Angeles, CA 90012-2952

Metro Headquarters is located on the corner of Cesar E. Chavez Ave. and Vignes St.

Get directions to Metro Headquarters.

\", \"id\": \"780fe99f-4159-44f3-9ac7-99f89f585700\"}], \"anchor\": \"visit\"}, \"id\": \"8655a141-976d-46ac-940c-b132f64d7381\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Data\", \"content\": [{\"type\": \"text\", \"value\": \"

The data for this website comes from the Metro board reports site, a system built by Granicus using their Legistar Legislative Management Suite.

With the help of the Legistar Web API, we collect data daily and store it using the Open Civic Data standard and platform. Open Civic Data standardizes information about people, organizations, events and bills at any level of government: it was built in collaboration with The Sunlight Foundation, Google, Granicus, and Open North.

\", \"id\": \"afdae4a4-3865-4a7e-b2aa-abb766d93c7d\"}], \"anchor\": \"data\"}, \"id\": \"e8e5d832-9607-405e-921d-bcdcb18ee160\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Credits\", \"content\": [{\"type\": \"text\", \"value\": \"

This site represents a collaborative effort of Metro\\u2019s Office of the CEO, Office of Board Administration, and Research & Records, Information Management, to ensure Board activity is transparent and easily accessible for the public.

The site was built by DataMade, a civic technology company. They build open source technology using open data to empower journalists, researchers, governments and advocacy organizations.

\", \"id\": \"faef24a9-ef94-4206-8913-37e1330061ea\"}], \"anchor\": \"credits\"}, \"id\": \"4d81311a-e4a8-47a7-85fa-e3c984389e42\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Contact us\", \"content\": [{\"type\": \"text\", \"value\": \"

For questions about or comments for the Metro Board, please contact boardclerk@metro.net. Written public comment can be mailed to:

Office of Board Administration
1 Gateway Plaza, Mail Stop 99-3-1
Los Angeles, CA 90012

If you are commenting on a specific item, please include the item number and your position on it - for, against, general comment, or item needs more consideration - in your message. Written public comment (via mail or email) must be received by 5pm the evening prior to the meeting where the item will be considered.

For questions about this website or Board records, please email boardreport@metro.net.

\", \"id\": \"c376852b-d5e6-43d6-9fca-e6fe682ab51f\"}], \"anchor\": \"contact\"}, \"id\": \"7feeebc5-aad8-4175-bd4e-81027284f76b\"}]", + "live": true, + "path": "000100010001", + "slug": "about-us", + "depth": 3, + "owner": 1, + "title": "About us", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 0, + "url_path": "/home/about-us/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "draft_title": "About us", + "content_type": 99, + "live_revision": 5, + "show_in_menus": false, + "latest_revision": 6, + "translation_key": "cd676e32-0e4a-4e60-aa61-17e11ed9e8de", + "last_published_at": "2024-11-20T16:21:05.210Z", + "first_published_at": "2024-11-20T16:14:42.213Z", + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": true, + "latest_revision_created_at": "2024-11-20T17:40:53.326Z" + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.revision", + "pk": 8, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "base_content_type": [ + "wagtailcore", + "page" + ], + "object_id": "3", + "submitted_for_moderation": false, + "created_at": "2024-11-20T18:43:59.823Z", + "user": [ + "hannah" + ], + "object_str": "About us", + "content": { + "pk": 3, + "body": "[{\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"text\", \"value\": \"

This site offers tools for understanding and tracking the activity of the Board Members of the Los Angeles County Metropolitan Transportation Authority. It connects Los Angeles County residents to Metro policy makers, for greater online public dialogue about issues related to transit services and programs.

With this site, you can:

\", \"id\": \"cccde923-3381-4213-82ef-e50e21f123f6\"}], \"anchor\": \"\"}, \"id\": \"fffd0bb0-3c05-4553-aad3-849517d38c1c\"}, {\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"navigation\", \"value\": null, \"id\": \"fcf5d8a4-6e06-4e7e-b3dd-82eac2e292e0\"}], \"anchor\": \"\"}, \"id\": \"fed3bfcd-3067-423e-ba8d-e62517e68e1a\"}, {\"type\": \"section\", \"value\": {\"heading\": \"What is the Metro Board of Directors, and how does it work?\", \"content\": [{\"type\": \"text\", \"value\": \"

The Los Angeles County Metropolitan Transportation Authority (Metro) was created by the State of California to set policy, coordinate, plan, fund, build, and operate transit services and transportation programs throughout Los Angeles County. Metro supports the transportation improvement programs of the 88 cities and 16 municipal transit operators within Los Angeles County, as well as LA's paratransit provider, ASI, and its regional commuter rail service provider, Metrolink.

Board of Directors

The Board of Directors is comprised of representatives from the City of Los Angeles, the County of Los Angeles, the other incorporated cities and unincorporated areas in Los Angeles County, and a non-voting member representing the Governor. The full Board typically meets once a month to review budgets, contracts, policies and programs, and make decisions about what to adopt, fund and build.

Board Member Appointments

City of Los Angeles representatives include the Mayor of Los Angeles and the Mayor\\u2019s three appointees. Los Angeles County representatives include the Los Angeles County Board of Supervisors representative of each of the five county districts. Representatives from the other incorporated cities and unincorporated areas in Los Angeles County are appointed by the City Selection Committee.

The Los Angeles County City Selection Committee is a group comprised of the mayor of each city within Los Angeles County, excluding the City of Los Angeles. Within the Committee, there are four Subcommittees, one for each Sector of the county, comprised of the mayor of each city within each Sector:

Each Sector Subcommittee nominates one mayor or council member from the Sector to serve on the Metro Board (unless a motion to nominate multiple candidates is made, seconded and passed by a majority weighted vote). Nominees are approved and appointed to the Metro Board by the entire City Selection Committee, whereby each city within the Committee may cast one \\u201cyea\\u201d or \\u201cnay\\u201d vote for every 10,000 residents.

Full documentation of this process can be found in the Los Angeles County City Selection Committee Rules and Regulations for Appointments to Los Angeles County Metropolitan Transportation Authority .

Board Chair

Each Metro Board Chair serves a one year term, from July 1st to June 30th. The Chair\\u2019s term rotates annually between the Mayor of Los Angeles, a member of the Los Angeles County Board of Supervisors, and one of the City Selection Committee Members.

Board Committees

Per the Administrative Ordinance, the Board of Directors has 5 standing committees. The Chair of the Board of Directors may designate other standing and ad hoc committees subject to concurrence of the Board of Directors. Learn more here.

Board Meetings

Learn more about Metro Board of Directors meetings, and view meetings and agendas here.

\", \"id\": \"7d711eb3-f937-4900-8e48-164de929ca99\"}], \"anchor\": \"about-la-metro\"}, \"id\": \"6861258a-da02-48ed-a21c-c8283ac588df\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Room Rules and Procedures\", \"content\": [{\"type\": \"text\", \"value\": \"

Metro Board follows specific procedures to hold meetings and organize its members.

Read about all Metro Rules & Procedures.

Code of Conduct

\", \"id\": \"be011f8d-c089-4b2e-9ba4-e82476944f89\"}], \"anchor\": \"procedures\"}, \"id\": \"30d5c8c4-29b8-4dcd-8ca3-ce4d7c3a6957\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Types of Board Reports\", \"content\": [{\"type\": \"responsive_element\", \"value\": {\"breakpoints\": {\"sm\": 1, \"md\": 2, \"lg\": 4}, \"content\": [{\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Type\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Agreement

\", \"

A negotiated arrangement between parties.

\"]}]}, \"id\": \"db5ecbfe-bb13-48f8-b814-d29cdf48ba18\"}]}, \"id\": \"8c4c61e5-2313-4f7c-96ee-ebad34958766\"}], \"anchor\": \"\"}, \"id\": \"ff0bd369-1329-4fce-a5ab-40ae385c31d7\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Report Statuses\", \"content\": [{\"type\": \"text\", \"value\": \"

Each Metro board report has one of 22 posible statuses:

\", \"id\": \"52c0a408-c3a2-4ca6-aca7-7b855322c399\"}, {\"type\": \"responsive_element\", \"value\": {\"breakpoints\": {\"sm\": 2, \"md\": 2, \"lg\": 4}, \"content\": [{\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Status\"}, {\"type\": \"rich_text\", \"heading\": \"Displayed Status\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Adopted

\", \"

Adopted

\", \"

Item was adopted by a majority vote of the Board.

\"]}, {\"values\": [\"

Adopted As Amended

\", \"

Adopted

\", \"

Item was adopted by a majority vote of the Board.

\"]}]}, \"id\": \"20ff5c56-3d82-49fd-8c3f-77aaefce1212\"}]}, \"id\": \"8f171ff2-5370-4f49-88b0-51463d6b68f0\"}], \"anchor\": \"\"}, \"id\": \"df0eabeb-b23a-4747-8d95-9057204a910b\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Visit Metro Headquarters Building\", \"content\": [{\"type\": \"text\", \"value\": \"

One Gateway Plaza
Los Angeles, CA 90012-2952

Metro Headquarters is located on the corner of Cesar E. Chavez Ave. and Vignes St.

Get directions to Metro Headquarters.

\", \"id\": \"780fe99f-4159-44f3-9ac7-99f89f585700\"}], \"anchor\": \"visit\"}, \"id\": \"8655a141-976d-46ac-940c-b132f64d7381\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Data\", \"content\": [{\"type\": \"text\", \"value\": \"

The data for this website comes from the Metro board reports site, a system built by Granicus using their Legistar Legislative Management Suite.

With the help of the Legistar Web API, we collect data daily and store it using the Open Civic Data standard and platform. Open Civic Data standardizes information about people, organizations, events and bills at any level of government: it was built in collaboration with The Sunlight Foundation, Google, Granicus, and Open North.

\", \"id\": \"afdae4a4-3865-4a7e-b2aa-abb766d93c7d\"}], \"anchor\": \"data\"}, \"id\": \"e8e5d832-9607-405e-921d-bcdcb18ee160\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Credits\", \"content\": [{\"type\": \"text\", \"value\": \"

This site represents a collaborative effort of Metro\\u2019s Office of the CEO, Office of Board Administration, and Research & Records, Information Management, to ensure Board activity is transparent and easily accessible for the public.

The site was built by DataMade, a civic technology company. They build open source technology using open data to empower journalists, researchers, governments and advocacy organizations.

\", \"id\": \"faef24a9-ef94-4206-8913-37e1330061ea\"}], \"anchor\": \"credits\"}, \"id\": \"4d81311a-e4a8-47a7-85fa-e3c984389e42\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Contact us\", \"content\": [{\"type\": \"text\", \"value\": \"

For questions about or comments for the Metro Board, please contact boardclerk@metro.net. Written public comment can be mailed to:

Office of Board Administration
1 Gateway Plaza, Mail Stop 99-3-1
Los Angeles, CA 90012

If you are commenting on a specific item, please include the item number and your position on it - for, against, general comment, or item needs more consideration - in your message. Written public comment (via mail or email) must be received by 5pm the evening prior to the meeting where the item will be considered.

For questions about this website or Board records, please email boardreport@metro.net.

\", \"id\": \"c376852b-d5e6-43d6-9fca-e6fe682ab51f\"}], \"anchor\": \"contact\"}, \"id\": \"7feeebc5-aad8-4175-bd4e-81027284f76b\"}]", + "live": true, + "path": "000100010001", + "slug": "about-us", + "depth": 3, + "owner": 1, + "title": "About us", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 0, + "url_path": "/home/about-us/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "draft_title": "About us", + "content_type": 99, + "live_revision": 5, + "show_in_menus": false, + "latest_revision": 7, + "translation_key": "cd676e32-0e4a-4e60-aa61-17e11ed9e8de", + "last_published_at": "2024-11-20T16:21:05.210Z", + "first_published_at": "2024-11-20T16:14:42.213Z", + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": true, + "latest_revision_created_at": "2024-11-20T17:56:26.816Z" + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.revision", + "pk": 9, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "base_content_type": [ + "wagtailcore", + "page" + ], + "object_id": "3", + "submitted_for_moderation": false, + "created_at": "2024-11-21T14:10:05.780Z", + "user": [ + "hannah" + ], + "object_str": "About us", + "content": { + "pk": 3, + "body": "[{\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"text\", \"value\": \"

This site offers tools for understanding and tracking the activity of the Board Members of the Los Angeles County Metropolitan Transportation Authority. It connects Los Angeles County residents to Metro policy makers, for greater online public dialogue about issues related to transit services and programs.

With this site, you can:

\", \"id\": \"cccde923-3381-4213-82ef-e50e21f123f6\"}], \"anchor\": \"\"}, \"id\": \"fffd0bb0-3c05-4553-aad3-849517d38c1c\"}, {\"type\": \"section\", \"value\": {\"heading\": \"\", \"content\": [{\"type\": \"navigation\", \"value\": null, \"id\": \"fcf5d8a4-6e06-4e7e-b3dd-82eac2e292e0\"}], \"anchor\": \"\"}, \"id\": \"fed3bfcd-3067-423e-ba8d-e62517e68e1a\"}, {\"type\": \"section\", \"value\": {\"heading\": \"What is the Metro Board of Directors, and how does it work?\", \"content\": [{\"type\": \"text\", \"value\": \"

The Los Angeles County Metropolitan Transportation Authority (Metro) was created by the State of California to set policy, coordinate, plan, fund, build, and operate transit services and transportation programs throughout Los Angeles County. Metro supports the transportation improvement programs of the 88 cities and 16 municipal transit operators within Los Angeles County, as well as LA's paratransit provider, ASI, and its regional commuter rail service provider, Metrolink.

Board of Directors

The Board of Directors is comprised of representatives from the City of Los Angeles, the County of Los Angeles, the other incorporated cities and unincorporated areas in Los Angeles County, and a non-voting member representing the Governor. The full Board typically meets once a month to review budgets, contracts, policies and programs, and make decisions about what to adopt, fund and build.

Board Member Appointments

City of Los Angeles representatives include the Mayor of Los Angeles and the Mayor\\u2019s three appointees. Los Angeles County representatives include the Los Angeles County Board of Supervisors representative of each of the five county districts. Representatives from the other incorporated cities and unincorporated areas in Los Angeles County are appointed by the City Selection Committee.

The Los Angeles County City Selection Committee is a group comprised of the mayor of each city within Los Angeles County, excluding the City of Los Angeles. Within the Committee, there are four Subcommittees, one for each Sector of the county, comprised of the mayor of each city within each Sector:

Each Sector Subcommittee nominates one mayor or council member from the Sector to serve on the Metro Board (unless a motion to nominate multiple candidates is made, seconded and passed by a majority weighted vote). Nominees are approved and appointed to the Metro Board by the entire City Selection Committee, whereby each city within the Committee may cast one \\u201cyea\\u201d or \\u201cnay\\u201d vote for every 10,000 residents.

Full documentation of this process can be found in the Los Angeles County City Selection Committee Rules and Regulations for Appointments to Los Angeles County Metropolitan Transportation Authority .

Board Chair

Each Metro Board Chair serves a one year term, from July 1st to June 30th. The Chair\\u2019s term rotates annually between the Mayor of Los Angeles, a member of the Los Angeles County Board of Supervisors, and one of the City Selection Committee Members.

Board Committees

Per the Administrative Ordinance, the Board of Directors has 5 standing committees. The Chair of the Board of Directors may designate other standing and ad hoc committees subject to concurrence of the Board of Directors. Learn more here.

Board Meetings

Learn more about Metro Board of Directors meetings, and view meetings and agendas here.

\", \"id\": \"7d711eb3-f937-4900-8e48-164de929ca99\"}], \"anchor\": \"about-la-metro\"}, \"id\": \"6861258a-da02-48ed-a21c-c8283ac588df\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Room Rules and Procedures\", \"content\": [{\"type\": \"text\", \"value\": \"

Metro Board follows specific procedures to hold meetings and organize its members.

Read about all Metro Rules & Procedures.

Code of Conduct

\", \"id\": \"be011f8d-c089-4b2e-9ba4-e82476944f89\"}], \"anchor\": \"procedures\"}, \"id\": \"30d5c8c4-29b8-4dcd-8ca3-ce4d7c3a6957\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Types of Board Reports\", \"content\": [{\"type\": \"responsive_element\", \"value\": {\"breakpoints\": {\"sm\": 1, \"md\": 2, \"lg\": 4}, \"content\": [{\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Type\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Agreement

\", \"

A negotiated arrangement between parties.

\"]}]}, \"id\": \"db5ecbfe-bb13-48f8-b814-d29cdf48ba18\"}]}, \"id\": \"8c4c61e5-2313-4f7c-96ee-ebad34958766\"}], \"anchor\": \"\"}, \"id\": \"ff0bd369-1329-4fce-a5ab-40ae385c31d7\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Board Report Statuses\", \"content\": [{\"type\": \"text\", \"value\": \"

Each Metro board report has one of 22 posible statuses:

\", \"id\": \"52c0a408-c3a2-4ca6-aca7-7b855322c399\"}, {\"type\": \"responsive_element\", \"value\": {\"breakpoints\": {\"sm\": 2, \"md\": 2, \"lg\": 4}, \"content\": [{\"type\": \"table\", \"value\": {\"columns\": [{\"type\": \"rich_text\", \"heading\": \"Status\"}, {\"type\": \"rich_text\", \"heading\": \"Displayed Status\"}, {\"type\": \"rich_text\", \"heading\": \"Description\"}], \"rows\": [{\"values\": [\"

Adopted

\", \"

Adopted

\", \"

Item was adopted by a majority vote of the Board.

\"]}, {\"values\": [\"

Adopted As Amended

\", \"

Adopted

\", \"

Item was adopted by a majority vote of the Board.

\"]}]}, \"id\": \"20ff5c56-3d82-49fd-8c3f-77aaefce1212\"}]}, \"id\": \"8f171ff2-5370-4f49-88b0-51463d6b68f0\"}], \"anchor\": \"\"}, \"id\": \"df0eabeb-b23a-4747-8d95-9057204a910b\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Visit Metro Headquarters Building\", \"content\": [{\"type\": \"text\", \"value\": \"

One Gateway Plaza
Los Angeles, CA 90012-2952

Metro Headquarters is located on the corner of Cesar E. Chavez Ave. and Vignes St.

Get directions to Metro Headquarters.

\", \"id\": \"780fe99f-4159-44f3-9ac7-99f89f585700\"}], \"anchor\": \"visit\"}, \"id\": \"8655a141-976d-46ac-940c-b132f64d7381\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Data\", \"content\": [{\"type\": \"text\", \"value\": \"

The data for this website comes from the Metro board reports site, a system built by Granicus using their Legistar Legislative Management Suite.

With the help of the Legistar Web API, we collect data daily and store it using the Open Civic Data standard and platform. Open Civic Data standardizes information about people, organizations, events and bills at any level of government: it was built in collaboration with The Sunlight Foundation, Google, Granicus, and Open North.

\", \"id\": \"afdae4a4-3865-4a7e-b2aa-abb766d93c7d\"}], \"anchor\": \"data\"}, \"id\": \"e8e5d832-9607-405e-921d-bcdcb18ee160\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Credits\", \"content\": [{\"type\": \"text\", \"value\": \"

This site represents a collaborative effort of Metro\\u2019s Office of the CEO, Office of Board Administration, and Research & Records, Information Management, to ensure Board activity is transparent and easily accessible for the public.

The site was built by DataMade, a civic technology company. They build open source technology using open data to empower journalists, researchers, governments and advocacy organizations.

\", \"id\": \"faef24a9-ef94-4206-8913-37e1330061ea\"}], \"anchor\": \"credits\"}, \"id\": \"4d81311a-e4a8-47a7-85fa-e3c984389e42\"}, {\"type\": \"section\", \"value\": {\"heading\": \"Contact us\", \"content\": [{\"type\": \"text\", \"value\": \"

For questions about or comments for the Metro Board, please contact boardclerk@metro.net. Written public comment can be mailed to:

Office of Board Administration
1 Gateway Plaza, Mail Stop 99-3-1
Los Angeles, CA 90012

If you are commenting on a specific item, please include the item number and your position on it - for, against, general comment, or item needs more consideration - in your message. Written public comment (via mail or email) must be received by 5pm the evening prior to the meeting where the item will be considered.

For questions about this website or Board records, please email boardreport@metro.net.

\", \"id\": \"c376852b-d5e6-43d6-9fca-e6fe682ab51f\"}], \"anchor\": \"contact\"}, \"id\": \"7feeebc5-aad8-4175-bd4e-81027284f76b\"}]", + "live": true, + "path": "000100010001", + "slug": "about", + "depth": 3, + "owner": 1, + "title": "About us", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 0, + "url_path": "/home/about-us/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "draft_title": "About us", + "content_type": 99, + "live_revision": 5, + "show_in_menus": false, + "latest_revision": 8, + "translation_key": "cd676e32-0e4a-4e60-aa61-17e11ed9e8de", + "last_published_at": "2024-11-20T16:21:05.210Z", + "first_published_at": "2024-11-20T16:14:42.213Z", + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": true, + "latest_revision_created_at": "2024-11-20T18:43:59.823Z" + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.revision", + "pk": 10, + "fields": { + "content_type": [ + "wagtailcore", + "page" + ], + "base_content_type": [ + "wagtailcore", + "page" + ], + "object_id": "2", + "submitted_for_moderation": false, + "created_at": "2024-11-21T14:49:22.714Z", + "user": [ + "hannah" + ], + "object_str": "LA Metro Board Agendas", + "content": { + "pk": 2, + "live": true, + "path": "00010001", + "slug": "home", + "depth": 2, + "owner": null, + "title": "LA Metro Board Agendas", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 1, + "url_path": "/home/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "draft_title": "LA Metro Board Agendas", + "content_type": 1, + "live_revision": null, + "show_in_menus": false, + "latest_revision": null, + "translation_key": "3163da97-7779-470f-8f98-cc72d0d86064", + "last_published_at": null, + "first_published_at": null, + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": false, + "latest_revision_created_at": null + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.workflowpage", + "pk": 1, + "fields": { + "workflow": 1 + } +}, +{ + "model": "wagtailcore.workflowtask", + "pk": 1, + "fields": { + "sort_order": 0, + "workflow": 1, + "task": 1 + } +}, +{ + "model": "wagtailcore.task", + "pk": 1, + "fields": { + "name": "Moderators approval", + "content_type": [ + "wagtailcore", + "groupapprovaltask" + ], + "active": true + } +}, +{ + "model": "wagtailcore.workflow", + "pk": 1, + "fields": { + "name": "Moderators approval", + "active": true + } +}, +{ + "model": "wagtailcore.groupapprovaltask", + "pk": 1, + "fields": { + "groups": [ + [ + "Moderators" + ] + ] + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 1, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.create", + "data": {}, + "timestamp": "2024-11-20T16:14:38.029Z", + "uuid": "3f73e34e-a895-4f02-bfc7-2682a7e40ae4", + "user": [ + "hannah" + ], + "revision": null, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 2, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.edit", + "data": {}, + "timestamp": "2024-11-20T16:14:38.064Z", + "uuid": "3f73e34e-a895-4f02-bfc7-2682a7e40ae4", + "user": [ + "hannah" + ], + "revision": 1, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 3, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.edit", + "data": {}, + "timestamp": "2024-11-20T16:14:42.204Z", + "uuid": "b4a935fd-ec5e-4fa9-accb-46cd6f8e3815", + "user": [ + "hannah" + ], + "revision": 2, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 4, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.publish", + "data": {}, + "timestamp": "2024-11-20T16:14:42.238Z", + "uuid": "b4a935fd-ec5e-4fa9-accb-46cd6f8e3815", + "user": [ + "hannah" + ], + "revision": 2, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 5, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.edit", + "data": {}, + "timestamp": "2024-11-20T16:17:55.836Z", + "uuid": "b09ca03c-3b5a-462f-81c0-ad0a84acfb2a", + "user": [ + "hannah" + ], + "revision": 3, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 6, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.edit", + "data": {}, + "timestamp": "2024-11-20T16:21:02.200Z", + "uuid": "a416ceff-6304-4f72-8177-04776e76817b", + "user": [ + "hannah" + ], + "revision": 4, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 7, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.edit", + "data": {}, + "timestamp": "2024-11-20T16:21:05.197Z", + "uuid": "49c25941-a13c-4ab0-8430-751dbccc984c", + "user": [ + "hannah" + ], + "revision": 5, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 8, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.publish", + "data": {}, + "timestamp": "2024-11-20T16:21:05.243Z", + "uuid": "49c25941-a13c-4ab0-8430-751dbccc984c", + "user": [ + "hannah" + ], + "revision": 5, + "content_changed": false, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 9, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.edit", + "data": {}, + "timestamp": "2024-11-20T17:40:53.372Z", + "uuid": "ad31aad2-c86e-457d-bfb5-12e7ced9174d", + "user": [ + "hannah" + ], + "revision": 6, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 10, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.edit", + "data": {}, + "timestamp": "2024-11-20T17:56:26.856Z", + "uuid": "cc6bdf51-6f0a-447f-8de1-e611accdaaa9", + "user": [ + "hannah" + ], + "revision": 7, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 11, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.edit", + "data": {}, + "timestamp": "2024-11-20T18:43:59.866Z", + "uuid": "035639c0-4d2f-4160-a466-98e01d2803e8", + "user": [ + "hannah" + ], + "revision": 8, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 12, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.edit", + "data": {}, + "timestamp": "2024-11-21T14:10:05.814Z", + "uuid": "739984d0-978a-4c3f-91d0-5159fe0be870", + "user": [ + "hannah" + ], + "revision": 9, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 13, + "fields": { + "content_type": [ + "lametro", + "aboutpage" + ], + "label": "About us", + "action": "wagtail.publish", + "data": {}, + "timestamp": "2024-11-21T14:10:05.868Z", + "uuid": "739984d0-978a-4c3f-91d0-5159fe0be870", + "user": [ + "hannah" + ], + "revision": 9, + "content_changed": true, + "deleted": false, + "page": 3 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 14, + "fields": { + "content_type": [ + "wagtailcore", + "page" + ], + "label": "LA Metro Board Agendas", + "action": "wagtail.edit", + "data": {}, + "timestamp": "2024-11-21T14:49:22.754Z", + "uuid": "9359ac7a-3017-4f27-95b4-72f80dc02ce3", + "user": [ + "hannah" + ], + "revision": 10, + "content_changed": true, + "deleted": false, + "page": 2 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 15, + "fields": { + "content_type": [ + "wagtailcore", + "page" + ], + "label": "LA Metro Board Agendas", + "action": "wagtail.publish", + "data": {}, + "timestamp": "2024-11-21T14:49:22.781Z", + "uuid": "9359ac7a-3017-4f27-95b4-72f80dc02ce3", + "user": [ + "hannah" + ], + "revision": 10, + "content_changed": true, + "deleted": false, + "page": 2 + } +}, +{ + "model": "wagtailcore.pagesubscription", + "pk": 1, + "fields": { + "user": [ + "hannah" + ], + "page": 3, + "comment_notifications": true + } +}, +{ + "model": "wagtailcore.pagesubscription", + "pk": 2, + "fields": { + "user": [ + "hannah" + ], + "page": 2, + "comment_notifications": false + } +}, +{ + "model": "wagtailredirects.redirect", + "pk": 1, + "fields": { + "old_path": "/about-us", + "site": [ + "localhost", + 80 + ], + "is_permanent": true, + "redirect_page": 3, + "redirect_page_route_path": "", + "redirect_link": "", + "automatically_created": true, + "created_at": "2024-11-21T14:10:05.859Z" + } +} +] diff --git a/lametro/fixtures/initial_images/images/datamade_logo_sm.max-165x165.png b/lametro/fixtures/initial_images/images/datamade_logo_sm.max-165x165.png new file mode 100644 index 00000000..c4eb166f Binary files /dev/null and b/lametro/fixtures/initial_images/images/datamade_logo_sm.max-165x165.png differ diff --git a/lametro/fixtures/initial_images/images/datamade_logo_sm.max-800x600.png b/lametro/fixtures/initial_images/images/datamade_logo_sm.max-800x600.png new file mode 100644 index 00000000..b2d6b07a Binary files /dev/null and b/lametro/fixtures/initial_images/images/datamade_logo_sm.max-800x600.png differ diff --git a/lametro/fixtures/initial_images/images/datamade_logo_sm.width-500.png b/lametro/fixtures/initial_images/images/datamade_logo_sm.width-500.png new file mode 100644 index 00000000..b2d6b07a Binary files /dev/null and b/lametro/fixtures/initial_images/images/datamade_logo_sm.width-500.png differ diff --git a/lametro/fixtures/initial_images/images/datamade_logo_sm.width-800.png b/lametro/fixtures/initial_images/images/datamade_logo_sm.width-800.png new file mode 100644 index 00000000..b2d6b07a Binary files /dev/null and b/lametro/fixtures/initial_images/images/datamade_logo_sm.width-800.png differ diff --git a/lametro/fixtures/initial_images/images/datamade_logo_sm_fDWMRNo.max-800x600.png b/lametro/fixtures/initial_images/images/datamade_logo_sm_fDWMRNo.max-800x600.png new file mode 100644 index 00000000..b2d6b07a Binary files /dev/null and b/lametro/fixtures/initial_images/images/datamade_logo_sm_fDWMRNo.max-800x600.png differ diff --git a/lametro/fixtures/initial_images/images/datamade_logo_sm_fDWMRNo.width-500.png b/lametro/fixtures/initial_images/images/datamade_logo_sm_fDWMRNo.width-500.png new file mode 100644 index 00000000..b2d6b07a Binary files /dev/null and b/lametro/fixtures/initial_images/images/datamade_logo_sm_fDWMRNo.width-500.png differ diff --git a/lametro/fixtures/initial_images/original_images/datamade_logo_sm.png b/lametro/fixtures/initial_images/original_images/datamade_logo_sm.png new file mode 100644 index 00000000..fa3b98f3 Binary files /dev/null and b/lametro/fixtures/initial_images/original_images/datamade_logo_sm.png differ diff --git a/lametro/fixtures/initial_images/original_images/datamade_logo_sm_fDWMRNo.png b/lametro/fixtures/initial_images/original_images/datamade_logo_sm_fDWMRNo.png new file mode 100644 index 00000000..fa3b98f3 Binary files /dev/null and b/lametro/fixtures/initial_images/original_images/datamade_logo_sm_fDWMRNo.png differ diff --git a/lametro/management/commands/dump_content.py b/lametro/management/commands/dump_content.py new file mode 100644 index 00000000..9c32b1ac --- /dev/null +++ b/lametro/management/commands/dump_content.py @@ -0,0 +1,50 @@ +from pathlib import Path +import subprocess + +from django.apps import apps +from django.core.management.base import BaseCommand +from django.core.management import call_command + + +class Command(BaseCommand): + """ + Dump core Wagtail content and any custom pages and/or Django models + where the include_in_dump attribute is True. Also copy images uploaded + locally to the fixtures directory, so that they can be loaded to default + storage (usually S3) during deployment. + """ + + def handle(self, **options): + app_models = apps.get_app_config("lametro").get_models() + + excluded_app_models = [ + f"lametro.{m.__name__}" + for m in app_models + if not getattr(m, "include_in_dump", False) + ] + + call_command( + "dumpdata", + natural_foreign=True, + indent=4, + output=Path("lametro/fixtures/cms_content.json"), + exclude=[ + "contenttypes", + "auth.permission", + "wagtailcore.groupcollectionpermission", + "wagtailcore.grouppagepermission", + "wagtailsearch.indexentry", + "sessions", + ] + + excluded_app_models, + ) + + subprocess.run( + [ + "cp", + "-R", + "media/.", + "lametro/fixtures/initial_images/", + ], + check=True, + ) diff --git a/lametro/management/commands/load_content.py b/lametro/management/commands/load_content.py new file mode 100644 index 00000000..aba59f94 --- /dev/null +++ b/lametro/management/commands/load_content.py @@ -0,0 +1,107 @@ +import os +from pathlib import Path +import json + +from django.apps import apps +from django.core.files.storage import default_storage +from django.core.management import call_command +from django.core.management.base import BaseCommand +from django.core.exceptions import ObjectDoesNotExist +from django.db import transaction + +from wagtail.images.models import Image +from wagtail.models import Site, Page, Revision + + +class Command(BaseCommand): + @property + def fixtures_dir(self): + return Path("lametro/fixtures/") + + def add_arguments(self, parser): + parser.add_argument( + "--content-type", + default="content,images", + type=lambda x: x.split(","), + help="Comma-separated string of content types to load. Default: \ + content,images. Options: content, images.", + ) + parser.add_argument( + "--content-fixture", + default="cms_content.json", + help="Name of content fixture to load. Default: cms_content.json", + ) + + @transaction.atomic + def handle(self, **options): + selected_content = set(options["content_type"]) + valid_content = set(["content", "images"]) + + if not selected_content.issubset(valid_content): + invalid_values = selected_content - valid_content + raise ValueError( + "Invalid content types: {}. Valid options are: \ + content, images".format( + invalid_values + ) + ) + + for content in options["content_type"]: + getattr(self, "load_{}".format(content))(options) + + def load_content(self, options): + cms_content = self.fixtures_dir / options["content_fixture"] + + if not cms_content.exists(): + raise ValueError(f"No fixture file located at {cms_content}") + + with open(cms_content) as f: + initial_data = json.load(f) + + if initial_data: + # Delete existing content + try: + Site.objects.all().delete() + Page.objects.all().delete() + Revision.objects.all().delete() + Image.objects.all().delete() + + for Model in apps.get_app_config("lametro").get_models(): + if getattr(Model, "include_in_dump", False): + Model.objects.all().delete() + + except ObjectDoesNotExist as e: + self.stdout.write(self.style.WARNING(e)) + + call_command("loaddata", cms_content) + + self.stdout.write(self.style.SUCCESS("Initial data loaded!")) + else: + self.stdout.write(self.style.NOTICE("No initial data!")) + + def load_images(self, options): + initial_images_dir = self.fixtures_dir / "initial_images" + + for root, dirs, files in os.walk(initial_images_dir): + for filename in files: + source_path = os.path.join(root, filename) + dest_path = os.path.relpath(source_path, initial_images_dir) + + if default_storage.exists(dest_path): + self.stdout.write( + self.style.WARNING( + "{} aleady exists. Skipping...".format(dest_path) + ) + ) + continue + + else: + with open(source_path, "rb") as img: + default_storage.save(dest_path, img) + self.stdout.write( + self.style.SUCCESS( + "Copied {} to default storage".format(dest_path) + ) + ) + + self.stdout.write(self.style.SUCCESS("Initial images loaded!")) diff --git a/lametro/migrations/0015_aboutpage.py b/lametro/migrations/0015_aboutpage.py new file mode 100644 index 00000000..cfa291dc --- /dev/null +++ b/lametro/migrations/0015_aboutpage.py @@ -0,0 +1,96 @@ +# Generated by Django 3.2.25 on 2024-11-19 22:28 + +from django.db import migrations, models +import django.db.models.deletion +import lametro.blocks +import wagtail.blocks +import wagtail.contrib.typed_table_block.blocks +import wagtail.fields +import wagtail.images.blocks + + +class Migration(migrations.Migration): + + dependencies = [ + ("wagtailcore", "0089_log_entry_data_json_null_to_object"), + ("lametro", "0014_eventbroadcast_is_manually_live"), + ] + + operations = [ + migrations.CreateModel( + name="AboutPage", + fields=[ + ( + "page_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="wagtailcore.page", + ), + ), + ( + "body", + wagtail.fields.StreamField( + [ + ( + "section", + wagtail.blocks.StructBlock( + [ + ( + "heading", + wagtail.blocks.CharBlock(required=False), + ), + ( + "content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock(), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock(), + ), + ( + "table", + wagtail.contrib.typed_table_block.blocks.TypedTableBlock( + [ + ( + "rich_text", + wagtail.blocks.RichTextBlock(), + ) + ] + ), + ), + ( + "navigation", + lametro.blocks.NavigationBlock(), + ), + ] + ), + ), + ( + "anchor", + wagtail.blocks.CharBlock( + help_text="Add anchor to enable direct links to this section", + required=False, + ), + ), + ] + ), + ) + ], + use_json_field=True, + ), + ), + ], + options={ + "abstract": False, + }, + bases=("wagtailcore.page",), + ), + ] diff --git a/lametro/migrations/0016_alter_aboutpage_body.py b/lametro/migrations/0016_alter_aboutpage_body.py new file mode 100644 index 00000000..09b9dfe6 --- /dev/null +++ b/lametro/migrations/0016_alter_aboutpage_body.py @@ -0,0 +1,122 @@ +# Generated by Django 3.2.25 on 2024-11-21 19:18 + +from django.db import migrations +import lametro.blocks +import wagtail.blocks +import wagtail.contrib.typed_table_block.blocks +import wagtail.fields +import wagtail.images.blocks + + +class Migration(migrations.Migration): + + dependencies = [ + ("lametro", "0015_aboutpage"), + ] + + operations = [ + migrations.AlterField( + model_name="aboutpage", + name="body", + field=wagtail.fields.StreamField( + [ + ( + "section", + wagtail.blocks.StructBlock( + [ + ("heading", wagtail.blocks.CharBlock(required=False)), + ( + "content", + wagtail.blocks.StreamBlock( + [ + ("text", wagtail.blocks.RichTextBlock()), + ( + "image", + wagtail.images.blocks.ImageChooserBlock(), + ), + ( + "table", + wagtail.contrib.typed_table_block.blocks.TypedTableBlock( + [ + ( + "rich_text", + wagtail.blocks.RichTextBlock(), + ) + ] + ), + ), + ( + "navigation", + lametro.blocks.NavigationBlock(), + ), + ( + "responsive_element", + wagtail.blocks.StructBlock( + [ + ( + "breakpoints", + wagtail.blocks.StructBlock( + [ + ( + "sm", + wagtail.blocks.IntegerBlock( + default=1, + help_text="Mobile phone", + ), + ), + ( + "md", + wagtail.blocks.IntegerBlock( + default=2, + help_text="Tablet", + ), + ), + ( + "lg", + wagtail.blocks.IntegerBlock( + default=4, + help_text="Desktop", + ), + ), + ] + ), + ), + ( + "content", + wagtail.blocks.StreamBlock( + [ + ( + "table", + wagtail.contrib.typed_table_block.blocks.TypedTableBlock( + [ + ( + "rich_text", + wagtail.blocks.RichTextBlock(), + ) + ] + ), + ) + ] + ), + ), + ] + ), + ), + ] + ), + ), + ( + "anchor", + wagtail.blocks.CharBlock( + help_text="Add anchor to enable direct links to this section", + required=False, + ), + ), + ] + ), + ) + ], + use_json_field=True, + ), + ), + ] diff --git a/lametro/models/__init__.py b/lametro/models/__init__.py new file mode 100644 index 00000000..0ac20b34 --- /dev/null +++ b/lametro/models/__init__.py @@ -0,0 +1,2 @@ +from .legislative import * # noqa +from .cms import * # noqa diff --git a/lametro/models/cms.py b/lametro/models/cms.py new file mode 100644 index 00000000..dc2baab7 --- /dev/null +++ b/lametro/models/cms.py @@ -0,0 +1,20 @@ +from wagtail.models import Page +from wagtail.fields import StreamField +from wagtail.admin.panels import FieldPanel + +from lametro.blocks import ArticleBlock + + +class AboutPage(Page): + include_in_dump = True + + body = StreamField( + [ + ("section", ArticleBlock()), + ], + use_json_field=True, + ) + + content_panels = Page.content_panels + [ + FieldPanel("body"), + ] diff --git a/lametro/models.py b/lametro/models/legislative.py similarity index 100% rename from lametro/models.py rename to lametro/models/legislative.py diff --git a/lametro/templates/about/_board_report_statuses.html b/lametro/templates/about/_board_report_statuses.html deleted file mode 100644 index 657d792d..00000000 --- a/lametro/templates/about/_board_report_statuses.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - {% for status, obj in BILL_STATUS_DESCRIPTIONS.items %} - - - - - - - - {% endfor %} - -
Each Metro board report has one of 22 posible statuses:
StatusDisplayed StatusDescription
-

- {{status | title}} -

-

- {{status | title}} -

-

- {{obj.definition}} -

-
-

- {% if obj.search_term %} - {{obj.search_term}} - {% else %} -

N/A

- {% endif %} -

-
-

- {{obj.definition}} -

-
diff --git a/lametro/templates/about/_component_bill_type_table.html b/lametro/templates/about/_component_bill_type_table.html deleted file mode 100644 index 39a06f5d..00000000 --- a/lametro/templates/about/_component_bill_type_table.html +++ /dev/null @@ -1,43 +0,0 @@ -{% load lametro_extras %} - - - - - - - - - - - {% for leg_type in LEGISLATION_TYPE_DESCRIPTIONS %} - - - - - - {% endfor %} - -
TypeDescription
-

- - {% if leg_type.name == 'Board Box / Board Correspondence' %} - {{leg_type.name}} - {% else %} - {{leg_type.name}} - {% endif %} -

- -
- {% if leg_type.html_desc %} -

{{leg_type.desc|safe}}

- {% else %} -

{{leg_type.desc}}

- {% endif %} -
-
- {% if leg_type.html_desc %} -

{{leg_type.desc|safe}}

- {% else %} -

{{leg_type.desc}}

- {% endif %} -
diff --git a/lametro/templates/about/about.html b/lametro/templates/about/about.html deleted file mode 100644 index 6ba0f5e2..00000000 --- a/lametro/templates/about/about.html +++ /dev/null @@ -1,265 +0,0 @@ -{% extends "base_with_margins.html" %} -{% load adv_cache static %} -{% block title %}About Us{% endblock %} -{% block content %} - -{% cache 600 about_wrapper 'about' %} -
- -
-
-

About us

-

- This site offers tools for understanding and tracking the activity of the Board Members of the Los Angeles County Metropolitan Transportation Authority. - It connects Los Angeles County residents to Metro policy makers, for greater online public dialogue about issues related to transit services and programs. -

- -

- With this site, you can: -

- -
    -
  • Stay up-to-date with your local representatives
  • -
  • See the schedule of public events
  • -
  • Track and comment on issues you care about
  • -
-
- - -
- -
-
-
-

What is the Metro Board of Directors, and how does it work?

-

- The Los Angeles County Metropolitan Transportation Authority (Metro) - was created by the State of California to set policy, coordinate, plan, fund, build, and operate transit services and transportation programs throughout Los Angeles County. - Metro supports the transportation improvement programs of the 88 cities and 16 municipal transit operators within Los Angeles County, as well as LA's paratransit provider, - ASI, and its regional commuter rail service provider, Metrolink. -

-
- -
-

Board of Directors

-

- The Board of Directors is comprised of representatives from the City of Los Angeles, the County of Los Angeles, - the other incorporated cities and unincorporated areas in Los Angeles County, and a non-voting member representing the Governor. The full Board typically meets once a month to review budgets, - contracts, policies and programs, and make decisions about what to adopt, fund and build. -

-
- -
-

Board Member Appointments

-

- City of Los Angeles representatives include the Mayor of Los Angeles and the Mayor’s three appointees. Los Angeles County representatives include the Los Angeles County Board of Supervisors - representative of each of the five county districts. Representatives from the other incorporated cities and unincorporated areas in Los Angeles County are appointed by the City Selection Committee. -

-

- The Los Angeles County City Selection Committee is a group comprised of the mayor of each city within Los Angeles County, excluding the City of Los Angeles. Within the Committee, - there are four Subcommittees, one for each Sector of the county, comprised of the mayor of each city within each Sector: -

-
    -
  • North County/San Fernando Valley
  • -
  • San Gabriel Valley
  • -
  • Southeast/Long Beach
  • -
  • Southwest Corridor
  • -
-

- Each Sector Subcommittee nominates one mayor or council member from the Sector to serve on the Metro Board (unless a motion to nominate multiple candidates is made, - seconded and passed by a majority weighted vote). Nominees are approved and appointed to the Metro Board by the entire City Selection Committee, - whereby each city within the Committee may cast one “yea” or “nay” vote for every 10,000 residents. -

-

- Full documentation of this process can be found in the - - Los Angeles County City Selection Committee Rules and Regulations for Appointments to Los Angeles County Metropolitan Transportation Authority - . -

-
- -
-

Board Chair

-

- Each Metro Board Chair serves a one year term, from July 1st to June 30th. The Chair’s term rotates annually between the Mayor of Los Angeles, a member of the Los - Angeles County Board of Supervisors, and one of the City Selection Committee Members. -

-
- -
-

Board Committees

-

- Per the Administrative Ordinance, the Board of Directors has 5 standing committees. The Chair of the Board of Directors may designate other standing and ad hoc committees subject to concurrence of the Board of Directors. Learn more here. -

-
- -
-

Board Meetings

-

- Learn more about Metro Board of Directors meetings, and view meetings and agendas here. -

-
-
-
- -
-
-

Board Room Rules and Procedures

-

Metro Board follows specific procedures to hold meetings and organize its members.

-

- - Read about all Metro Rules & Procedures. - -

- -
    -
  • If you wish to address the Board, please sign up for public comment on the tablets available in the lobby before 9:45 a.m.
  • - -
  • General public comment is only to be used for topics within the Board’s jurisdiction and items not listed on the agenda.
  • - -
  • Public comment on agenda items will be taken as each item is considered.
  • - -
  • In accordance with the Ralph M. Brown Act, public comment will not be taken on items previously considered at a committee meeting where the public was given the opportunity to comment.
  • - -
  • Disorderly behavior or inappropriate comments at the podium may be cause for exclusion from further public comment for the day or removal from the Board room.
  • - -
  • You will be allowed one minute to speak.
  • - -
  • If you are unable to stand, a handheld microphone is available at the podium.
  • - -
  • Translation headsets are also available at the podium (Spanish 12, Korean 13).
  • - -
  • If you wish to address the Board, please submit a public comment request through one of the digital kiosks in the lobby.
  • -
- - - Code of Conduct - -
- -
-

Types of Board Reports

- {% include 'about/_component_bill_type_table.html' %} -
- -
-

Board Report Statuses

-

Each Metro board report has one of 22 posible statuses:

- - {% include 'about/_board_report_statuses.html' %} -
-
- -
-
-

Visit Metro Headquarters Building

-
- One Gateway Plaza
- Los Angeles, CA 90012-2952 -
-

Metro Headquarters is located on the corner of Cesar E. Chavez Ave. and Vignes St.

-

- - Get directions to Metro Headquarters. - -

-
-
- -
-
-

Data

-

- The data for this website comes from the - {{ CITY_COUNCIL_NAME }} board reports site, - a system built by - Granicus - using their - Legistar Legislative Management Suite. -

- -

- With the help of the - Legistar Web API, - we collect data daily and store it using the - Open Civic Data - standard and platform. Open Civic Data standardizes information about people, organizations, events and bills at any level of government: it was built in collaboration with - The Sunlight Foundation, - Google, - Granicus, - and Open North. -

- -
-
- -
-
-

Credits

- -

This site represents a collaborative effort of Metro’s Office of the CEO, Office of Board Administration, and Research & Records, Information Management, to ensure Board activity is transparent and easily accessible for the public.

- -

- The site was built by DataMade, - a civic technology company. They build open source technology using open data to empower journalists, researchers, governments and advocacy organizations. -

- -

DataMade Home - link opens in a new tab

- -
- -
- -
-
-

Contact us

- -

- For questions about or comments for the Metro Board, please contact boardclerk@metro.net. Written public comment can be mailed to: -

-
- Office of Board Administration
- 1 Gateway Plaza, Mail Stop 99-3-1
- Los Angeles, CA 90012 -
-

- If you are commenting on a specific item, please include the item number and your position on it - for, against, general comment, or item needs more consideration - in your message. - Written public comment (via mail or email) must be received by 5pm the evening prior to the meeting where the item will be considered. -

-

For questions about this website or Board records, please email boardreport@metro.net.

-
-
- -
-{% endcache %} - -{% endblock %} diff --git a/lametro/templates/base.html b/lametro/templates/base.html index ecee6732..682765d2 100644 --- a/lametro/templates/base.html +++ b/lametro/templates/base.html @@ -1,4 +1,4 @@ -{% load adv_cache extras lametro_extras markdownify static %} +{% load adv_cache extras lametro_extras markdownify static wagtailcore_tags %} @@ -51,7 +51,7 @@
  • Board of Directors
  • Committees
  • Contact Us
  • -
  • About Us
  • +
  • About Us