Jun 26 - Fix weekly websites disappear when checked
This commit is contained in:
@@ -597,22 +597,23 @@ def get_today_checks(user_id: int):
|
||||
JOIN websites w ON w.id = sw.website_id
|
||||
JOIN shift_users su ON su.shift_id = s.id AND su.user_id = %s
|
||||
LEFT JOIN shift_checks sc
|
||||
ON sc.website_id = w.id AND sc.user_id = %s AND DATE(sc.checked_at) = CURDATE()
|
||||
ON sc.id = (
|
||||
SELECT sc2.id FROM shift_checks sc2
|
||||
WHERE sc2.website_id = w.id AND sc2.user_id = %s
|
||||
AND IF(w.check_type = 'weekly',
|
||||
YEARWEEK(sc2.checked_at, 1) = YEARWEEK(CURDATE(), 1),
|
||||
DATE(sc2.checked_at) = CURDATE())
|
||||
ORDER BY sc2.checked_at DESC
|
||||
LIMIT 1
|
||||
)
|
||||
WHERE s.is_active = 1 AND w.is_active = 1
|
||||
AND LOCATE(CAST(DAYOFWEEK(CURDATE()) AS CHAR), s.days_of_week) > 0
|
||||
AND (w.visibility = 'all'
|
||||
OR EXISTS (SELECT 1 FROM website_users wu WHERE wu.website_id=w.id AND wu.user_id=%s))
|
||||
AND (w.check_type = 'daily'
|
||||
OR (w.check_type = 'weekly'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM shift_checks sc2
|
||||
WHERE sc2.website_id=w.id AND sc2.user_id=%s
|
||||
AND YEARWEEK(sc2.checked_at,1)=YEARWEEK(CURDATE(),1)
|
||||
)))
|
||||
GROUP BY w.id, sc.id, sc.checked_at, sc.user_note, sc.user_id
|
||||
ORDER BY sort_order, w.name
|
||||
""",
|
||||
(user_id, user_id, user_id, user_id),
|
||||
(user_id, user_id, user_id),
|
||||
)
|
||||
else:
|
||||
cur.execute(
|
||||
@@ -622,20 +623,21 @@ def get_today_checks(user_id: int):
|
||||
sc.id AS check_id, sc.checked_at, sc.user_note, sc.user_id AS checked_by_id
|
||||
FROM websites w
|
||||
LEFT JOIN shift_checks sc
|
||||
ON sc.website_id=w.id AND sc.user_id=%s AND DATE(sc.checked_at)=CURDATE()
|
||||
ON sc.id = (
|
||||
SELECT sc2.id FROM shift_checks sc2
|
||||
WHERE sc2.website_id = w.id AND sc2.user_id = %s
|
||||
AND IF(w.check_type = 'weekly',
|
||||
YEARWEEK(sc2.checked_at, 1) = YEARWEEK(CURDATE(), 1),
|
||||
DATE(sc2.checked_at) = CURDATE())
|
||||
ORDER BY sc2.checked_at DESC
|
||||
LIMIT 1
|
||||
)
|
||||
WHERE w.is_active=1
|
||||
AND (w.visibility='all'
|
||||
OR EXISTS (SELECT 1 FROM website_users wu WHERE wu.website_id=w.id AND wu.user_id=%s))
|
||||
AND (w.check_type='daily'
|
||||
OR (w.check_type='weekly'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM shift_checks sc2
|
||||
WHERE sc2.website_id=w.id AND sc2.user_id=%s
|
||||
AND YEARWEEK(sc2.checked_at,1)=YEARWEEK(CURDATE(),1)
|
||||
)))
|
||||
ORDER BY w.name
|
||||
""",
|
||||
(user_id, user_id, user_id),
|
||||
(user_id, user_id),
|
||||
)
|
||||
rows = cur.fetchall()
|
||||
cur.close()
|
||||
|
||||
Reference in New Issue
Block a user