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 @@ ...@@ -17,7 +17,7 @@
<form class="form" method="post"> <form class="form" method="post">
{% csrf_token %} {% csrf_token %}
<section class="mb-5"> <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 --> <!-- Title -->
<div class="form-group row"> <div class="form-group row">
<label for="title" class="offset-1 col-2 col-form-label">Title</label> <label for="title" class="offset-1 col-2 col-form-label">Title</label>
...@@ -187,7 +187,7 @@ ...@@ -187,7 +187,7 @@
<!-- Submit --> <!-- Submit -->
<div class="form-group row"> <div class="form-group row">
<div class="offset-7 col-2"> <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>
</div> </div>
</section> </section>
......
{% extends "base.html" %} {% extends "base.html" %}
{% block title %} {% block title %}
<title>List news</title> <title>List news</title>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
<form class="actions-form" method="get" action="{% url 'list_news' %}"> <form class="actions-form" method="get" action="{% url 'list_news' %}">
<div style="display: block;"> <div style="display: block;">
<label>Date: </label> <label>Date: </label>
<input type="date" name="from_date"> <input type="date" name="from_date" value="{{ date.record_date__min }}">
<input type="date" name="to_date"> <input type="date" name="to_date" value="{{ date.record_date__max }}">
</div> </div>
<div style="display: block;"> <div style="display: block;">
<label>Media:</label> <label>Media:</label>
...@@ -28,20 +28,24 @@ ...@@ -28,20 +28,24 @@
</select> </select>
</div> </div>
<div style="display: block;"> <div style="display: block;">
<label>Search:</label> <input type="text" name="search" placeholder="Enter search ...">
<input type="text" name="search">
</div> </div>
<div>
<button type="submit" class="btn btn-success">Filter</button> <button type="submit" class="btn btn-success">Filter</button>
</div>
</form> </form>
</div> </div>
<a href="/" class="btn btn-primary">Add News</a> <div>
<a href="/" class="btn btn-primary">Add</a>
<button class="js-delete-items btn btn-danger"> <button class="js-delete-items btn btn-danger">
<span>Delete news (</span><span class="actions-delete-counter">0</span><span>)</span> <span>Delete(</span><span class="actions-delete-counter">0</span><span>)</span>
</button> </button>
<button class="js-export-items btn btn-success"> <button class="js-export-items btn btn-success">
<span>Export news (</span><span class="actions-delete-counter">0</span><span>)</span> <span>Export(</span><span class="actions-delete-counter">0</span><span>)</span>
</button> </button>
</div> </div>
</div>
</nav> </nav>
<form class="form"> <form class="form">
...@@ -65,9 +69,11 @@ ...@@ -65,9 +69,11 @@
<span><input id="{{ i.id }}" class="checkbox" type="checkbox"></span> <span><input id="{{ i.id }}" class="checkbox" type="checkbox"></span>
<span><a href="{% url 'view_news' i.id %}">{{ i.title }}</a></span> <span><a href="{% url 'view_news' i.id %}">{{ i.title }}</a></span>
<div class="action-block"> <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> <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> <span class="divider">|</span>
<a href="#" data-type="delete" class="action-block-delete"><strong>Delete</strong></a> <a href="#" data-type="delete" class="action-block-delete"><strong>Delete</strong></a>
</div> </div>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
{% block content %} {% block content %}
<div class="container mt-5"> <div class="container mt-5">
<h1>{{ news.title }}</h1> <h1>{{ news.title }}</h1>
<a href="{% url 'list_news' %}">List of news</a>
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
<a href="{% url 'edit_news' news.id %}" class="btn btn-primary mt-3">Edit</a> <a href="{% url 'edit_news' news.id %}" class="btn btn-primary mt-3">Edit</a>
......
from django.db import models 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): class News(models.Model):
...@@ -33,3 +33,22 @@ class News(models.Model): ...@@ -33,3 +33,22 @@ class News(models.Model):
def get_entity(self): def get_entity(self):
return WpEsiEntity.objects.get(id=self.company_id) 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 ...@@ -4,6 +4,7 @@ from django.views.generic import ListView, DetailView, CreateView
from django.db.models import Q from django.db.models import Q
from django.http import JsonResponse from django.http import JsonResponse
import json import json
from django.db.models import Max, Min
from .models import News, WpEsiNews, WpEsiNewsEntity, WpEsiMedia, WpEsiEntity from .models import News, WpEsiNews, WpEsiNewsEntity, WpEsiMedia, WpEsiEntity
...@@ -27,8 +28,12 @@ class ListNewsView(ListView): ...@@ -27,8 +28,12 @@ class ListNewsView(ListView):
if media: if media:
news = self._filter_by_media(news, media) news = self._filter_by_media(news, media)
media = WpEsiMedia.objects.all() 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, return render(request, self.template_name, {'news': news,
'media': media}) 'media': media,
'date': min_max_date})
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
if request.is_ajax(): if request.is_ajax():
...@@ -40,6 +45,10 @@ class ListNewsView(ListView): ...@@ -40,6 +45,10 @@ class ListNewsView(ListView):
self._delete(ids) self._delete(ids)
if type_request == 'edit': if type_request == 'edit':
return HttpResponse({'ids': ids}) return HttpResponse({'ids': ids})
if type_request == 'exportAll':
for i in News.objects.filter(pk__in=ids):
i.export_news()
return HttpResponse(200) return HttpResponse(200)
def _delete(self, id): def _delete(self, id):
...@@ -92,21 +101,7 @@ class ViewNewsView(DetailView): ...@@ -92,21 +101,7 @@ class ViewNewsView(DetailView):
if export_news: if export_news:
news = News.objects.get(id=export_news) news = News.objects.get(id=export_news)
esi = WpEsiNews.objects.create( news.export_news()
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
)
return HttpResponseRedirect(reverse('view_news', kwargs={'id': 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