def taxon_merge(request, destination_id, source_id=None): # the "source" taxon will be deleted and references to it will be changed # to the "destination" taxon destination = Taxon.objects.get(id=destination_id) if source_id is None: merge_form = merge_source_form_factory(Taxon, destination)(request.GET) if not merge_form.is_valid(): return redirect('taxon_detail', destination.id) source = merge_form.cleaned_data['source'] else: source = Taxon.objects.get(id=source_id) form_kwargs = { 'source': source, 'destination': destination, } if request.method == 'POST': form = TaxonMergeForm(data=request.POST, **form_kwargs) if form.is_valid(): form.save() return redirect('taxon_detail', destination.id) else: form = TaxonMergeForm(**form_kwargs) return render_to_response( 'taxons/merge_taxon.html', { 'destination': destination, 'source': source, 'form': form, 'media': form.media, 'destination_fk_refs': map( lambda t: (t[0]._meta.verbose_name, t[1].verbose_name, t[2]), form.destination_fk_refs ), 'source_fk_refs': map( lambda t: (t[0]._meta.verbose_name, t[1].verbose_name, t[2]), form.source_fk_refs ), 'destination_m2m_refs': map( lambda t: (t[0]._meta.verbose_name, t[1].verbose_name, t[2]), form.destination_m2m_refs ), 'source_m2m_refs': map( lambda t: (t[0]._meta.verbose_name, t[1].verbose_name, t[2]), form.source_m2m_refs ), }, context_instance= RequestContext(request), )
def taxon_detail(request, taxon_id): taxon = Taxon.objects.get(id=taxon_id) merge_form = merge_source_form_factory(Taxon, taxon)() template_media = Media( js= (settings.JQUERY_FILE,), ) return render_to_response( 'taxons/taxon_detail.html', { 'taxon': taxon, 'media': template_media + merge_form.media, 'merge_form': merge_form, }, context_instance= RequestContext(request), )
def merge_contact(request, destination_id, source_id=None): # the "source" contact will be deleted and references to it will be changed # to the "destination" contact destination = Contact.objects.get(pk=destination_id) if source_id is None: merge_form = merge_source_form_factory(Contact, destination)(request.GET) if not merge_form.is_valid(): return redirect('contact_detail', destination.pk) source = merge_form.cleaned_data['source'] else: source = Contact.objects.get(pk=source_id) form_kwargs = { 'source': source, 'destination': destination, } if request.method == 'POST': form = ContactMergeForm(data=request.POST, **form_kwargs) if form.is_valid(): form.save() form.delete() return redirect('contact_detail', destination.pk) else: form = ContactMergeForm(**form_kwargs) return render_to_response( 'contacts/merge_contact.html', { 'object_name': 'contact', 'object_name_plural': 'contacts', 'destination': destination, 'source': source, 'form': form, 'media': form.media, }, context_instance= RequestContext(request), )
def contact_detail(request, contact_id): contact = Contact.objects.get(pk=contact_id) template_media = Media(js=(settings.JQUERY_FILE,)) context = { 'contact': contact, 'media': template_media, } if request.user.has_perms(( 'contacts.change_contact', 'contacts.delete_contact', )): merge_form = merge_source_form_factory(Contact, contact)() context['media'] += merge_form.media context['merge_form'] = merge_form return render_to_response( 'contacts/contact_detail.html', context, context_instance= RequestContext(request), )