Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
E
esi-table-data
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
esi-data-scrapping
esi-table-data
Commits
5d3bfe77
Commit
5d3bfe77
authored
Oct 06, 2017
by
Vasyl Bodnaruk
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of gitlab.com:amarynets/exa into dev
parents
16a0551b
158717ee
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
80 additions
and
84 deletions
+80
-84
script.js
esi/static/js/script.js
+10
-3
list_news.html
esi/templates/list_news.html
+1
-1
urls.py
esi/webapp/urls.py
+3
-2
views.py
esi/webapp/views.py
+66
-78
No files found.
esi/static/js/script.js
View file @
5d3bfe77
...
...
@@ -172,12 +172,19 @@ $('.text-white').on('click', function(e) {
if
(
media
){
res
+=
'media='
+
media
+
'&'
}
if
(
word
){
res
+=
'search='
+
word
+
'&'
}
var
orderName
=
$
(
this
).
attr
(
'href'
).
replace
(
"?order_by="
,
""
)
if
(
order
==
orderName
){
res
+=
'order_by='
+
orderName
+
'&'
+
'reverse='
+
'1&'
}
else
var
orderName
=
$
(
this
).
attr
(
'href'
).
replace
(
"?order_by="
,
""
);
if
(
order
==
orderName
){
res
+=
'order_by='
+
orderName
;
if
(
!
reverse
){
res
+=
'&reverse=1'
;
}
}
else
{
res
+=
'order_by='
+
orderName
+
'&'
res
+=
'order_by='
+
orderName
}
console
.
log
(
res
);
window
.
location
.
href
=
res
;
})
...
...
esi/templates/list_news.html
100755 → 100644
View file @
5d3bfe77
...
...
@@ -29,6 +29,7 @@
<select
class=
"form-control actions-select"
name=
"media"
>
{% if request.GET.media %}
<option>
{{ request.GET.media }}
</option>
<option>
All
</option>
{% for i in media %}
<option>
{{ i.name }}
</option>
{% endfor %}
...
...
@@ -62,7 +63,6 @@
</div>
</nav>
{% paginate news %}
<form
class=
"form"
>
<table
class=
"table table-hover"
>
...
...
esi/webapp/urls.py
View file @
5d3bfe77
from
django.conf.urls
import
url
from
.views
import
ListNewsView
,
EditNewsView
,
ViewNewsView
,
AddNewsView
from
.views
import
ListNewsView
,
EditNewsView
,
ViewNewsView
,
AddNewsView
,
Test
from
.autocomplete
import
*
...
...
@@ -8,5 +8,6 @@ urlpatterns = [
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'^auto/(?P<slug>\w+)$'
,
auto
,
name
=
'auto'
),
url
(
r'^add/$'
,
AddNewsView
.
as_view
(),
name
=
'add_news'
)
url
(
r'^add/$'
,
AddNewsView
.
as_view
(),
name
=
'add_news'
),
# url(r'^test/$', Test.as_view(), name='test')
]
\ No newline at end of file
esi/webapp/views.py
View file @
5d3bfe77
...
...
@@ -12,84 +12,6 @@ from .models import News, WpEsiMedia, WpEsiTag
from
.forms
import
NewsForm
@
method_decorator
(
login_required
,
name
=
'post'
)
class
ListNewsView
(
ListView
):
template_name
=
'list_news.html'
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
media
=
request
.
GET
.
get
(
'media'
)
from_date
=
request
.
GET
.
get
(
'from_date'
)
to_date
=
request
.
GET
.
get
(
'to_date'
)
search
=
request
.
GET
.
get
(
'search'
)
news
=
News
.
objects
.
filter
(
is_accepted
=
False
)
.
order_by
(
'-id'
)
#.order_by
tag
=
request
.
GET
.
get
(
'tag'
)
if
tag
:
tag
=
WpEsiTag
.
objects
.
get
(
name
=
tag
)
news
=
news
.
filter
(
tags_id__contains
=
'{},'
.
format
(
tag
.
id
))
order_by
=
request
.
GET
.
get
(
'order_by'
)
if
order_by
in
(
'media_id'
,
'type_id'
,
'region_id'
,
'publish_date'
,
'title'
):
news
=
news
.
order_by
(
'-'
+
order_by
)
if
request
.
GET
.
get
(
'reverse'
)
==
'1'
:
news
=
news
.
reverse
()
if
search
:
news
=
news
.
filter
(
Q
(
title__icontains
=
search
)
|
Q
(
description__icontains
=
search
))
if
from_date
:
news
=
news
.
filter
(
publish_date__gte
=
from_date
)
if
to_date
:
news
=
news
.
filter
(
publish_date__lte
=
to_date
)
if
media
:
news
=
self
.
_filter_by_media
(
news
,
media
)
media
=
WpEsiMedia
.
objects
.
all
()
min_max_date
=
News
.
objects
.
aggregate
(
Min
(
'publish_date'
),
Max
(
'publish_date'
))
min_max_date
[
'publish_date__min'
]
=
str
(
min_max_date
[
'publish_date__min'
]
.
date
())
min_max_date
[
'publish_date__max'
]
=
str
(
min_max_date
[
'publish_date__max'
]
.
date
())
return
render
(
request
,
self
.
template_name
,
{
'news'
:
news
,
'media'
:
media
,
'date'
:
min_max_date
})
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
if
request
.
is_ajax
():
data
=
json
.
loads
(
request
.
body
.
decode
(
'utf-8'
))
type_request
=
data
[
'type'
]
ids
=
data
[
'id'
]
if
type_request
in
[
'delete'
,
'deleteAll'
]:
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
)
return
HttpResponse
(
200
)
def
paginate
(
self
,
query
,
page
):
paginator
=
Paginator
(
query
,
25
)
try
:
return
paginator
.
page
(
page
)
except
PageNotAnInteger
:
return
paginator
.
page
(
1
)
except
EmptyPage
:
return
paginator
.
page
(
paginator
.
num_pages
)
def
_delete
(
self
,
id
):
if
isinstance
(
id
,
list
):
News
.
objects
.
filter
(
id__in
=
id
)
.
update
(
is_accepted
=
True
)
else
:
News
.
objects
.
filter
(
id
=
id
)
.
update
(
is_accepted
=
True
)
def
_filter_by_media
(
self
,
news
,
media
):
if
media
==
'All'
:
return
news
else
:
m
=
WpEsiMedia
.
objects
.
get
(
name
=
media
)
news
=
news
.
filter
(
media_id
=
m
.
pk
)
return
news
@
method_decorator
(
login_required
,
name
=
'dispatch'
)
class
EditNewsView
(
DetailView
):
template_name
=
'edit_news.html'
...
...
@@ -145,3 +67,69 @@ class AddNewsView(CreateView):
form
.
create
()
return
HttpResponseRedirect
(
reverse
(
'list_news'
))
@
method_decorator
(
login_required
,
name
=
'post'
)
class
ListNewsView
(
ListView
):
context_object_name
=
'news'
queryset
=
News
.
objects
.
filter
(
is_accepted
=
False
)
.
order_by
(
'-id'
)
template_name
=
'list_news.html'
sort_fields
=
(
'media_id'
,
'type_id'
,
'region_id'
,
'publish_date'
,
'title'
)
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
if
request
.
is_ajax
():
data
=
json
.
loads
(
request
.
body
.
decode
(
'utf-8'
))
type_request
=
data
[
'type'
]
ids
=
data
[
'id'
]
if
type_request
in
[
'delete'
,
'deleteAll'
]:
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
)
return
HttpResponse
(
200
)
def
get_queryset
(
self
):
data
=
self
.
request
.
GET
media
=
data
.
get
(
'media'
)
from_date
=
data
.
get
(
'from_date'
)
to_date
=
data
.
get
(
'to_date'
)
tag
=
data
.
get
(
'tag'
)
search
=
data
.
get
(
'search'
)
order_by
=
data
.
get
(
'order_by'
)
if
tag
:
self
.
queryset
=
self
.
queryset
.
filter
(
tags_id__contains
=
'{},'
.
format
(
WpEsiTag
.
objects
.
get
(
name
=
tag
)
.
id
))
if
data
.
get
(
'reverse'
):
self
.
queryset
=
self
.
queryset
.
reverse
()
if
order_by
in
self
.
sort_fields
:
self
.
queryset
=
self
.
queryset
.
order_by
(
order_by
)
if
search
:
self
.
queryset
=
self
.
queryset
.
filter
(
Q
(
title__icontains
=
search
)
|
Q
(
description__icontains
=
search
))
if
from_date
:
self
.
queryset
=
self
.
queryset
.
filter
(
publish_date__gte
=
from_date
)
if
to_date
:
self
.
queryset
=
self
.
queryset
.
filter
(
publish_date__lte
=
to_date
)
if
media
and
media
!=
'All'
:
self
.
queryset
=
self
.
queryset
.
filter
(
media_id
=
WpEsiMedia
.
objects
.
get
(
name
=
media
)
.
pk
)
return
self
.
queryset
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
(
ListNewsView
,
self
)
.
get_context_data
(
**
kwargs
)
context
[
'media'
]
=
WpEsiMedia
.
objects
.
all
()
min_max_date
=
News
.
objects
.
aggregate
(
Min
(
'publish_date'
),
Max
(
'publish_date'
))
min_max_date
[
'publish_date__min'
]
=
str
(
min_max_date
[
'publish_date__min'
]
.
date
())
min_max_date
[
'publish_date__max'
]
=
str
(
min_max_date
[
'publish_date__max'
]
.
date
())
context
[
'date'
]
=
min_max_date
return
context
def
_delete
(
self
,
id
):
if
isinstance
(
id
,
list
):
News
.
objects
.
filter
(
id__in
=
id
)
.
update
(
is_accepted
=
True
)
else
:
News
.
objects
.
filter
(
id
=
id
)
.
update
(
is_accepted
=
True
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment