Отображение бейджей связанных объектов в детализации
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
+20
-2
@@ -1177,11 +1177,21 @@ def api_get_linked_events(post_id):
|
|||||||
events = db.get_linked_events(post_id)
|
events = db.get_linked_events(post_id)
|
||||||
events_list = []
|
events_list = []
|
||||||
for event in events:
|
for event in events:
|
||||||
|
# Определяем статус события
|
||||||
|
status = "Не видим"
|
||||||
|
if event.get('is_posted_tg'):
|
||||||
|
status = "Опубликован"
|
||||||
|
elif event.get('marked_to_publication'):
|
||||||
|
status = "Для публикации"
|
||||||
|
elif event.get('is_visible'):
|
||||||
|
status = "Видим"
|
||||||
|
|
||||||
events_list.append({
|
events_list.append({
|
||||||
'id': event['id'],
|
'id': event['id'],
|
||||||
'name': event['name'],
|
'name': event['name'],
|
||||||
'number': event['number'],
|
'number': event['number'],
|
||||||
'unit_name': event['unit_name']
|
'unit_name': event['unit_name'],
|
||||||
|
'status': status
|
||||||
})
|
})
|
||||||
return jsonify(events_list)
|
return jsonify(events_list)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -1197,11 +1207,19 @@ def api_get_linked_posts(event_id):
|
|||||||
posts = db.get_linked_posts(event_id)
|
posts = db.get_linked_posts(event_id)
|
||||||
posts_list = []
|
posts_list = []
|
||||||
for post in posts:
|
for post in posts:
|
||||||
|
# Определяем статус поста
|
||||||
|
status = "Не для публикации"
|
||||||
|
if post.get('published_in_tg'):
|
||||||
|
status = "Опубликован"
|
||||||
|
elif post.get('marked_for_publication'):
|
||||||
|
status = "Для публикации"
|
||||||
|
|
||||||
posts_list.append({
|
posts_list.append({
|
||||||
'id': post['id'],
|
'id': post['id'],
|
||||||
'vk_post_id': post['vk_post_id'],
|
'vk_post_id': post['vk_post_id'],
|
||||||
'shortname': post['shortname'],
|
'shortname': post['shortname'],
|
||||||
'text_preview': post['text'][:50] + '...' if post['text'] else ''
|
'text_preview': post['text'][:50] + '...' if post['text'] else '',
|
||||||
|
'status': status
|
||||||
})
|
})
|
||||||
return jsonify(posts_list)
|
return jsonify(posts_list)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
+15
-2
@@ -1554,11 +1554,17 @@
|
|||||||
${linkedPosts.map(post => `
|
${linkedPosts.map(post => `
|
||||||
<a href="#" class="list-group-item list-group-item-action py-1"
|
<a href="#" class="list-group-item list-group-item-action py-1"
|
||||||
onclick="highlightSelectedPost(${post.id}); document.getElementById('posts-tab').click(); return false;">
|
onclick="highlightSelectedPost(${post.id}); document.getElementById('posts-tab').click(); return false;">
|
||||||
|
<div class="d-flex justify-content-between align-items-center">
|
||||||
|
<div>
|
||||||
<small>${post.shortname || `Пост ${post.id}`}</small>
|
<small>${post.shortname || `Пост ${post.id}`}</small>
|
||||||
<button class="btn btn-sm btn-outline-danger float-end"
|
<span class="badge ${post.status === 'Опубликован' ? 'bg-success' :
|
||||||
|
post.status === 'Для публикации' ? 'bg-warning' : 'bg-secondary'} ms-2">${post.status}</span>
|
||||||
|
</div>
|
||||||
|
<button class="btn btn-sm btn-outline-danger"
|
||||||
onclick="event.stopPropagation(); unlinkEventFromPost(${event.id}, ${post.id}); return false;">
|
onclick="event.stopPropagation(); unlinkEventFromPost(${event.id}, ${post.id}); return false;">
|
||||||
<i class="fas fa-unlink"></i>
|
<i class="fas fa-unlink"></i>
|
||||||
</button>
|
</button>
|
||||||
|
</div>
|
||||||
</a>
|
</a>
|
||||||
`).join('')}
|
`).join('')}
|
||||||
</div>
|
</div>
|
||||||
@@ -1935,11 +1941,18 @@
|
|||||||
${linkedEvents.map(event => `
|
${linkedEvents.map(event => `
|
||||||
<a href="#" class="list-group-item list-group-item-action py-1"
|
<a href="#" class="list-group-item list-group-item-action py-1"
|
||||||
onclick="highlightSelectedEvent(${event.id}); document.getElementById('events-tab').click(); return false;">
|
onclick="highlightSelectedEvent(${event.id}); document.getElementById('events-tab').click(); return false;">
|
||||||
|
<div class="d-flex justify-content-between align-items-center">
|
||||||
|
<div>
|
||||||
<small>${event.name || `Событие ${event.id}`}</small>
|
<small>${event.name || `Событие ${event.id}`}</small>
|
||||||
<button class="btn btn-sm btn-outline-danger float-end"
|
<span class="badge ${event.status === 'Опубликован' ? 'bg-success' :
|
||||||
|
event.status === 'Для публикации' ? 'bg-warning' :
|
||||||
|
event.status === 'Видим' ? 'bg-info' : 'bg-secondary'} ms-2">${event.status}</span>
|
||||||
|
</div>
|
||||||
|
<button class="btn btn-sm btn-outline-danger"
|
||||||
onclick="event.stopPropagation(); unlinkPostFromEvent(${post.id}, ${event.id}); return false;">
|
onclick="event.stopPropagation(); unlinkPostFromEvent(${post.id}, ${event.id}); return false;">
|
||||||
<i class="fas fa-unlink"></i>
|
<i class="fas fa-unlink"></i>
|
||||||
</button>
|
</button>
|
||||||
|
</div>
|
||||||
</a>
|
</a>
|
||||||
`).join('')}
|
`).join('')}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user