mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-18 13:05:42 +00:00
Add news reader (#3445)
* add model for feed entries * add task to update feed entries * Add API routes * Fix name in model * rename model * fix read endpoint * reduce duplication in NewsFeed API endpoints * reduce duplicated code * add ui elements to index * add missing migrations * add ressource route * add new model to admin * reorder fields * format timestamp * make title linked * reduce migrations to 1 * fix merge * fix js style * add model to ruleset
This commit is contained in:
@ -306,6 +306,17 @@ loadSalesOrderTable("#table-so-overdue", {
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% settings_value 'HOMEPAGE_NEWS' user=request.user as setting_news %}
|
||||
{% if setting_news and user.is_staff %}
|
||||
|
||||
addHeaderTitle('{% trans "InvenTree News" %}');
|
||||
|
||||
addHeaderAction('news', '{% trans "Current News" %}', 'fa-newspaper');
|
||||
loadNewsFeedTable("#table-news", {
|
||||
url: "{% url 'api-news-list' %}",
|
||||
});
|
||||
{% endif %}
|
||||
|
||||
enableSidebar(
|
||||
'index',
|
||||
{
|
||||
|
@ -36,6 +36,8 @@
|
||||
<tr><td colspan='5'></td></tr>
|
||||
{% include "InvenTree/settings/setting.html" with key="HOMEPAGE_SO_OUTSTANDING" user_setting=True %}
|
||||
{% include "InvenTree/settings/setting.html" with key="HOMEPAGE_SO_OVERDUE" user_setting=True %}
|
||||
<tr><td colspan='5'></td></tr>
|
||||
{% include "InvenTree/settings/setting.html" with key="HOMEPAGE_NEWS" user_setting=True %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -167,6 +167,7 @@
|
||||
<script defer type='text/javascript' src="{% i18n_static 'search.js' %}"></script>
|
||||
<script defer type='text/javascript' src="{% i18n_static 'stock.js' %}"></script>
|
||||
<script defer type='text/javascript' src="{% i18n_static 'plugin.js' %}"></script>
|
||||
<script defer type='text/javascript' src="{% i18n_static 'news.js' %}"></script>
|
||||
<script defer type='text/javascript' src="{% i18n_static 'tables.js' %}"></script>
|
||||
<script defer type='text/javascript' src="{% i18n_static 'table_filters.js' %}"></script>
|
||||
<script defer type='text/javascript' src="{% i18n_static 'notification.js' %}"></script>
|
||||
|
58
InvenTree/templates/js/translated/news.js
Normal file
58
InvenTree/templates/js/translated/news.js
Normal file
@ -0,0 +1,58 @@
|
||||
{% load i18n %}
|
||||
{% load inventree_extras %}
|
||||
|
||||
/* exported
|
||||
loadNewsFeedTable,
|
||||
*/
|
||||
|
||||
/*
|
||||
* Load notification table
|
||||
*/
|
||||
function loadNewsFeedTable(table, options={}, enableDelete=false) {
|
||||
setupFilterList('news', table);
|
||||
|
||||
$(table).inventreeTable({
|
||||
url: options.url,
|
||||
name: 'news',
|
||||
groupBy: false,
|
||||
queryParams: {
|
||||
ordering: 'published',
|
||||
},
|
||||
paginationVAlign: 'bottom',
|
||||
formatNoMatches: function() {
|
||||
return '{% trans "No news found" %}';
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
field: 'pk',
|
||||
title: '{% trans "ID" %}',
|
||||
visible: false,
|
||||
switchable: false,
|
||||
},
|
||||
{
|
||||
field: 'title',
|
||||
title: '{% trans "Title" %}',
|
||||
sortable: 'true',
|
||||
formatter: function(value, row) {
|
||||
return `<a href="` + row.link + `">` + value + `</a>`;
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'summary',
|
||||
title: '{% trans "Summary" %}',
|
||||
},
|
||||
{
|
||||
field: 'author',
|
||||
title: '{% trans "Author" %}',
|
||||
},
|
||||
{
|
||||
field: 'published',
|
||||
title: '{% trans "Published" %}',
|
||||
sortable: 'true',
|
||||
formatter: function(value) {
|
||||
return renderDate(value);
|
||||
}
|
||||
},
|
||||
]
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user