From ccd5c26d213eb7da33854d4df3862db4493aa487 Mon Sep 17 00:00:00 2001 From: Wes Dean Date: Wed, 25 Sep 2024 13:56:53 -0400 Subject: [PATCH 01/18] Initial commit of date time ADR --- .../0008-represent-time-with-iso8601-utc.md | 157 ++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md diff --git a/docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md b/docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md new file mode 100644 index 00000000..ec7d93e4 --- /dev/null +++ b/docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md @@ -0,0 +1,157 @@ +# 8. Represent time with ISO-8601 and UTC + +Date: 2024-09-25 + +## Status + +Accepted + +## Context + +ISO 8601 is a date / time representation standard and UTC (Universal +Coordinated Time) is a time standard that accounts for differences in +time zones. + +### ISO 8601 + +ISO-8601 is a date / time standard for representing a time (or interval +of times) in a structured manner. Generally speaking, the most significant +and least specfic component (the year) is in the left-most position and +each subsequent is less significant / more specific component follows to +the right. A `T` (capital letter T) is used to separate the date from the +time. + +#### Examples + +##### Date Only + +`YYYY-MM-dd` + +- 4 digits of the year +- hyphen +- 2 digits (0-padded) of the month +- hyphen +- 2 digits (again, 0-padded) of the day of month + +In this case, a date (e.g., 2024-09-25) actually represents the +start of that date. That is, '2024-09-25' is exactly the same +as '2024-09-25 00:00'. + +##### Date and Time + +`YYYY-MM-ddTHH:mm` + +- (same as "Date Only") +- T (the letter 'T') +- 2 digits (0-padded, 24-hour clock) of the hour +- colon +- 2 digits (0-padded) of the minute + +#### Omitted Components + +In general, if omitted, components are assumed to be zero (0). So, +for example, if only a date is represented, the time is assumed to +be zero (i.e., midnight). + +A consequence of this is when representing the end of an interval +(e.g., `closing` on a job posting), if a time is omitted (e.g., +'2024-09-25'), points in time on that date (e.g., 9am) would be +**after** the closing date as '2024-09-25T00:00:00' is less than +'2024:09-25T09:00:00'. + +Therefore, it's important to annotate job posting closing times +(i.e., the `closing` field) as the **end** of the date by not omitting +the closing time. So, to have a position close at the end of the +day on September 25th, one would use a `closing` value of +'2024-09-25T23:59'. + +### UTC + +Universal Coordinated Time (UTC) is a stanard for representing +date time values relative to a single time zone, namely GMT +(Greenwich Mean Time). Each time zone is annotated by the +offset in time for that time zone relative to UTC. + +Because the United States spans multiple time zones and because +the servers where the site are hosted represent time in UTC, and +because various localities may or may not observe Daylight +Saving Time, one must be specific and specify a time zone to +accompany a date time value. Eastern Daylight Savings time (EDT) is +articulated by including '-0400' onto the end of a date time +value; similarly, Eastern Standard Time (EST) uses '-0500'. For +time zones ahead of GMT (e.g., Central European Time (CET), a +plus sign is used (the U.S. is behind GMT while most of Europe +is ahead of GMT); therefore, CET is represented as +0100 and +Central European Summer Time (CEST) is represented as +0200. + +Times in GMT may be specified with or without a sign (i.e., +`-0000` == `0000` == `+0000` or with a `Z` (capital letter Z). + +Therefore, 01:23:45T06:07:08Z is a specific, non-relative, +fully-qualified time, regardless of what time zone someone is in, +whether it's Daylight Saving Time or not, etc.. It is unambiguous. + +#### Examples + +- Greenwich Mean Time (GMT): 0000 +- Eastern Standard Time (EST): -0500 +- Eastern Daylight Saving Time (EDT): -0400 +- Central Standard Time (CST): -0600 +- Central Daylight Saving Time (CDT): -0500 +- Mountain Standard Time (MST): -0700 +- Mountain Daylight Saving Time (MDT): -0600 +- Pacific Standard Time (PST): -0800 +- Pacific Daylight Saving Time (PDT: -0700 + +## Decision + +The team will use ISO-8061 date time values in UTC to represent dates +and times internally. This is most significant for job postings which +will be stored as UTC, not in Eastern time. + +Time zone calculations will only occur when dates are displayed. + +## Consequences + +### Job Postings + +#### Using UTC + +Assuming that job postings open at midnight Eastern time on a given +day and close just before midnight Eastern time on another date, +those times would be represented in the markdown like this: + +```YAML +# Opens at midnight EST on Tuesday, September 24th, 2024 +opens: 2024-09-25T04:00:00Z + +# Closes just before midnight EST on Wednesday, September 25th, 2024 +closes: 2024-09-26T03:59:59 -0400Z +``` + +#### Using Eastern Time instead of UTC + +The following is equivalent: + +```YAML +# Opens at midnight EST on Tuesday, September 24th, 2024 +opens: 2024-09-24T00:00:00 -0400 + +# Closes just before midnight EST on Wednesday, September 25th, 2024 +closes: 2024-09-25T23:59:59 -0400 +``` + +Both formats are unambiguous and fully-qualified. However, UTC is +the preferred offset so that all date time instances may be compared +directly and without time zone offset modification. + +### Display Logic + +Because the date time values will be in UTC, they will need to be +converted to the time zone of choice when being displayed. This may +be done statically by the site generator or dynamically via client-side +calculation. + +See +[Luxon docs on time zones](https://github.com/moment/luxon/blob/master/docs/zones.md#changing-zones) +for more information. From 5957e58d29fa15275124db45efff0fb7dddd241b Mon Sep 17 00:00:00 2001 From: Wes Dean Date: Wed, 25 Sep 2024 13:58:07 -0400 Subject: [PATCH 02/18] Cleanup spelling errors --- .../decisions/0008-represent-time-with-iso8601-utc.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md b/docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md index ec7d93e4..00d7a679 100644 --- a/docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md +++ b/docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md @@ -16,7 +16,7 @@ time zones. ISO-8601 is a date / time standard for representing a time (or interval of times) in a structured manner. Generally speaking, the most significant -and least specfic component (the year) is in the left-most position and +and least specific component (the year) is in the left-most position and each subsequent is less significant / more specific component follows to the right. A `T` (capital letter T) is used to separate the date from the time. @@ -67,7 +67,7 @@ day on September 25th, one would use a `closing` value of ### UTC -Universal Coordinated Time (UTC) is a stanard for representing +Universal Coordinated Time (UTC) is a standard for representing date time values relative to a single time zone, namely GMT (Greenwich Mean Time). Each time zone is annotated by the offset in time for that time zone relative to UTC. From 4c6774cb9498fbfc47b080b8d82656d96ce8045e Mon Sep 17 00:00:00 2001 From: Wes Dean <87149725+wesley-dean-gsa@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:21:16 -0400 Subject: [PATCH 03/18] Update and rename 0008-represent-time-with-iso8601-utc.md to 0008-represent-time-with-iso8601-eastern.md --- ...008-represent-time-with-iso8601-eastern.md | 120 +++++++++++++ .../0008-represent-time-with-iso8601-utc.md | 157 ------------------ 2 files changed, 120 insertions(+), 157 deletions(-) create mode 100644 docs/architecture/decisions/0008-represent-time-with-iso8601-eastern.md delete mode 100644 docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md diff --git a/docs/architecture/decisions/0008-represent-time-with-iso8601-eastern.md b/docs/architecture/decisions/0008-represent-time-with-iso8601-eastern.md new file mode 100644 index 00000000..2cea2bed --- /dev/null +++ b/docs/architecture/decisions/0008-represent-time-with-iso8601-eastern.md @@ -0,0 +1,120 @@ +# 8. Represent time with ISO-8601 and Eastern Time + +Date: 2024-09-25 + +## Status + +Accepted + +## Context + +ISO 8601 is a very common date / time representation standard. +Eastern Time (i.e., `America/New_York` or UTC-5 during Standard +Time and UCT-4 during Daylight Saving Time) is the most +frequently-used time zone on the project. + +### ISO 8601 + +ISO-8601 is a date / time standard for representing a time (or interval +of times) in a structured manner. Generally speaking, the most significant +and least specific component (the year) is in the left-most position and +each subsequent is less significant / more specific component follows to +the right. A `T` (capital letter T) is used to separate the date from the +time. + +#### Examples + +##### Date Only + +`YYYY-MM-dd` + +- 4 digits of the year +- hyphen +- 2 digits (0-padded) of the month +- hyphen +- 2 digits (again, 0-padded) of the day of month + +In this case, a date (e.g., 2024-09-25) actually represents the +start of that date. That is, '2024-09-25' is exactly the same +as '2024-09-25 00:00'. + +##### Date and Time + +`YYYY-MM-ddTHH:mm` + +- (same as "Date Only") +- T (the letter 'T') +- 2 digits (0-padded, 24-hour clock) of the hour +- colon +- 2 digits (0-padded) of the minute + +#### Omitted Components + +In general, if omitted, components are assumed to be zero (0). So, +for example, if only a date is represented, the time is assumed to +be zero (i.e., midnight). + +A consequence of this is when representing the end of an interval +(e.g., `closing` on a job posting), if a time is omitted (e.g., +'2024-09-25'), points in time on that date (e.g., 9am) would be +**after** the closing date as '2024-09-25T00:00' is less than +'2024:09-25T09:00'. + +As a deviance from this, an adjustment to the default time is +required: + +- for `opens` values, assume the time is 00:00 +- for `closes` values, assume the time is 23:59 + +### Time Zone + +The overwhelming majority of instances where dates are times are used +are relative to Eastern Time (i.e., the `America/New_York` time zone). +That is, job `opens` and `closes` fields, times for info sessions, etc. +are pretty much all Eastern time. Moreover, the folks who edit the +job postings and such use an Eastern Time perspective. + +## Decision + +The team will use ISO-8061 date time values in `America/New_York` +to represent dates and times internally. This is most significant +for job postings and info sessions. + +## Consequences + +### Job Postings + +Job posting `opens` and `closes` values will be represented in +the time zone used most frequently and by the most people. + +### Display Logic + +Job postings and info sessions will be displayed in Eastern +Time. + +### Time-Based State Inference + +The server runs in UTC. Therefore, when considering whether +a job posting is upcoming, open, or closed, the current time +needs to be "cast" into Eastern Time prior to any inferences +being made. + +#### Example + +10pm (22:00) Eastern Time is either 2am (02:00) or 3am (03:00) +depending on Daylight Saving Time or not. Therefore, the +server -- which is set to UTC -- would report back that the +current date is actually one ahead of what's expected. + +So, a job pobsting with a `closing` date of `2024-09-30T23:59` +would appear to be closed at 10pm (22:00) Eastern Time (which +is still in Daylight Saving) as the current time according +to the server would be `2024-10-01T02:00`. + +Therefore, it's important to cast the current time from UTC into +Eastern Time so that the closing time (`2024-09-30T23:59`) is +*after* the current time cast into Eastern (`2024-09-30T22:00`). + +See +[Luxon docs on time zones](https://github.com/moment/luxon/blob/master/docs/zones.md#changing-zones) +for more information. diff --git a/docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md b/docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md deleted file mode 100644 index 00d7a679..00000000 --- a/docs/architecture/decisions/0008-represent-time-with-iso8601-utc.md +++ /dev/null @@ -1,157 +0,0 @@ -# 8. Represent time with ISO-8601 and UTC - -Date: 2024-09-25 - -## Status - -Accepted - -## Context - -ISO 8601 is a date / time representation standard and UTC (Universal -Coordinated Time) is a time standard that accounts for differences in -time zones. - -### ISO 8601 - -ISO-8601 is a date / time standard for representing a time (or interval -of times) in a structured manner. Generally speaking, the most significant -and least specific component (the year) is in the left-most position and -each subsequent is less significant / more specific component follows to -the right. A `T` (capital letter T) is used to separate the date from the -time. - -#### Examples - -##### Date Only - -`YYYY-MM-dd` - -- 4 digits of the year -- hyphen -- 2 digits (0-padded) of the month -- hyphen -- 2 digits (again, 0-padded) of the day of month - -In this case, a date (e.g., 2024-09-25) actually represents the -start of that date. That is, '2024-09-25' is exactly the same -as '2024-09-25 00:00'. - -##### Date and Time - -`YYYY-MM-ddTHH:mm` - -- (same as "Date Only") -- T (the letter 'T') -- 2 digits (0-padded, 24-hour clock) of the hour -- colon -- 2 digits (0-padded) of the minute - -#### Omitted Components - -In general, if omitted, components are assumed to be zero (0). So, -for example, if only a date is represented, the time is assumed to -be zero (i.e., midnight). - -A consequence of this is when representing the end of an interval -(e.g., `closing` on a job posting), if a time is omitted (e.g., -'2024-09-25'), points in time on that date (e.g., 9am) would be -**after** the closing date as '2024-09-25T00:00:00' is less than -'2024:09-25T09:00:00'. - -Therefore, it's important to annotate job posting closing times -(i.e., the `closing` field) as the **end** of the date by not omitting -the closing time. So, to have a position close at the end of the -day on September 25th, one would use a `closing` value of -'2024-09-25T23:59'. - -### UTC - -Universal Coordinated Time (UTC) is a standard for representing -date time values relative to a single time zone, namely GMT -(Greenwich Mean Time). Each time zone is annotated by the -offset in time for that time zone relative to UTC. - -Because the United States spans multiple time zones and because -the servers where the site are hosted represent time in UTC, and -because various localities may or may not observe Daylight -Saving Time, one must be specific and specify a time zone to -accompany a date time value. Eastern Daylight Savings time (EDT) is -articulated by including '-0400' onto the end of a date time -value; similarly, Eastern Standard Time (EST) uses '-0500'. For -time zones ahead of GMT (e.g., Central European Time (CET), a -plus sign is used (the U.S. is behind GMT while most of Europe -is ahead of GMT); therefore, CET is represented as +0100 and -Central European Summer Time (CEST) is represented as +0200. - -Times in GMT may be specified with or without a sign (i.e., -`-0000` == `0000` == `+0000` or with a `Z` (capital letter Z). - -Therefore, 01:23:45T06:07:08Z is a specific, non-relative, -fully-qualified time, regardless of what time zone someone is in, -whether it's Daylight Saving Time or not, etc.. It is unambiguous. - -#### Examples - -- Greenwich Mean Time (GMT): 0000 -- Eastern Standard Time (EST): -0500 -- Eastern Daylight Saving Time (EDT): -0400 -- Central Standard Time (CST): -0600 -- Central Daylight Saving Time (CDT): -0500 -- Mountain Standard Time (MST): -0700 -- Mountain Daylight Saving Time (MDT): -0600 -- Pacific Standard Time (PST): -0800 -- Pacific Daylight Saving Time (PDT: -0700 - -## Decision - -The team will use ISO-8061 date time values in UTC to represent dates -and times internally. This is most significant for job postings which -will be stored as UTC, not in Eastern time. - -Time zone calculations will only occur when dates are displayed. - -## Consequences - -### Job Postings - -#### Using UTC - -Assuming that job postings open at midnight Eastern time on a given -day and close just before midnight Eastern time on another date, -those times would be represented in the markdown like this: - -```YAML -# Opens at midnight EST on Tuesday, September 24th, 2024 -opens: 2024-09-25T04:00:00Z - -# Closes just before midnight EST on Wednesday, September 25th, 2024 -closes: 2024-09-26T03:59:59 -0400Z -``` - -#### Using Eastern Time instead of UTC - -The following is equivalent: - -```YAML -# Opens at midnight EST on Tuesday, September 24th, 2024 -opens: 2024-09-24T00:00:00 -0400 - -# Closes just before midnight EST on Wednesday, September 25th, 2024 -closes: 2024-09-25T23:59:59 -0400 -``` - -Both formats are unambiguous and fully-qualified. However, UTC is -the preferred offset so that all date time instances may be compared -directly and without time zone offset modification. - -### Display Logic - -Because the date time values will be in UTC, they will need to be -converted to the time zone of choice when being displayed. This may -be done statically by the site generator or dynamically via client-side -calculation. - -See -[Luxon docs on time zones](https://github.com/moment/luxon/blob/master/docs/zones.md#changing-zones) -for more information. From 8287828b1d029d26bb4843aeea1576951a7151ed Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 13:54:03 -0400 Subject: [PATCH 04/18] Log some output --- _data/assetPaths.json | 2 +- _includes/layouts/jointts/job-listing-info-sessions.html | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/_data/assetPaths.json b/_data/assetPaths.json index bc6d8cd1..e35e2aab 100644 --- a/_data/assetPaths.json +++ b/_data/assetPaths.json @@ -6,4 +6,4 @@ "uswds.js": "/assets/js/uswds-init.js", "styles.css": "/assets/styles/styles-6UNDCLW2.css", "styles.map": "/assets/styles/styles-6UNDCLW2.css.map" -} +} \ No newline at end of file diff --git a/_includes/layouts/jointts/job-listing-info-sessions.html b/_includes/layouts/jointts/job-listing-info-sessions.html index bef66fa0..a1644fea 100644 --- a/_includes/layouts/jointts/job-listing-info-sessions.html +++ b/_includes/layouts/jointts/job-listing-info-sessions.html @@ -4,7 +4,7 @@ {% for session in pg.data.info_sessions %} - {% assign session_date = session.date | date: "%Y-%m-%d" %} + {% assign session_date = session.date | readableDate | date: "%Y-%m-%d" %} {% assign time_et = session.time | split: " ET" | first %} @@ -15,8 +15,11 @@ {% assign session_end_str = session_date | append: " " | append: session_end_time %} + {{ session_end_str }} + {% capture sessionEndTimestamp %}{% getDateTimeinSeconds session_end_str %}{% endcapture %} + {{ sessionEndTimestamp }} {% if sessionEndTimestamp > now %} {% assign future_sessions = true %} @@ -31,7 +34,7 @@
    {% for session in pg.data.info_sessions %} - {% assign session_date = session.date | date: "%Y-%m-%d" %} + {% assign session_date = session.date | readableDate | date: "%Y-%m-%d" %} {% assign time_et = session.time | split: " ET" | first %} From ef8cc5d2442677dbe356d3d2a457ca5635c6bd58 Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 13:57:13 -0400 Subject: [PATCH 05/18] Revert and commit updating logic --- .../jointts/job-listing-info-sessions.html | 7 ++---- _includes/layouts/jointts/job-listing.html | 25 +++++++++++++++---- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/_includes/layouts/jointts/job-listing-info-sessions.html b/_includes/layouts/jointts/job-listing-info-sessions.html index a1644fea..bef66fa0 100644 --- a/_includes/layouts/jointts/job-listing-info-sessions.html +++ b/_includes/layouts/jointts/job-listing-info-sessions.html @@ -4,7 +4,7 @@ {% for session in pg.data.info_sessions %} - {% assign session_date = session.date | readableDate | date: "%Y-%m-%d" %} + {% assign session_date = session.date | date: "%Y-%m-%d" %} {% assign time_et = session.time | split: " ET" | first %} @@ -15,11 +15,8 @@ {% assign session_end_str = session_date | append: " " | append: session_end_time %} - {{ session_end_str }} - {% capture sessionEndTimestamp %}{% getDateTimeinSeconds session_end_str %}{% endcapture %} - {{ sessionEndTimestamp }} {% if sessionEndTimestamp > now %} {% assign future_sessions = true %} @@ -34,7 +31,7 @@
      {% for session in pg.data.info_sessions %} - {% assign session_date = session.date | readableDate | date: "%Y-%m-%d" %} + {% assign session_date = session.date | date: "%Y-%m-%d" %} {% assign time_et = session.time | split: " ET" | first %} diff --git a/_includes/layouts/jointts/job-listing.html b/_includes/layouts/jointts/job-listing.html index c5382f82..776825dc 100644 --- a/_includes/layouts/jointts/job-listing.html +++ b/_includes/layouts/jointts/job-listing.html @@ -32,11 +32,26 @@

      {{ title }}

      {% assign future_sessions = false %} {% for session in sorted_info_sessions %} - {% assign session_date = session.date | date: "%s" %} - {% if session_date > now %} - {% assign future_sessions = true %} - {% break %} - {% endif %} + + {% assign session_date = session.date | date: "%Y-%m-%d" %} + + + {% assign time_et = session.time | split: " ET" | first %} + + + {% assign session_end_time = time_et | split: "-" | last | strip %} + + + {% assign session_end_str = session_date | append: " " | append: session_end_time %} + + {% capture sessionEndTimestamp %}{% getDateTimeinSeconds session_end_str %}{% endcapture %} + + + {% if sessionEndTimestamp > now %} + {% assign future_sessions = true %} + {% break %} + {% endif %} + {% endfor %} {% endfor %} {% if future_sessions %}
      From c467f8c0dfbb337fea9308373c334885a42cc4bc Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 14:02:10 -0400 Subject: [PATCH 06/18] Remove duplicate endfor --- _includes/layouts/jointts/job-listing.html | 1 - 1 file changed, 1 deletion(-) diff --git a/_includes/layouts/jointts/job-listing.html b/_includes/layouts/jointts/job-listing.html index 776825dc..42e1a103 100644 --- a/_includes/layouts/jointts/job-listing.html +++ b/_includes/layouts/jointts/job-listing.html @@ -51,7 +51,6 @@

      {{ title }}

      {% assign future_sessions = true %} {% break %} {% endif %} - {% endfor %} {% endfor %} {% if future_sessions %}
      From 38bc5fc7bf4c77c5c1ad7acb65391cc06f830c0e Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 14:10:49 -0400 Subject: [PATCH 07/18] Update session item logic --- _includes/layouts/jointts/job-listing.html | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/_includes/layouts/jointts/job-listing.html b/_includes/layouts/jointts/job-listing.html index 42e1a103..5d093a0a 100644 --- a/_includes/layouts/jointts/job-listing.html +++ b/_includes/layouts/jointts/job-listing.html @@ -62,10 +62,24 @@

      Attend an information session to learn more about these roles, working at TTS, and our application process. Register for a session using the links below.
        {% for session in sorted_info_sessions %} - {% assign session_date = session.date | date: "%s" %} - {% if session_date > now %} -
      • -

        {{session.headline}} at {{session.time}}

        + + {% assign session_date = session.date | date: "%Y-%m-%d" %} + + + {% assign time_et = session.time | split: " ET" | first %} + + + {% assign session_end_time = time_et | split: "-" | last | strip %} + + + {% assign session_end_str = session_date | append: " " | append: session_end_time %} + + {% capture sessionEndTimestamp %}{% getDateTimeinSeconds session_end_str %}{% endcapture %} + + + {% if sessionEndTimestamp > now %} +
      • +

        {{ session.date | date: "%A, %B %d, %Y" }} at {{session.time}}

      • {% endif %} {% endfor %} From 32db35dfa0b8223b3c4c2a90982a9052fc87a048 Mon Sep 17 00:00:00 2001 From: Wesley Dean Date: Tue, 1 Oct 2024 19:36:33 +0000 Subject: [PATCH 08/18] [MegaLinter] Apply linters fixes --- _data/assetPaths.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/assetPaths.json b/_data/assetPaths.json index e35e2aab..bc6d8cd1 100644 --- a/_data/assetPaths.json +++ b/_data/assetPaths.json @@ -6,4 +6,4 @@ "uswds.js": "/assets/js/uswds-init.js", "styles.css": "/assets/styles/styles-6UNDCLW2.css", "styles.map": "/assets/styles/styles-6UNDCLW2.css.map" -} \ No newline at end of file +} From 474ef765dab404b7b8ff0e4f7bce7356facd3220 Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 16:03:27 -0400 Subject: [PATCH 09/18] Add missing class --- _includes/layouts/jointts/job-listing.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/layouts/jointts/job-listing.html b/_includes/layouts/jointts/job-listing.html index 5d093a0a..3a05fcf6 100644 --- a/_includes/layouts/jointts/job-listing.html +++ b/_includes/layouts/jointts/job-listing.html @@ -60,7 +60,7 @@

        Attend an information session to learn more about these roles, working at TTS, and our application process. Register for a session using the links below. -
          +
            {% for session in sorted_info_sessions %} {% assign session_date = session.date | date: "%Y-%m-%d" %} From 20a48c886fe56357cae3eaf8a44af4ea23af87ac Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 16:21:37 -0400 Subject: [PATCH 10/18] Log some data --- _includes/layouts/jointts/job-listing.html | 7 +++++++ _includes/scripts.html | 4 ++++ pages/jointts/positions/login-gov-data-analyist.md | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/_includes/layouts/jointts/job-listing.html b/_includes/layouts/jointts/job-listing.html index 3a05fcf6..718346cd 100644 --- a/_includes/layouts/jointts/job-listing.html +++ b/_includes/layouts/jointts/job-listing.html @@ -35,6 +35,8 @@

            {{ title }}

            {% assign session_date = session.date | date: "%Y-%m-%d" %} + {{ session_date }} + {% assign time_et = session.time | split: " ET" | first %} @@ -46,12 +48,17 @@

            {{ title }}

            {% capture sessionEndTimestamp %}{% getDateTimeinSeconds session_end_str %}{% endcapture %} + {{ session_end_str }} + {{ sessionEndTimestamp }} + {{ now }} + {% if sessionEndTimestamp > now %} {% assign future_sessions = true %} {% break %} {% endif %} {% endfor %} + {% if future_sessions %}
            diff --git a/_includes/scripts.html b/_includes/scripts.html index 8a3882c7..09ad465b 100644 --- a/_includes/scripts.html +++ b/_includes/scripts.html @@ -53,6 +53,8 @@ const currentTimestamp = Math.floor(new Date(now).getTime() / 1000); const infoSessionsGroup = document.querySelectorAll(".info-sessions-list"); + + console.log(infoSessionsGroup) infoSessionsGroup.forEach(sessionGroup => { let visibleSessions = 0; @@ -60,6 +62,8 @@ Array.from(sessionGroup.children).forEach(session => { const session_timestamp = session.getAttribute('data-session-end-timestamp'); + console.log(currentTimestamp); + // Hide past sessions if (session_timestamp < currentTimestamp) { session.style.display = 'none'; // Hide past session diff --git a/pages/jointts/positions/login-gov-data-analyist.md b/pages/jointts/positions/login-gov-data-analyist.md index 3b3758fc..55441926 100644 --- a/pages/jointts/positions/login-gov-data-analyist.md +++ b/pages/jointts/positions/login-gov-data-analyist.md @@ -127,7 +127,7 @@ key_objectives: info_sessions: - link: https://gsa.zoomgov.com/webinar/register/WN_vCL_dfX_Swqb9ZIbNatDtw date: 2024-10-01 - time: 3:00pm-4:00pm ET (12:00pm - 1:00pm PT) + time: 6:00pm-7:00pm ET (12:00pm - 1:00pm PT) # Make sure to leave the | on the first line. Start your content on the following line. role_summary: | From 79177016be63b103867c7616e52d0aaf221bf9a3 Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 16:32:48 -0400 Subject: [PATCH 11/18] Another test --- _includes/layouts/jointts/job-listing.html | 6 ------ _includes/scripts.html | 1 - pages/jointts/positions/login-gov-data-analyist.md | 2 +- 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/_includes/layouts/jointts/job-listing.html b/_includes/layouts/jointts/job-listing.html index 718346cd..d9d4ed53 100644 --- a/_includes/layouts/jointts/job-listing.html +++ b/_includes/layouts/jointts/job-listing.html @@ -35,8 +35,6 @@

            {{ title }}

            {% assign session_date = session.date | date: "%Y-%m-%d" %} - {{ session_date }} - {% assign time_et = session.time | split: " ET" | first %} @@ -47,10 +45,6 @@

            {{ title }}

            {% assign session_end_str = session_date | append: " " | append: session_end_time %} {% capture sessionEndTimestamp %}{% getDateTimeinSeconds session_end_str %}{% endcapture %} - - {{ session_end_str }} - {{ sessionEndTimestamp }} - {{ now }} {% if sessionEndTimestamp > now %} diff --git a/_includes/scripts.html b/_includes/scripts.html index 09ad465b..2a79346c 100644 --- a/_includes/scripts.html +++ b/_includes/scripts.html @@ -54,7 +54,6 @@ const infoSessionsGroup = document.querySelectorAll(".info-sessions-list"); - console.log(infoSessionsGroup) infoSessionsGroup.forEach(sessionGroup => { let visibleSessions = 0; diff --git a/pages/jointts/positions/login-gov-data-analyist.md b/pages/jointts/positions/login-gov-data-analyist.md index 55441926..3b3758fc 100644 --- a/pages/jointts/positions/login-gov-data-analyist.md +++ b/pages/jointts/positions/login-gov-data-analyist.md @@ -127,7 +127,7 @@ key_objectives: info_sessions: - link: https://gsa.zoomgov.com/webinar/register/WN_vCL_dfX_Swqb9ZIbNatDtw date: 2024-10-01 - time: 6:00pm-7:00pm ET (12:00pm - 1:00pm PT) + time: 3:00pm-4:00pm ET (12:00pm - 1:00pm PT) # Make sure to leave the | on the first line. Start your content on the following line. role_summary: | From e96c8bf5b52bd14ab4a17c865013468d63734473 Mon Sep 17 00:00:00 2001 From: narumigsa Date: Tue, 1 Oct 2024 13:34:05 -0700 Subject: [PATCH 12/18] 418: Vote.gov description update --- _data/services.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/services.yaml b/_data/services.yaml index 3f009ee4..b23051fd 100644 --- a/_data/services.yaml +++ b/_data/services.yaml @@ -68,7 +68,7 @@ services: logo: _img/LOGO_votegov_2024.png logo_alt_text: Vote category: platforms - description: The digital authoritative, trusted source for voting information. + description: The trusted source for accurate, official voting information from the U.S. government to the American public. Vote.gov’s mission is to make it easy for all eligible voters to understand how to register and vote. - name: Centers of Excellence link: https://coe.gsa.gov link_alt_text: Link to COE homepage From f38feada0a2897d9ffcce0d0b400c71c42322717 Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 16:46:57 -0400 Subject: [PATCH 13/18] Readd logging --- _includes/layouts/jointts/job-listing.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_includes/layouts/jointts/job-listing.html b/_includes/layouts/jointts/job-listing.html index d9d4ed53..c5c588ce 100644 --- a/_includes/layouts/jointts/job-listing.html +++ b/_includes/layouts/jointts/job-listing.html @@ -77,6 +77,9 @@

            {% capture sessionEndTimestamp %}{% getDateTimeinSeconds session_end_str %}{% endcapture %} + {{ sessionEndTimestamp }} + {{ now }} + {% if sessionEndTimestamp > now %}
          • From 76e4abe795fdc62bf003b5311e63a41efb598478 Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 16:49:13 -0400 Subject: [PATCH 14/18] Log the time too --- _includes/layouts/jointts/job-listing.html | 1 + 1 file changed, 1 insertion(+) diff --git a/_includes/layouts/jointts/job-listing.html b/_includes/layouts/jointts/job-listing.html index c5c588ce..df10d152 100644 --- a/_includes/layouts/jointts/job-listing.html +++ b/_includes/layouts/jointts/job-listing.html @@ -77,6 +77,7 @@

            {% capture sessionEndTimestamp %}{% getDateTimeinSeconds session_end_str %}{% endcapture %} + {{ session_end_time }} {{ sessionEndTimestamp }} {{ now }} From d7071a55e3c0df5bdf86b1c9d3a20293a7c1084b Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 16:52:23 -0400 Subject: [PATCH 15/18] Change the endTimestamp output --- .eleventy.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.eleventy.js b/.eleventy.js index 7bd504f4..0d396662 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -177,12 +177,12 @@ module.exports = function (config) { } // Format the datetime string for timestamp conversion - const formattedDatetime = `${date} ${String(hours).padStart(2, "0")}:${minutes} EST`; + const formattedDatetime = `${date} ${String(hours).padStart(2, "0")}:${minutes} ET`; // Convert to timestamp (in seconds) const timestamp = Math.floor(new Date(formattedDatetime).getTime() / 1000); - return timestamp; + return formattedDatetime; } // Get State From Dates From 89273624fe7216025a1e2e774c98e64b4c7198b2 Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 16:54:33 -0400 Subject: [PATCH 16/18] Revert output --- .eleventy.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eleventy.js b/.eleventy.js index 0d396662..74bcc438 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -182,7 +182,7 @@ module.exports = function (config) { // Convert to timestamp (in seconds) const timestamp = Math.floor(new Date(formattedDatetime).getTime() / 1000); - return formattedDatetime; + return timestamp; } // Get State From Dates From 133f9d492d751e3055a498360e396d919db6fed2 Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Tue, 1 Oct 2024 16:59:28 -0400 Subject: [PATCH 17/18] Readd the removed qualifications field --- pages/jointts/positions/login-gov-data-analyist.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pages/jointts/positions/login-gov-data-analyist.md b/pages/jointts/positions/login-gov-data-analyist.md index 3b3758fc..89a53be6 100644 --- a/pages/jointts/positions/login-gov-data-analyist.md +++ b/pages/jointts/positions/login-gov-data-analyist.md @@ -137,6 +137,14 @@ role_summary: | This position is a tactical, collaborative, outward-facing role that will require a blend of product and data expertise, a focus on consistency and quality, and a future-focused view for how Login.gov can use data in service of its mission. +qualifications: | + Provide as much detail as possible on your resume so that we can evaluate your + previous experience. Follow our [guidance on creating a federal style resume](https://join.tts.gsa.gov/resume/). Failure to provide required information may result in disqualification. + + For each job on your resume, provide: + - The exact dates you held each job (from month/year to month/year or "present") + - Number of hours per week you worked (if part time) + # Make sure to leave the | on the first line. Start your content on the following line. specialized_requirements: | - Implementing and integrating appropriate technology, architecture, and tooling to support data science activities, including artificial intelligence/machine learning capabilities. From 483076d560b864b4770c319771316cdaa9db399a Mon Sep 17 00:00:00 2001 From: Ximena Kilroe Date: Wed, 2 Oct 2024 11:01:59 -0400 Subject: [PATCH 18/18] Force display of all global info sessions --- .../jointts/info-sessions-sidebar.html | 30 ++++--------------- 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/_includes/layouts/jointts/info-sessions-sidebar.html b/_includes/layouts/jointts/info-sessions-sidebar.html index d77ca383..2129d145 100644 --- a/_includes/layouts/jointts/info-sessions-sidebar.html +++ b/_includes/layouts/jointts/info-sessions-sidebar.html @@ -4,31 +4,13 @@

            Find out more

            Join us at one of our monthly online information sessions. Come learn more about working at TTS, available positions, and our application process. Register for a session below.

            -
              +
                {% for session in sorted_info_sessions %} - - {% assign session_date = session.date | date: "%Y-%m-%d" %} - - - {% assign time_et = session.time-et | split: " ET" %} - - - {% assign session_end_time = time_et | split: "-" | last | strip %} - - - {% assign session_end_str = session_date | append: " " | append: session_end_time %} - - {% capture sessionEndTimestamp %}{% getDateTimeinSeconds session_end_str %}{% endcapture %} - - {% assign now = 'now' | date: "%s" %} - - {% if sessionEndTimestamp > now %} -
              • - {{ session.date | date: "%A, %B %d, %Y" }} -

                {{ session.time-et }}

                -

                ({{ session.time-pt }})

                -
              • - {% endif %} +
              • + {{ session.date | date: "%A, %B %d, %Y" }} +

                {{ session.time-et }}

                +

                ({{ session.time-pt }})

                +
              • {% endfor %}