<?xml version="1.0" encoding="iso-8859-1"?>
<data>
% foreach my $thing (@stuff) {
    <event 
        start="<% $thing->{start} %>" 
        title="<% $thing->{title} %>"
        icon="<% $thing->{icon} %>"
        link="<% $thing->{link} %>"
    >
        <% $thing->{title} %>
    <% $thing->{info} %>
    </event>
% }
</data>



<%args>
$id
</%args>

<%init>
my %idmap = qw(
    D Derivation
    A Attribution
    P Precovery
    I Identification
    R Removal
);

my %monfs = qw(
    1 Jan
    2 Feb
    3 Mar
    4 Apr
    5 May
    6 Jun
    7 Jul
    8 Aug
    9 Sep
    10 Oct
    11 Nov
    12 Dec
);

my $inst = $m->notes('INST');
my $model = $m->notes('MODEL');

use Astro::Time;
use PS::MOPS::Constants qw(:all);
use PS::MOPS::DC::Field;
use PS::MOPS::DC::DerivedObject;
use PS::MOPS::DC::History;
my $events = modch_retrieve($inst, derivedobjectId => $id);

my @stuff;

# Raw detections for this derived object.
my $start_str;
my $title_str;
my $info;
my $ev;

# History.
foreach $ev (sort { $a->eventTime <=> $b->eventTime } @{$events}) {

    my $field = modcf_retrieve($inst, fieldId => $ev->fieldId);
    my ($day, $month, $year, $dayfrac) = mjd2cal($field->epoch);
    my ($sign, $hour, $minute, $sec) = time2hms($dayfrac, 'H',  2);
    my $do = modcdo_retrieve($inst, derivedobjectId => $ev->derivedobjectId);

    $start_str = sprintf "%s %02d %4d %02d:%02d:%02d GMT", 
        $monfs{$month}, $day, $year, $hour, $minute, $sec;
    $title_str = $idmap{$ev->eventType} . ' ' . $do->objectName;
    $info = sprintf <<"INFO", $ev->eventId;
Event ID %d
INFO

    my $thm;
    if ($ev->classification eq $MOPS_EFF_UNFOUND) {
        $thm = '/images/red-circle.png';
    }
    else {
        $thm = '/images/green-circle.png';
    }

    push @stuff, {
        start => $start_str,
        icon => $thm,
        link => sprintf("/model/$model/dohist.html?derivedobjectId=%d", $do->derivedobjectId),
        title => $title_str,
        info => $info,
    };
}

$r->content_type('text/xml');
</%init>
