Show summarier capturing the actual weeks in the user's timezone
https://3.basecamp.com/2914079/buckets/37331921/todos/9010176047#__recording_9037056688
This commit is contained in:
@@ -22,7 +22,7 @@ class Admin::PromptSandboxesController < AdminController
|
||||
|
||||
private
|
||||
def build_weekly_highlights
|
||||
period = PeriodHighlights::Period.new(Current.user.collections, starts_at: @day_timeline.day.utc.beginning_of_week(:sunday), duration: 1.week)
|
||||
period = PeriodHighlights::Period.new(Current.user.collections, starts_at: @day_timeline.day.beginning_of_week(:sunday), duration: 1.week)
|
||||
summarizer = Event::Summarizer.new(period.events, prompt: @prompt, llm_model: @llm_model)
|
||||
content = summarizer.summarized_content
|
||||
PeriodHighlights.new(content: content, cost_in_microcents: summarizer.cost.in_microcents)
|
||||
|
||||
@@ -18,7 +18,7 @@ class PeriodHighlights::Period
|
||||
end
|
||||
|
||||
def key
|
||||
@keu ||= Digest::SHA256.hexdigest(events.ids.sort.join("-"))
|
||||
@key ||= Digest::SHA256.hexdigest(events.ids.sort.join("-"))
|
||||
end
|
||||
|
||||
private
|
||||
@@ -27,6 +27,6 @@ class PeriodHighlights::Period
|
||||
end
|
||||
|
||||
def normalize_anchor_date(date)
|
||||
date.utc.beginning_of_day
|
||||
date.beginning_of_day
|
||||
end
|
||||
end
|
||||
|
||||
@@ -34,7 +34,15 @@ class User::DayTimeline
|
||||
end
|
||||
|
||||
def weekly_highlights
|
||||
@weekly_highlights ||= user.weekly_highlights_for(day - 1.week)
|
||||
@weekly_highlights ||= user.weekly_highlights_for(week_starts_at - 1.week)
|
||||
end
|
||||
|
||||
def week_starts_at
|
||||
day.beginning_of_week(:sunday)
|
||||
end
|
||||
|
||||
def week_ends_at
|
||||
week_starts_at + 1.week
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -3,7 +3,6 @@ module User::Role
|
||||
|
||||
included do
|
||||
enum :role, %i[ admin member system ].index_by(&:itself), scopes: false
|
||||
scope :regular, -> { where(role: %i[ admin member ]) }
|
||||
|
||||
scope :member, -> { where(role: :member) }
|
||||
scope :active, -> { where(active: true, role: %i[ admin member ]) }
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<section class="events__day" data-controller="related-element"
|
||||
data-related-element-highlight-class="event--related">
|
||||
<% if day_timeline.has_activity? %>
|
||||
<div>highlights: <%= day_timeline.has_weekly_highlights? %></div>
|
||||
<div class="events__columns">
|
||||
<%= render "events/day_timeline_column", event_type: "added", day_timeline: day_timeline %>
|
||||
<%= render "events/day_timeline_column", event_type: "updated", day_timeline: day_timeline %>
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
<span class="events__day-time min-width max-width">
|
||||
<span class="overflow-ellipsis">
|
||||
<span>Weekly Highlights for</span>
|
||||
<%= local_datetime_tag day_timeline.weekly_highlights.starts_at, style: :shortdate %>
|
||||
<%= local_datetime_tag day_timeline.week_starts_at, style: :shortdate %>
|
||||
–
|
||||
<%= local_datetime_tag day_timeline.weekly_highlights.ends_at, style: :shortdate %>
|
||||
<%= local_datetime_tag day_timeline.week_ends_at - 1.day, style: :shortdate %>
|
||||
</span>
|
||||
</span>
|
||||
</h2>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</header>
|
||||
|
||||
<%= render "layouts/shared/flash" %>
|
||||
<%= render "layouts/shared/time_zone" %>
|
||||
<%= render "layouts/shared/time_zone" if Current.user %>
|
||||
|
||||
<main id="main">
|
||||
<%= yield %>
|
||||
|
||||
Generated
+1
@@ -419,6 +419,7 @@ ActiveRecord::Schema[8.1].define(version: 2025_09_05_101432) do
|
||||
t.datetime "created_at", null: false
|
||||
t.string "title"
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["title"], name: "index_tags_on_account_id_and_title", unique: true
|
||||
end
|
||||
|
||||
create_table "user_settings", force: :cascade do |t|
|
||||
|
||||
+17
-1
@@ -2858,7 +2858,23 @@ indexes:
|
||||
nulls_not_distinct:
|
||||
comment:
|
||||
valid: true
|
||||
tags: []
|
||||
tags:
|
||||
- !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition
|
||||
table: tags
|
||||
name: index_tags_on_account_id_and_title
|
||||
unique: true
|
||||
columns:
|
||||
- title
|
||||
lengths: {}
|
||||
orders: {}
|
||||
opclasses: {}
|
||||
where:
|
||||
type:
|
||||
using:
|
||||
include:
|
||||
nulls_not_distinct:
|
||||
comment:
|
||||
valid: true
|
||||
user_settings:
|
||||
- !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition
|
||||
table: user_settings
|
||||
|
||||
Reference in New Issue
Block a user