Commit 12b9e0e4 authored by Andrii Marynets's avatar Andrii Marynets

Refactor edit view

parent 5fd66ee8
......@@ -2,10 +2,10 @@ from django import forms
from .models import Job, Spider
class CreateJobForm(forms.ModelForm):
class JobForm(forms.ModelForm):
def is_valid(self):
super(CreateJobForm, self).is_valid()
super(JobForm, self).is_valid()
if self.validate_query():
return True
else:
......
......@@ -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 CreateJobForm
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 = CreateJobForm(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')}))
......
......@@ -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>
......
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