mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 11:44:02 +00:00
Merge pull request #3090 from AndrewKvalheim/api-time-zone
Correct time zone of API dates
This commit is contained in:
commit
749115e507
4 changed files with 37 additions and 7 deletions
|
|
@ -6,8 +6,7 @@ class EventScheduleSerializer < ActiveModel::Serializer
|
|||
attributes :date, :room
|
||||
|
||||
def date
|
||||
t = object.start_time
|
||||
t.blank? ? '' : %( #{I18n.l t, format: :short}#{t.formatted_offset(false)} )
|
||||
object.start_time&.change(zone: object.event.program.conference.timezone)
|
||||
end
|
||||
|
||||
def room
|
||||
|
|
|
|||
|
|
@ -11,8 +11,7 @@ class EventSerializer < ActiveModel::Serializer
|
|||
end
|
||||
|
||||
def scheduled_date
|
||||
t = object.time
|
||||
t.blank? ? '' : %( #{I18n.l t, format: :short}#{t.formatted_offset(false)} )
|
||||
object.time&.change(zone: object.program.conference.timezone)
|
||||
end
|
||||
|
||||
def speaker_ids
|
||||
|
|
|
|||
26
spec/serializers/event_schedule_serializer_spec.rb
Normal file
26
spec/serializers/event_schedule_serializer_spec.rb
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe EventScheduleSerializer, type: :serializer do
|
||||
let(:start) { DateTime.new(2000, 1, 2, 3, 4, 5) }
|
||||
let(:timezone) { 'Etc/GMT+11' }
|
||||
let(:conference) do
|
||||
create(:conference, start_date: start.to_date,
|
||||
start_hour: start.hour,
|
||||
timezone: timezone)
|
||||
end
|
||||
let(:program) { create(:program, conference: conference) }
|
||||
let(:event) { create(:event, program: program) }
|
||||
let(:event_schedule) { create(:event_schedule, event: event, start_time: start) }
|
||||
let(:serializer) { described_class.new(event_schedule) }
|
||||
|
||||
it 'sets date and room' do
|
||||
expected_json = {
|
||||
date: '2000-01-02T03:04:05.000-11:00',
|
||||
room: event_schedule.room.guid
|
||||
}.to_json
|
||||
|
||||
expect(serializer.to_json).to eq expected_json
|
||||
end
|
||||
end
|
||||
|
|
@ -2,7 +2,13 @@
|
|||
|
||||
require 'spec_helper'
|
||||
describe EventSerializer, type: :serializer do
|
||||
let(:event) { create(:event, title: 'Some Talk', abstract: 'Lorem ipsum dolor sit amet') }
|
||||
let(:conference) { create(:conference, timezone: 'UTC') }
|
||||
let(:program) { create(:program, conference: conference) }
|
||||
let(:event) do
|
||||
create(:event, program: program,
|
||||
title: 'Some Talk',
|
||||
abstract: 'Lorem ipsum dolor sit amet')
|
||||
end
|
||||
let(:serializer) { EventSerializer.new(event) }
|
||||
|
||||
context 'event does not have date, room and tracks assigned' do
|
||||
|
|
@ -12,7 +18,7 @@ describe EventSerializer, type: :serializer do
|
|||
url: "http://localhost:3000/conferences/#{event.conference.short_title}/program/proposals/#{event.id}",
|
||||
title: 'Some Talk',
|
||||
length: 30,
|
||||
scheduled_date: '',
|
||||
scheduled_date: nil,
|
||||
language: nil,
|
||||
abstract: 'Lorem ipsum dolor sit amet',
|
||||
speaker_ids: event.speaker_ids,
|
||||
|
|
@ -43,7 +49,7 @@ describe EventSerializer, type: :serializer do
|
|||
url: "http://localhost:3000/conferences/#{event.conference.short_title}/program/proposals/#{event.id}",
|
||||
title: 'Some Talk',
|
||||
length: 30,
|
||||
scheduled_date: ' 2014-03-04T09:00:00+0000 ',
|
||||
scheduled_date: '2014-03-04T09:00:00.000Z',
|
||||
language: 'English',
|
||||
abstract: 'Lorem ipsum dolor sit amet',
|
||||
speaker_ids: [speaker.id],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue