Commit 48217ad7 authored by Vasyl Bodnaruk's avatar Vasyl Bodnaruk Committed by Andrii Marynets

added view and logic for 'view' button

parent b140af2f
......@@ -116,21 +116,22 @@ $(document).ready(function() {
ajaxPost('/news/', data);
});
$(actionView).on('click', function(e) {
e.preventDefault();
var data = actionData(this);
ajaxPost('/news/', data);
});
$(actionEdit).on('click', function(e) {
e.preventDefault();
var data = actionData(this);
ajaxPost('/news/', data);
});
// $(actionView).on('click', function(e) {
// e.preventDefault();
// var data = actionData(this);
// ajaxPost('/news/', data);
// });
//
// $(actionEdit).on('click', function(e) {
// e.preventDefault();
// var data = actionData(this);
// ajaxPost('/news/', data);
// });
$(actionDelete).on('click', function(e) {
e.preventDefault();
var data = actionData(this);
console.log(data);
ajaxPost('/news/', data);
});
});
......
......@@ -7,10 +7,15 @@
<link rel="stylesheet" href="{% static 'css/fastselect.css' %}">
{% endblock %}
{% block title %}
<title>Edit - {{ news.title }}</title>
{% endblock %}
{% block content %}
<main class="pt-5 pb-5">
<div class="container">
<form class="form">
<form class="form" method="post">
{% csrf_token %}
<section class="mb-5">
<h2 class="offset-1 display-4 mb-5">Add new</h2>
<!-- Title -->
......@@ -42,7 +47,7 @@
<label for="entity" class="offset-1 col-2 col-form-label">Entity</label>
<div class="col-6">
<input class="form-control form-control-success" type="text" placeholder="Write entity..."
id="entity" name="entity" value="{{ company.name }}">
id="entity" name="entity" value="{{ news.get_entity }}">
<div class="form-control-feedback">Additional message</div>
</div>
<!--<div class="col-3">
......@@ -56,8 +61,9 @@
<div class="col-6">
<input
type="text"
multiple
id="radar"
data-url="json/radar.json"
data-url="{% url 'radar' news.id %}"
data-load-once="true"
class="multiselect"
name="radar"/>
......
{% extends "base.html" %}
{% block title %}
<title>List news</title>
{% endblock %}
{% block content %}
<nav class="navbar navbar-toggleable-md navbar-light bg-faded">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo01"
......@@ -26,6 +30,7 @@
{% endfor %}
</select>
</div>
<input type="text" name="search">
<button type="submit" class="btn btn-success">Filter</button>
</form>
</div>
......@@ -58,11 +63,11 @@
<tr>
<td>
<span><input id="{{ i.id }}" class="checkbox" type="checkbox"></span>
<span><a href="{% url 'single_news' i.id %}">{{ i.title }}</a></span>
<span><a href="{% url 'edit_news' i.id %}">{{ i.title }}</a></span>
<div class="action-block">
<a href="#" 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 'single_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>
......
{% extends "base.html" %}
{% block title %}
<title>View - {{ news.title }}</title>
{% endblock %}
{% block content %}
<div class="container mt-5">
<h1>{{ news.title }}</h1>
<a href="#" class="btn btn-primary mt-3">Edit</a>
<form method="post">
{% csrf_token %}
<a href="{% url 'edit_news' news.id %}" class="btn btn-primary mt-3">Edit</a>
<button class="btn btn-primary mt-3" name="delete" value="{{ news.id }}">Delete</button>
<button class="btn btn-primary mt-3" name="export" value="{{ news.id }}">Export</button>
</form>
<div class="new-content mt-5">
<div class="new-content-field mb-4">
<h5 class="new-content-title">- NY</h5>
</div>
<div class="new-content-field mb-4">
<h5 class="new-content-title">EntityURL</h5>
<h5 class="new-content-title">Description</h5>
<div class="new-content-description">
{{ news.description }}
</div>
</div>
<!--<div class="new-content-field mb-4">-->
<!--<h5 class="new-content-title">Media</h5>-->
<!--<div class="new-content-description">-->
<!--<div>{{ news.get_media }}</div>-->
<!--<a href="{{ news.get_media.url }}">{{ news.get_media.url }}</a>-->
<!--</div>-->
<!--</div>-->
<div class="new-content-field mb-4">
<h5 class="new-content-title">Media</h5>
<div class="new-content-description">
<div>{{ news.get_media }}</div>
<a href="#">http://techcrunch.com</a>
</div>
<h5 class="new-content-title">Media: <a href="{{ news.get_media.url }}">{{ news.get_media }}</a></h5>
<h5 class="new-content-title">Type: {{ news.get_type }}</h5>
<h5 class="new-content-title">Region: {{ news.get_region }}</h5>
<h5 class="new-content-title">Publish date: {{ news.publish_date }}</h5>
<h5 class="new-content-title">Source: <a href="{{ news.url }}">{{ news.url }}</a></h5>
</div>
</div>
</div>
......
......@@ -30,3 +30,6 @@ class News(models.Model):
def get_region(self):
return WpEsiRegion.objects.get(id=self.region_id)
def get_entity(self):
return WpEsiEntity.objects.get(id=self.company_id)
......@@ -102,6 +102,9 @@ class WpEsiEntity(models.Model):
managed = False
db_table = 'wp_esi_entity'
def __str__(self):
return self.name
class WpEsiEntityEvaluation(models.Model):
entity_id = models.IntegerField(primary_key=True)
......
from django.conf.urls import url
from .views import ListNewsView, DetailNewsView, ViewNewsView
from .views import ListNewsView, EditNewsView, ViewNewsView, radar
urlpatterns = [
url(r'^$', ListNewsView.as_view(), name='list_news'),
url(r'^(?P<id>[0-9]+)$', DetailNewsView.as_view(), name='single_news'),
url(r'^view/(?P<id>[0-9]+)$', ViewNewsView.as_view(), name='view_news')
url(r'^(?P<id>[0-9]+)$', EditNewsView.as_view(), name='edit_news'),
url(r'^view/(?P<id>[0-9]+)$', ViewNewsView.as_view(), name='view_news'),
url(r'^radar/(?P<id>[0-9]+)$', radar, name='radar')
]
\ No newline at end of file
import json
from django.shortcuts import render, redirect, reverse, HttpResponseRedirect, HttpResponse
from django.views.generic import ListView, DetailView, CreateView
from django.db.models import Q
from django.http import JsonResponse
import json
from .models import News, WpEsiNews, WpEsiNewsEntity, WpEsiMedia, WpEsiEntity
......@@ -13,14 +15,15 @@ class ListNewsView(ListView):
media = request.GET.get('media')
from_date = request.GET.get('from_date')
to_date = request.GET.get('to_date')
search = request.GET.get('search')
print(from_date, to_date)
news = News.objects.filter(is_accepted=False).order_by('-id')#.order_by('record_date')
if search:
news = news.filter(Q(title__icontains=search) | Q(description__icontains=search))
if from_date:
news = news.filter(record_date__gte=from_date)
print(news)
if to_date:
news = news.filter(record_date__lte=to_date)
print(news)
if media:
news = self._filter_by_media(news, media)
media = WpEsiMedia.objects.all()
......@@ -30,6 +33,7 @@ class ListNewsView(ListView):
def post(self, request, *args, **kwargs):
if request.is_ajax():
data = json.loads(request.body.decode('utf-8'))
print(data)
type_request = data['type']
ids = data['id']
if type_request in ['delete', 'deleteAll']:
......@@ -53,16 +57,20 @@ class ListNewsView(ListView):
return news
class DetailNewsView(DetailView):
template_name = 'single_news.html'
class EditNewsView(DetailView):
template_name = 'edit_news.html'
def get(self, request, *args, **kwargs):
news = News.objects.get(id=kwargs.get('id'))
media = WpEsiMedia.objects.all()
company = WpEsiEntity.objects.get(id=news.company_id)
return render(request, self.template_name, {'news': news,
'media': media,
'company': company})
'media': media})
def post(self, request, *args, **kwargs):
radar = request.POST.get('radar')
print(radar)
return HttpResponseRedirect('/news')
class ViewNewsView(DetailView):
......@@ -74,3 +82,38 @@ class ViewNewsView(DetailView):
return render(request, self.template_name, {'news': news})
def post(self, request, *args, **kwargs):
delete_news = request.POST.get('delete')
export_news = request.POST.get('export')
if delete_news:
News.objects.filter(id=delete_news).update(is_accepted=True)
return HttpResponseRedirect(reverse('view_news', kwargs={'id': delete_news}))
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
)
return HttpResponseRedirect(reverse('view_news', kwargs={'id': export_news}))
def radar(request, id):
d = [{"text": "Algeria", "value" : "Algeria"},
{"text": "Angola", "value" : "Angola"},
{"text": "Angola", "value" : "as"},
{"text": "Angola", "value" : "dsda"},
{"text": "Angola", "value" : "aasdadsd"}]
return JsonResponse(d, safe=False)
\ No newline at end of file
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