def edit_failed_contact(request, pk): contact_obj = get_object_or_404(FailedContact, pk=pk) if not (request.user.role == 'ADMIN' or request.user.is_superuser or contact_obj.created_by == request.user): raise PermissionDenied if request.method == 'GET': form = ContactForm(instance=contact_obj) return render(request, 'marketing/lists/edit_contact.html', {'form': form}) if request.method == 'POST': form = ContactForm(request.POST, instance=contact_obj) if form.is_valid(): contact = form.save(commit=False) contact.save() form.save_m2m() return JsonResponse({ 'error': False, 'success_url': reverse('marketing:contacts_list') }) else: return JsonResponse({ 'error': True, 'errors': form.errors, })
def edit_contact(request, pk): url_redirect_to = None contact_obj = get_object_or_404(Contact, pk=pk) if not (request.user.role == 'ADMIN' or request.user.is_superuser or contact_obj.created_by == request.user or (contact_obj.id in request.user.marketing_contactlist.all().values_list( 'contacts', flat=True))): raise PermissionDenied if request.method == 'GET': form = ContactForm(instance=contact_obj) return render(request, 'marketing/lists/edit_contact.html', {'form': form}) if request.method == 'POST': form = ContactForm(request.POST, instance=contact_obj) if form.is_valid(): if form.has_changed(): if contact_obj.contact_list.count() > 1: contact_list_obj = ContactList.objects.filter( id=request.POST.get('from_url')).first() if contact_list_obj: contact_obj.contact_list.remove(contact_list_obj) updated_contact = ContactForm(request.POST) if updated_contact.is_valid(): updated_contact_obj = updated_contact.save() updated_contact_obj.created_by = request.user updated_contact_obj.save() updated_contact_obj.contact_list.add(contact_list_obj) else: contact = form.save(commit=False) if form.is_valid(): contact.save() form.save_m2m() else: contact = form.save(commit=False) if form.is_valid(): contact.save() form.save_m2m() if request.POST.get('from_url'): return JsonResponse({ 'error': False, 'success_url': reverse('marketing:contact_list_detail', args=(request.POST.get('from_url'), )) }) return JsonResponse({ 'error': False, 'success_url': reverse('marketing:contacts_list') }) else: return JsonResponse({ 'error': True, 'errors': form.errors, })