Commit c88860f3 authored by Vasyl Bodnaruk's avatar Vasyl Bodnaruk

fix issues in menu

add logic for export news
parent 27849216
......@@ -17,7 +17,7 @@
<form class="form" method="post">
{% csrf_token %}
<section class="mb-5">
<h2 class="offset-1 display-4 mb-5">Add new</h2>
<h2 class="offset-1 display-4 mb-5">Edit</h2>
<!-- Title -->
<div class="form-group row">
<label for="title" class="offset-1 col-2 col-form-label">Title</label>
......@@ -187,7 +187,7 @@
<!-- Submit -->
<div class="form-group row">
<div class="offset-7 col-2">
<button type="submit" class="form-control btn btn-primary">Add</button>
<button type="submit" class="form-control btn btn-primary">Update</button>
</div>
</div>
</section>
......
{% extends "base.html" %}
{% block title %}
<title>List news</title>
<title>List news</title>
{% endblock %}
{% block content %}
......@@ -13,34 +13,38 @@
<div class="collapse navbar-collapse" id="navbarTogglerDemo01">
<div class="actions mr-auto">
<form class="actions-form" method="get" action="{% url 'list_news' %}">
<div style="display: block;">
<label>Date: </label>
<input type="date" name="from_date">
<input type="date" name="to_date">
</div>
<div style="display: block;">
<label>Media:</label>
<select class="form-control actions-select" name="media">
<option>All</option>
{% for i in media %}
<div style="display: block;">
<label>Date: </label>
<input type="date" name="from_date" value="{{ date.record_date__min }}">
<input type="date" name="to_date" value="{{ date.record_date__max }}">
</div>
<div style="display: block;">
<label>Media:</label>
<select class="form-control actions-select" name="media">
<option>All</option>
{% for i in media %}
<option>{{ i.name }}</option>
{% endfor %}
</select>
</div>
<div style="display: block;">
<label>Search:</label>
<input type="text" name="search">
</div>
<button type="submit" class="btn btn-success">Filter</button>
{% endfor %}
</select>
</div>
<div style="display: block;">
<input type="text" name="search" placeholder="Enter search ...">
</div>
<div>
<button type="submit" class="btn btn-success">Filter</button>
</div>
</form>
</div>
<a href="/" class="btn btn-primary">Add News</a>
<button class="js-delete-items btn btn-danger">
<span>Delete news (</span><span class="actions-delete-counter">0</span><span>)</span>
</button>
<button class="js-export-items btn btn-success">
<span>Export news (</span><span class="actions-delete-counter">0</span><span>)</span>
</button>
<div>
<a href="/" class="btn btn-primary">Add</a>
<button class="js-delete-items btn btn-danger">
<span>Delete(</span><span class="actions-delete-counter">0</span><span>)</span>
</button>
<button class="js-export-items btn btn-success">
<span>Export(</span><span class="actions-delete-counter">0</span><span>)</span>
</button>
</div>
</div>
</nav>
......@@ -60,14 +64,16 @@
</thead>
<tbody>
{% for i in news %}
<tr>
<tr>
<td>
<span><input id="{{ i.id }}" class="checkbox" type="checkbox"></span>
<span><a href="{% url 'view_news' i.id %}">{{ i.title }}</a></span>
<div class="action-block">
<a href="{% url 'view_news' i.id %}" target="_blank" data-type="view" class="action-block-view"><strong>View</strong></a>
<a href="{% url 'view_news' i.id %}" target="_blank" data-type="view"
class="action-block-view"><strong>View</strong></a>
<span class="divider">|</span>
<a href="{% url 'edit_news' i.id %}" data-type="edit" class="action-block-edit"><strong>Edit</strong></a>
<a href="{% url 'edit_news' i.id %}" data-type="edit"
class="action-block-edit"><strong>Edit</strong></a>
<span class="divider">|</span>
<a href="#" data-type="delete" class="action-block-delete"><strong>Delete</strong></a>
</div>
......
......@@ -7,7 +7,7 @@
{% block content %}
<div class="container mt-5">
<h1>{{ news.title }}</h1>
<a href="{% url 'list_news' %}">List of news</a>
<form method="post">
{% csrf_token %}
<a href="{% url 'edit_news' news.id %}" class="btn btn-primary mt-3">Edit</a>
......
from django.db import models
from .wp import WpEsiMedia, WpEsiEntity, WpEsiType, WpEsiRegion
from .wp import WpEsiMedia, WpEsiEntity, WpEsiType, WpEsiRegion, WpEsiNewsEntity, WpEsiNews
class News(models.Model):
......@@ -33,3 +33,22 @@ class News(models.Model):
def get_entity(self):
return WpEsiEntity.objects.get(id=self.company_id)
def export_news(self):
esi = WpEsiNews.objects.create(
title=self.title,
description=self.description,
url=self.url,
media_id=self.media_id,
type_id=self.type_id,
region_id=self.region_id,
post_id=self.post_id,
publish_date=self.publish_date,
record_date=self.record_date
)
esi_entity = WpEsiNewsEntity.objects.create(
news_id=esi.id,
entity_id=self.company_id
)
self.is_accepted = True
self.save()
......@@ -4,6 +4,7 @@ from django.views.generic import ListView, DetailView, CreateView
from django.db.models import Q
from django.http import JsonResponse
import json
from django.db.models import Max, Min
from .models import News, WpEsiNews, WpEsiNewsEntity, WpEsiMedia, WpEsiEntity
......@@ -27,8 +28,12 @@ class ListNewsView(ListView):
if media:
news = self._filter_by_media(news, media)
media = WpEsiMedia.objects.all()
min_max_date = News.objects.aggregate(Min('record_date'), Max('record_date'))
min_max_date['record_date__min'] = str(min_max_date['record_date__min'].date())
min_max_date['record_date__max'] = str(min_max_date['record_date__max'].date())
return render(request, self.template_name, {'news': news,
'media': media})
'media': media,
'date': min_max_date})
def post(self, request, *args, **kwargs):
if request.is_ajax():
......@@ -40,6 +45,10 @@ class ListNewsView(ListView):
self._delete(ids)
if type_request == 'edit':
return HttpResponse({'ids': ids})
if type_request == 'exportAll':
for i in News.objects.filter(pk__in=ids):
i.export_news()
return HttpResponse(200)
def _delete(self, id):
......@@ -92,21 +101,7 @@ class ViewNewsView(DetailView):
if export_news:
news = News.objects.get(id=export_news)
esi = WpEsiNews.objects.create(
title=news.title,
description=news.description,
url=news.url,
media_id=news.media_id,
type_id=news.type_id,
region_id=news.region_id,
post_id=news.post_id,
publish_date=news.publish_date,
record_date=news.record_date
)
esi_entity = WpEsiNewsEntity.objects.create(
news_id=esi.id,
entity_id=news.company_id
)
news.export_news()
return HttpResponseRedirect(reverse('view_news', kwargs={'id': export_news}))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment