Source code for core.get_post

# -*- coding: utf-8 -*-
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import get_object_or_404
from django.contrib.contenttypes.models import ContentType


[docs]def cs_cards_update(form, cs_card, card_item): """**The method updates the value of the cards in CardSequence object.** :Arguments: * *form*: The form object * *cs_card*: The OrderedCardItem object * *card_item*: The Card object """ cs_card.order = form.cleaned_data["order"] cs_card.card_item = card_item cs_card.save() return cs_card
[docs]def add_card_in_cardsequence(card, cs_id): """**The method added the new Card object and its order in the CardSequence object.** :Arguments: * *card*: The Card object * *cs_id*: The CardSequence object ID """ from gsi.models import CardSequence from cards.models import CardItem order_num = 0 try: card_model = ContentType.objects.get_for_model(card.__class__).model content_type = get_object_or_404(ContentType, app_label='cards', model=card_model) cs = get_object_or_404(CardSequence, pk=cs_id) card_item = get_object_or_404( CardItem, content_type=content_type, object_id=card.id ) cs_all = CardSequence.cards.through.objects.filter( sequence=cs, ).count() if cs_all: order_num = cs_all CardSequence.cards.through.objects.create( order=order_num, sequence=cs, card_item=card_item, ) except Exception, e: pass
[docs]def get_post(request, item_form, item, reverse_ulr, func, args=False, item_id=None, cs_form=False, cs_id=None): """**The method processes the POST request and sends a response from the server.** :Arguments: * *request*: The request to the server * *item_form*: The Card form * *item*: The Card object * *reverse_ulr*: The URL redirection * *func*: The function to create or update Card * *args*: Additional options: Run ID, CardSequence ID, Card ID * *item_id*: The Card object ID (if the object is created the value default "None") * *cs_form*: If an object is created or updated in CardSequence object, the value is "True". Default is "False" * *cs_id*: If an object is created or updated in CardSequence object, the value is CardSequence object ID. Default is "None" """ response = None # process the POST request by pressing a button "Save" if request.POST.get('save_button') is not None: form_1 = item_form(request.POST) if cs_form: form_2 = cs_form[0](request.POST) if form_1.is_valid(): if item_id: if request.POST.getlist('available'): multiple = '_'.join(request.POST.getlist('available')) obj = func(form_1, multiple=multiple, item_id=item_id) else: obj = func(form_1, item_id=item_id) if obj == None: return None else: if request.POST.getlist('available'): multiple = '_'.join(request.POST.getlist('available')) obj = func(form_1, multiple=multiple) else: obj = func(form_1) add_card_in_cardsequence(obj, cs_id) if obj == None: return None if cs_form: if form_2.is_valid(): cs_obj = cs_cards_update(form_2, cs_form[1], cs_form[2]) if args: response = HttpResponseRedirect( u'%s?status_message=%s' % (reverse(reverse_ulr['save_button'][0], args=reverse_ulr['save_button'][1]), (u'The {0} "{1}" was edited.'.format(item, obj))) ) else: response = HttpResponseRedirect( u'%s?status_message=%s' % (reverse(reverse_ulr['save_button']), (u'The {0} "{1}" created successfully.'.format(item, obj))) ) else: return form_1 # process the POST request by pressing a button "Save and create another object" elif request.POST.get('save_and_another_button') is not None: form_1 = item_form(request.POST) if form_1.is_valid(): if item_id: if request.POST.getlist('available'): multiple = '_'.join(request.POST.getlist('available')) obj = func(form_1, multiple=multiple, item_id=item_id) else: obj = func(form_1, item_id=item_id) if obj == None: return None else: if request.POST.getlist('available'): multiple = '_'.join(request.POST.getlist('available')) obj = func(form_1, multiple=multiple) add_card_in_cardsequence(obj, cs_id) else: obj = func(form_1) add_card_in_cardsequence(obj, cs_id) if obj == None: return None if args: response = HttpResponseRedirect( u'%s?status_message=%s' % (reverse(reverse_ulr['save_and_another'][0], args=reverse_ulr['save_and_another'][1]), (u'The {0} "{1}" was added successfully. \ You may add another {2} below'.format(item, obj, item))) ) else: response = HttpResponseRedirect( u'%s?status_message=%s' % (reverse(reverse_ulr['save_and_another']), (u'The {0} "{1}" was added successfully. \ You may add another {2} below'.format(item, obj, item))) ) else: return form_1 # process the POST request by pressing a button "Delete" elif request.POST.get('delete_button') is not None: form_1 = item_form(request.POST) if form_1.is_valid(): if item_id: if request.POST.getlist('chosen'): multiple = '_'.join(request.POST.getlist('chosen')) obj = func(form_1, multiple=multiple, item_id=item_id, delete=True) if obj == None: return None if args: response = HttpResponseRedirect( u'%s?status_message=%s' % (reverse(reverse_ulr['save_and_continue'][0], args=reverse_ulr['save_and_continue'][1]+[obj.id]), (u'The {0} "{1}" was deleted successfully.'.format(item, obj))) ) else: response = HttpResponseRedirect( u'%s?status_message=%s' % (reverse(reverse_ulr['save_and_continue'], args=[obj.id]), (u'The {0} "{1}" was deleted successfully.'.format(item, obj))) ) else: return form_1 # process the POST request by pressing a button "Cancel" elif request.POST.get('cancel_button') is not None: if args: response = HttpResponseRedirect( u'%s?status_message=%s' % (reverse(reverse_ulr['cancel_button'][0], args=reverse_ulr['cancel_button'][1]), (u'The "{0}" created canceled'.format(item))) ) else: response = HttpResponseRedirect( u'%s?status_message=%s' % (reverse(reverse_ulr['cancel_button']), (u'The "{0}" created canceled'.format(item))) ) # process the POST request by pressing other buttons else: form_1 = item_form(request.POST) if cs_form: form_2 = cs_form[0](request.POST) if form_1.is_valid(): if item_id: if request.POST.getlist('available'): multiple = '_'.join(request.POST.getlist('available')) obj = func(form_1, multiple=multiple, item_id=item_id) else: obj = func(form_1, item_id=item_id) if obj == None: return None else: if request.POST.getlist('available'): multiple = '_'.join(request.POST.getlist('available')) obj = func(form_1, multiple=multiple) add_card_in_cardsequence(obj, cs_id) else: obj = func(form_1) add_card_in_cardsequence(obj, cs_id) if obj == None: return None if cs_form: if form_2.is_valid(): cs_obj = cs_cards_update(form_2, cs_form[1], cs_form[2]) if args: response = HttpResponseRedirect( u'%s?status_message=%s' % (reverse(reverse_ulr['save_and_continue'][0], args=reverse_ulr['save_and_continue'][1]+[obj.id]), (u'The {0} "{1}" will be saved. \ You can continue editing.'.format(item, obj))) ) else: response = HttpResponseRedirect( u'%s?status_message=%s' % (reverse(reverse_ulr['save_and_continue'], args=[obj.id]), (u'The {0} "{1}" will be saved. \ You can continue editing.'.format(item, obj))) ) else: return form_1 return response