In automated CSV import, update events if they already exist - refs BT#7802

1.9.x
Yannick Warnier 11 years ago
parent 6620d44438
commit c2707ac18e
  1. 92
      main/cron/import_csv.php

@ -803,6 +803,8 @@ class ImportCsv
} }
foreach ($eventsToCreate as $event) { foreach ($eventsToCreate as $event) {
$update = false;
$item = null;
if (!isset($event[$extraFieldName])) { if (!isset($event[$extraFieldName])) {
$this->logger->addInfo( $this->logger->addInfo(
"No external_calendar_itemID found. Skipping ..." "No external_calendar_itemID found. Skipping ..."
@ -810,16 +812,23 @@ class ImportCsv
continue; continue;
} else { } else {
$externalEventId = $event[$extraFieldName]; $externalEventId = $event[$extraFieldName];
if (empty($externalEventId)) {
$this->logger->addInfo(
"external_calendar_itemID was set but empty. Skipping ..."
);
continue;
}
$item = $extraFieldValue->get_item_id_from_field_variable_and_field_value( $item = $extraFieldValue->get_item_id_from_field_variable_and_field_value(
$extraFieldName, $extraFieldName,
$externalEventId $externalEventId
); );
if (!empty($item) || empty($externalEventId)) { if (!empty($item)) {
$this->logger->addInfo( $this->logger->addInfo(
"Event #$externalEventId was already added . Skipping ..." "Event #$externalEventId was already added. Updating ..."
); );
continue; $update = true;
//continue;
} }
} }
@ -849,35 +858,58 @@ class ImportCsv
continue; continue;
} }
$eventId = $agenda->add_event( if ($update) { //the event already exists, just update
$event['start'], $eventId = $agenda->edit_event(
$event['end'], $item,
false, $event['start'],
$event['title'], $event['end'],
$content, false,
array('everyone'), // send to $event['title'],
false, //$addAsAnnouncement = false $content,
null, // $parentEventId array('everyone'), // send to
array(), //$attachmentArray = array(), array(), //$attachmentArray = array(),
null, //$attachmentComment = null, null, //$attachmentComment = null,
$eventComment $eventComment
);
if (!empty($eventId)) {
$extraFieldValue->save(
array(
'field_value' => $externalEventId,
'field_id' => $extraFieldInfo['id'],
'calendar_event_id' => $eventId
)
);
$this->logger->addInfo(
"Event added: #$eventId"
); );
} else { if ($eventId !== false) {
$this->logger->addInfo( $this->logger->addInfo(
"Error while creating event." "Event updated: #$eventId"
);
} else {
$this->logger->addInfo(
"Error while updating event."
);
}
} else { //New event. Create it.
$eventId = $agenda->add_event(
$event['start'],
$event['end'],
false,
$event['title'],
$content,
array('everyone'), // send to
false, //$addAsAnnouncement = false
null, // $parentEventId
array(), //$attachmentArray = array(),
null, //$attachmentComment = null,
$eventComment
); );
if (!empty($eventId)) {
$extraFieldValue->save(
array(
'field_value' => $externalEventId,
'field_id' => $extraFieldInfo['id'],
'calendar_event_id' => $eventId
)
);
$this->logger->addInfo(
"Event added: #$eventId"
);
} else {
$this->logger->addInfo(
"Error while creating event."
);
}
} }
} }
} }

Loading…
Cancel
Save