Страница 13 из 38
Re: Календарь/менеджер задач
Добавлено: Ср мар 21, 2018 6:54 pm
Logrus
у меня 506 такая
$due_time_next_month=mktime(1, 1, 1, date('m', $time_next_month), $tmp[2], date('Y', $time_next_month));
512 такая
} elseif ($rec['REPEAT_TYPE']==9) {
Re: Календарь/менеджер задач
Добавлено: Ср мар 21, 2018 7:00 pm
fandaymon
Вот так должна выглядеть функция task_done
Код: Выделить всё
function task_done($id) {
//DebMes("Task $id is DONE! Congratulations!!!");
$rec=SQLSelectOne("SELECT * FROM calendar_events WHERE ID='".(int)$id."'");
$rec['DONE_WHEN']=date('Y-m-d H:i:s');
$rec['IS_DONE']=1;
$tmp=explode('-', $rec['DUE']);
$due_time=mktime(1, 1, 1, $tmp[1], $tmp[2], $tmp[0]);
if ($rec['IS_REPEATING']) {
$rec['IS_DONE']=0;
if ($rec['REPEAT_TYPE']==1) {
// yearly task
$due_time_next_year=mktime(1, 1, 1, $tmp[1], $tmp[2], $tmp[0]+1);
$rec['DUE']=date('Y-m-d', $due_time_next_year);
} elseif ($rec['REPEAT_TYPE']==2) {
// monthly task
$time_next_month=$due_time+31*24*60*60;
$due_time_next_month=mktime(1, 1, 1, date('m', $time_next_month), $tmp[2], date('Y', $time_next_month));
$rec['DUE']=date('Y-m-d', $due_time_next_month);
} elseif ($rec['REPEAT_TYPE']==3) {
// weekly task
$due_time_next_week=$due_time+7*24*60*60;
$rec['DUE']=date('Y-m-d', $due_time_next_week);
} elseif ($rec['REPEAT_TYPE']==9) {
// custom repeat task
if ($rec['IS_REPEATING_AFTER']) {
$rec['DUE']=date('Y-m-d', time()+$rec['REPEAT_IN']*24*60*60);
} else {
$rec['DUE']=date('Y-m-d', $due_time+$rec['REPEAT_IN']*24*60*60);
}
}
}
$rec['LOG']=date('Y-m-d H:i:s').' Task marked DONE'."\n".$rec['LOG'];
SQLUpdate('calendar_events', $rec);
if ($rec['DONE_SCRIPT_ID']) {
runScript($rec['DONE_SCRIPT_ID'], $rec);
}
}
Re: Календарь/менеджер задач
Добавлено: Ср мар 21, 2018 7:12 pm
Logrus
пропадает в пропущенных с 59, до 28 дней, потом в сегодня задваивается, потом одна остается и растет с каждым нажатием месяц (и в скоро +30 дней)
п.с. еще вопрос, а LOG не нужно будет чистить и можно ли автоматом?
Re: Календарь/менеджер задач
Добавлено: Ср мар 21, 2018 8:50 pm
fandaymon
Чтобы не двоились сегодняшние таски надо найти строчку 255 (у меня) и добавить в ней AND IS_REPEATING=0, чтобы получилось так
$tasks_today=SQLSelect("SELECT calendar_events.*,calendar_categories.ICON FROM calendar_events left join calendar_categories on calendar_events.calendar_category_id=calendar_categories.id WHERE TO_DAYS(DUE)=TO_DAYS(NOW()) AND IS_DONE=0 AND IS_TASK=1 AND IS_REPEATING=0 ORDER BY IS_TASK DESC");
Re: Календарь/менеджер задач
Добавлено: Ср мар 21, 2018 9:04 pm
Logrus
разобрался почему строки не совпадают, я с последним видимо напутал ((
обновил, внес оба изменения, задваивание пропало в обоих, но не уходит из сегодня, только месяц прибавляет (во я озадачил всех, сорри)
Re: Календарь/менеджер задач
Добавлено: Ср мар 21, 2018 9:06 pm
fandaymon
По поводу лога - там тип поля TEXT, так что специально чистить не надо - я так понимаю это такая идея автора - чтобы в этом поле хранилась вся история выполнения таска...
Re: Календарь/менеджер задач
Добавлено: Ср мар 21, 2018 9:16 pm
fandaymon
Logrus писал(а):разобрался почему строки не совпадают, я с последним видимо напутал ((
обновил, внес оба изменения, задваивание пропало в обоих, но не уходит из сегодня, только месяц прибавляет (во я озадачил всех, сорри)
Мда - и не пропадёт, потому что для повторяющихся ежемесячных сравнивается только день. Ну тогда так надо сделать
Код: Выделить всё
$tasks_today=SQLSelect("SELECT calendar_events.*,calendar_categories.ICON FROM calendar_events left join calendar_categories on calendar_events.calendar_category_id=calendar_categories.id WHERE TO_DAYS(DUE)=TO_DAYS(NOW()) AND IS_DONE=0 AND IS_TASK=1 ORDER BY IS_TASK DESC");
if ($tasks_today) {
foreach($tasks_today as $k=>$v) {
$events_today[]=$v;
//$calendar_categories[$k1]['EVENTS_TODAY'][]=$v;
}
}
$events_early_today=SQLSelect("SELECT calendar_events.*,calendar_categories.ICON FROM calendar_events left join calendar_categories on calendar_events.calendar_category_id=calendar_categories.id WHERE TO_DAYS(DATE(CONCAT_WS('-', DATE_FORMAT(NOW(), '%Y'), DATE_FORMAT(DUE, '%m'), DATE_FORMAT(DUE, '%d'))))=TO_DAYS(NOW()) AND IS_REPEATING=1 AND REPEAT_TYPE=1 AND IS_TASK=0 ORDER BY IS_TASK DESC");
if ($events_early_today) {
foreach($events_early_today as $k=>$v) {
$events_today[]=$v;
//$calendar_categories[$k1]['EVENTS_TODAY'][]=$v;
}
}
$events_monthly_today=SQLSelect("SELECT calendar_events.*,calendar_categories.ICON FROM calendar_events left join calendar_categories on calendar_events.calendar_category_id=calendar_categories.id WHERE TO_DAYS(DATE(CONCAT_WS('-', DATE_FORMAT(NOW(), '%Y'), DATE_FORMAT(NOW(), '%m'), DATE_FORMAT(DUE, '%d'))))=TO_DAYS(NOW()) AND IS_REPEATING=1 AND REPEAT_TYPE=2 AND IS_TASK=0 ORDER BY IS_TASK DESC");
if ($events_monthly_today) {
foreach($events_monthly_today as $k=>$v) {
$events_today[]=$v;
//$calendar_categories[$k1]['EVENTS_TODAY'][]=$v;
}
}
$events_weekly_today=SQLSelect("SELECT calendar_events.*,calendar_categories.ICON FROM calendar_events left join calendar_categories on calendar_events.calendar_category_id=calendar_categories.id WHERE DATE_FORMAT(DUE, '%w')=DATE_FORMAT(NOW(), '%w') AND IS_REPEATING=1 AND REPEAT_TYPE=3 AND IS_TASK=0 ORDER BY IS_TASK DESC");
В первом селекте IS_REPEATING=0 убрать, в 3 следующих добавить IS_TASK=0
Re: Календарь/менеджер задач
Добавлено: Ср мар 21, 2018 9:18 pm
Logrus
"специально чистить не надо" - в смысле они будет само, то что оно полезно понятно, не раздует, то я вот натыкал уже, охххх )))
еще раз все обновил, изменения внес, не уходит из сегодня ( (это к двум поста выше)
п.с. заменил, и само пропало, дату откатил, появилось в пропущенных, кликнул ушло в выполненные
СПАСИБО
Re: Календарь/менеджер задач
Добавлено: Ср мар 21, 2018 9:31 pm
fandaymon
Logrus писал(а):"специально чистить не надо" - в смысле они будет само, то что оно полезно понятно, не раздует, то я вот натыкал уже, охххх )))
В смысле там будет хранится столько текста сколько надо

По логике это поле, наверное, надо выводить при редактировании задачи, примерно как это сделано в шаблонах
Logrus писал(а):
п.с. заменил, и само пропало, дату откатил, появилось в пропущенных, кликнул ушло в выполненные
СПАСИБО
Ну и хорошо - ошибку выявили, локализовали и исправили

Re: Календарь/менеджер задач
Добавлено: Чт мар 22, 2018 6:02 pm
webms
Готово!
PS: Со временем мб какие то идеи еще придут, сделаю. Отправьте пожалуйста новый дизайн и обновленный код Сергею.