/** * Add my subscribed calendars. * @param SavedCalendarSubscriptions $savedCalendarSubscriptions * @param User $user * @param string $subscribedCalendarIds * @return \SavedCalendarSubscriptions */ private static function addMySubscribedCalendars(SavedCalendarSubscriptions $savedCalendarSubscriptions, User $user, $subscribedCalendarIds) { $mySubscribedCalendars = CalendarUtil::getUserSubscribedCalendars($user); if (count($mySubscribedCalendars) > 0) { ZurmoConfigurationUtil::setByUserAndModuleName($user, 'CalendarsModule', 'mySubscribedCalendarSelections', $subscribedCalendarIds); $subscribedCalendarIdArray = array(); if ($subscribedCalendarIds != null) { $subscribedCalendarIdArray = explode(',', $subscribedCalendarIds); // Not Coding Standard } foreach ($mySubscribedCalendars as $key => $mySubscribedCalendar) { CalendarUtil::setSharedCalendarColor($mySubscribedCalendar); if (in_array($mySubscribedCalendar->id, $subscribedCalendarIdArray)) { $savedCalendarSubscriptions->addSubscribedToCalendar($mySubscribedCalendar, true); } else { $savedCalendarSubscriptions->addSubscribedToCalendar($mySubscribedCalendar, false); } } } }
public function testMeetingsThanSpanForMoreThanOneMonth() { $savedCalendars = SavedCalendar::getByName('aSavedCalendar'); $savedCalendar = $savedCalendars[0]; $meetings = Meeting::getByName('aMeeting'); $meeting = $meetings[0]; $meeting->startDateTime = '2014-04-29 01:00:00'; $meeting->endDateTime = '2014-05-09 01:00:00'; $this->assertTrue($meeting->save()); $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id); $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH)); $data = $dataProvider->getData(); $this->assertCount(1, $data); $this->assertEquals('aMeeting', $data[0]->getTitle()); $meeting->startDateTime = '2014-04-29 01:00:00'; $meeting->endDateTime = '2014-06-09 01:00:00'; $this->assertTrue($meeting->save()); $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id); $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH)); $data = $dataProvider->getData(); $this->assertCount(1, $data); $this->assertEquals('aMeeting', $data[0]->getTitle()); $meeting->startDateTime = '2014-05-29 01:00:00'; $meeting->endDateTime = '2014-06-09 01:00:00'; $this->assertTrue($meeting->save()); $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id); $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH)); $data = $dataProvider->getData(); $this->assertCount(1, $data); $this->assertEquals('aMeeting', $data[0]->getTitle()); //Meeting start and ends before calendar start/end dates $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id); $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-07-01 01:00:00', 'endDate' => '2014-08-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH)); $data = $dataProvider->getData(); $this->assertCount(0, $data); //Meeting start and ends after calendar start/end dates $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id); $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-01-01 01:00:00', 'endDate' => '2014-03-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH)); $data = $dataProvider->getData(); $this->assertCount(0, $data); }
/** * @covers CalendarItemsDataProviderFactory::getDataProviderByDateRangeType * @covers CalendarItemsDataProvider::fetchData * @covers CalendarRowsAndColumnsReportDataProvider::makeSelectQueryAdapter * @covers CalendarRowsAndColumnsReportDataProvider::resolveSqlQueryAdapterForCount * @covers CalendarRowsAndColumnsReportDataProvider::getData */ public function testGetDataProviderByDateRangeType() { Yii::app()->user->userModel = User::getByUsername('super'); $product = ProductTestHelper::createProductByNameForOwner('Test Product', Yii::app()->user->userModel); $savedCalendar = CalendarTestHelper::createSavedCalendarByName('Test Cal', '#315AB0'); $currentDateTime = new DateTime('NOW'); $currentDateTime->add(new DateInterval('P1D')); $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser(Yii::app()->user->userModel, (string) $savedCalendar->id); $dp = CalendarItemsDataProviderFactory::getDataProviderByDateRangeType($savedCalendarSubscriptions, '2014-01-01', $currentDateTime->format('Y-m-d'), SavedCalendar::DATERANGE_TYPE_MONTH); $this->assertInstanceOf('CalendarItemsDataProvider', $dp); $this->assertEquals('2014-01-01', $dp->getStartDate()); $this->assertEquals($currentDateTime->format('Y-m-d'), $dp->getEndDate()); $this->assertEquals(SavedCalendar::DATERANGE_TYPE_MONTH, $dp->getDateRangeType()); $savedCalendarsData = $dp->getSavedCalendarSubscriptions()->getMySavedCalendarsAndSelected(); $keys = array_keys($savedCalendarsData); $this->assertEquals($savedCalendar->id, $keys[0]); $items = CalendarUtil::getFullCalendarItems($dp); $this->assertCount(1, $items); $this->assertEquals($product->id, $items[0]['modelId']); }
/** * Process user calendars and get data provider. * @param null|string $myCalendarIds * @param null|string $mySubscribedCalendarIds * @param null|string $dateRangeType * @param null|string $startDate * @param null|string $endDate * @return CalendarItemsDataProvider */ public static function processUserCalendarsAndMakeDataProviderForCombinedView($myCalendarIds = null, $mySubscribedCalendarIds = null, $dateRangeType = null, $startDate = null, $endDate = null) { $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser(Yii::app()->user->userModel, $myCalendarIds, $mySubscribedCalendarIds); if ($dateRangeType == null) { $dateRangeType = CalendarUtil::getDateRangeType(); ZurmoConfigurationUtil::setByUserAndModuleName(Yii::app()->user->userModel, 'CalendarsModule', 'myCalendarDateRangeType', $dateRangeType); } if ($startDate == null) { $startDate = CalendarUtil::getStartDate($dateRangeType); ZurmoConfigurationUtil::setByUserAndModuleName(Yii::app()->user->userModel, 'CalendarsModule', 'myCalendarStartDate', $startDate); } if ($endDate == null) { $endDate = CalendarUtil::getEndDate($dateRangeType); ZurmoConfigurationUtil::setByUserAndModuleName(Yii::app()->user->userModel, 'CalendarsModule', 'myCalendarEndDate', $endDate); } return CalendarItemsDataProviderFactory::getDataProviderByDateRangeType($savedCalendarSubscriptions, $startDate, $endDate, $dateRangeType); }
public function testLoadDefaultCalendars() { $user = UserTestHelper::createBasicUser('jim'); Yii::app()->user->userModel = $user; $this->assertEquals(0, count(CalendarUtil::getUserSavedCalendars($user))); SavedCalendarSubscriptions::makeByUser($user); $this->assertEquals(2, count(CalendarUtil::getUserSavedCalendars($user))); $calendars = CalendarUtil::getUserSavedCalendars($user); $model = $calendars[0]; $data = unserialize($model->serializedData); $filtersData = $data[ComponentForReportForm::TYPE_FILTERS]; $this->assertEquals(strval($user), $filtersData[0]['stringifiedModelForValue']); $this->assertEquals($user->id, $filtersData[0]['value']); $this->assertEquals('1', $data['filtersStructure']); }