def my_jobs_edit(request, slug): opportunity = get_object_or_404(Job, slug=slug) if request.method == 'POST': form = JobEditForm(request.POST, instance=opportunity) if form.is_valid(): job = form.save(commit=False) job.save() job.province = [form.cleaned_data['province'], ] return redirect(reverse("my_community_opportunities")) else: form = JobEditForm(instance=opportunity) return render(request, 'my_jobs_create.html', {'form': form})
def jobs_create(request): if request.method == "POST": form = JobEditForm(request.POST) title = request.POST.get("title") description = request.POST.get("description") # check if the user hasn't placed the exact same job article # with the exact same information in the last 5 minutes # to prevent duplicates delta = datetime.now() - timedelta(minutes=5) duplicate = Job.objects.filter( owner=request.user, created__gte=delta, title=title, description=description ).exists() daily_limit_exceeded = ( UmmeliOpportunity.objects.filter(owner=request.user, created__gte=datetime.now().date()).count() >= settings.COMMUNITY_BOARD_POST_LIMIT ) if daily_limit_exceeded: msg = "You can only post to the community board %s times a day" messages.error(request, msg % settings.COMMUNITY_BOARD_POST_LIMIT) return redirect(reverse("index")) if form.is_valid(): if not duplicate: user_article = form.save(commit=False) user_article.owner = request.user user_article.state = "published" user_article.is_community = True user_article.publish_on = datetime.now() user_article.save() user_article.sites.add(site) user_article.province.add(form.cleaned_data["province"]) return redirect(reverse("my_community_opportunities")) else: form = JobEditForm() return render(request, "opportunities/jobs/jobs_create.html", {"form": form})