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
12b9e0e4
Commit
12b9e0e4
authored
Sep 26, 2017
by
Andrii Marynets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor edit view
parent
5fd66ee8
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
29 deletions
+18
-29
forms.py
esi/scraper/forms.py
+2
-2
views.py
esi/scraper/views.py
+8
-19
edit_job.html
esi/templates/edit_job.html
+8
-8
No files found.
esi/scraper/forms.py
View file @
12b9e0e4
...
...
@@ -2,10 +2,10 @@ from django import forms
from
.models
import
Job
,
Spider
class
Create
JobForm
(
forms
.
ModelForm
):
class
JobForm
(
forms
.
ModelForm
):
def
is_valid
(
self
):
super
(
Create
JobForm
,
self
)
.
is_valid
()
super
(
JobForm
,
self
)
.
is_valid
()
if
self
.
validate_query
():
return
True
else
:
...
...
esi/scraper/views.py
View file @
12b9e0e4
...
...
@@ -7,7 +7,7 @@ from django.utils.decorators import method_decorator
from
.models
import
Spider
,
Job
from
.service
import
Service
from
.periodic_task_creator
import
make_periodic_task
,
update_schedule
from
.forms
import
Create
JobForm
from
.forms
import
JobForm
BAD_QUERY
=
'Bab query'
...
...
@@ -73,7 +73,7 @@ class NewJobCreateView(CreateView):
return
render
(
request
,
self
.
template_name
,
{
'spiders'
:
spiders
})
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
form
=
Create
JobForm
(
request
.
POST
)
form
=
JobForm
(
request
.
POST
)
if
form
.
is_valid
():
job
=
form
.
save
()
job
.
schedule_job
=
make_periodic_task
(
job
.
id
,
schedule
(
job
.
interval
,
job
.
count
))
...
...
@@ -93,28 +93,17 @@ class EditJobView(UpdateView):
return
render
(
request
,
self
.
template_name
,
{
'job'
:
job
,
'spiders'
:
spiders
})
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
name
=
request
.
POST
.
get
(
'name'
)
spider
=
Spider
.
objects
.
get
(
pk
=
request
.
POST
.
get
(
'spider'
))
query
=
validate_query
(
request
.
POST
.
get
(
'query'
)
)
if
query
==
BAD_QUERY
:
form
=
JobForm
(
request
.
POST
,
instance
=
Job
.
objects
.
get
(
pk
=
kwargs
.
get
(
'id'
))
)
if
form
.
is_valid
():
job
=
form
.
save
(
)
else
:
return
HttpResponse
(
'Bad request'
,
status
=
400
)
scrap_old_news
=
True
if
request
.
POST
.
get
(
'scrap_old_news'
)
else
False
interval
=
request
.
POST
.
get
(
'interval'
,
''
)
.
upper
()
count
=
request
.
POST
.
get
(
'count'
,
1
)
count
=
1
if
count
==
''
else
int
(
count
)
job
=
Job
.
objects
.
get
(
pk
=
request
.
POST
.
get
(
'job'
))
job
.
name
=
name
job
.
spider
=
spider
job
.
query
=
query
if
len
(
query
)
>
0
else
None
job
.
scrap_old_news
=
scrap_old_news
if
interval
:
job
.
interval
=
interval
job
.
count
=
count
if
not
job
.
schedule_job
:
job
.
schedule_job
=
make_periodic_task
(
job
.
id
,
schedule
(
interval
,
count
))
job
.
schedule_job
=
make_periodic_task
(
job
.
id
,
schedule
(
interval
,
job
.
count
))
else
:
job
.
schedule_job
.
crontab
=
update_schedule
(
schedule
(
interval
,
count
))
job
.
schedule_job
.
crontab
=
update_schedule
(
schedule
(
interval
,
job
.
count
))
job
.
schedule_job
.
save
()
job
.
save
()
return
HttpResponseRedirect
(
reverse
(
'edit_job'
,
kwargs
=
{
'id'
:
request
.
POST
.
get
(
'job'
)}))
...
...
esi/templates/edit_job.html
View file @
12b9e0e4
...
...
@@ -41,9 +41,9 @@
<div
class=
"col-md-3"
>
<label
class=
"custom-control custom-radio"
>
{% if job.interval == 'DAY' %}
<input
id=
"radio1"
name=
"interval"
value=
"
day
"
type=
"radio"
class=
"custom-control-input"
checked
>
<input
id=
"radio1"
name=
"interval"
value=
"
DAY
"
type=
"radio"
class=
"custom-control-input"
checked
>
{% else %}
<input
id=
"radio1"
name=
"interval"
value=
"
day
"
type=
"radio"
class=
"custom-control-input"
>
<input
id=
"radio1"
name=
"interval"
value=
"
DAY
"
type=
"radio"
class=
"custom-control-input"
>
{% endif %}
<span
class=
"custom-control-indicator"
></span>
<span
class=
"custom-control-description"
>
Day
</span>
...
...
@@ -52,9 +52,9 @@
<div
class=
"col-md-3"
>
<label
class=
"custom-control custom-radio"
>
{% if job.interval == 'WEEK' %}
<input
id=
"radio2"
name=
"interval"
value=
"
week
"
type=
"radio"
class=
"custom-control-input"
checked
>
<input
id=
"radio2"
name=
"interval"
value=
"
WEEK
"
type=
"radio"
class=
"custom-control-input"
checked
>
{% else %}
<input
id=
"radio2"
name=
"interval"
value=
"
week
"
type=
"radio"
class=
"custom-control-input"
>
<input
id=
"radio2"
name=
"interval"
value=
"
WEEK
"
type=
"radio"
class=
"custom-control-input"
>
{% endif %}
<span
class=
"custom-control-indicator"
></span>
<span
class=
"custom-control-description"
>
Week
</span>
...
...
@@ -63,9 +63,9 @@
<div
class=
"col-md-3"
>
<label
class=
"custom-control custom-radio"
>
{% if job.interval == 'MONTH' %}
<input
id=
"radio3"
name=
"interval"
value=
"
month
"
type=
"radio"
class=
"custom-control-input"
checked
>
<input
id=
"radio3"
name=
"interval"
value=
"
MONTH
"
type=
"radio"
class=
"custom-control-input"
checked
>
{% else %}
<input
id=
"radio3"
name=
"interval"
value=
"
month
"
type=
"radio"
class=
"custom-control-input"
>
<input
id=
"radio3"
name=
"interval"
value=
"
MONTH
"
type=
"radio"
class=
"custom-control-input"
>
{% endif %}
<span
class=
"custom-control-indicator"
></span>
<span
class=
"custom-control-description"
>
Month
</span>
...
...
@@ -74,10 +74,10 @@
<div
class=
"col-md-3"
>
<label
class=
"custom-control custom-radio"
>
{% if job.interval == 'NON' %}
<input
id=
"radio4"
name=
"interval"
value=
"
non
"
type=
"radio"
<input
id=
"radio4"
name=
"interval"
value=
"
NON
"
type=
"radio"
class=
"custom-control-input"
checked
>
{% else %}
<input
id=
"radio4"
name=
"interval"
value=
"
non
"
type=
"radio"
<input
id=
"radio4"
name=
"interval"
value=
"
NON
"
type=
"radio"
class=
"custom-control-input"
>
{% endif %}
<span
class=
"custom-control-indicator"
></span>
...
...
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