def sortblocks(request, group): if request.method != 'POST' or not request.user.is_authenticated: raise Exception # Now resort it .. print(str(request.POST)) #return HttpResponse('') for blockregion in request.POST.getlist('block_region'): sortorder = request.POST[blockregion] print("sortorder for %s: %s" % (blockregion, str(sortorder))) region = get_or_create_region(get_current_group(), request.user, blockregion) block_instances = BlockInstancePosition.objects.filter(region = region,) block_instances.delete() if not sortorder: continue idorder = [e.split('=')[1] for e in sortorder.split('&')] pos=1 for id in idorder: # TODO add permission checking ? block_config = BlockConfiguration.objects.get( pk = id ) BlockInstancePosition(region = region, block_configuration = block_config, sortorder = pos).save() pos+=1 return HttpResponse('') blockregion = request.POST['block_region'] sortorder = request.POST['sortorder'] idorder = [e.split('=')[1] for e in sortorder.split('&')] region = get_or_create_region(get_current_group(), request.user, blockregion) block_instances = BlockInstancePosition.objects.filter(region = region,) block_instances.delete() pos=1 for id in idorder: # TODO add permission checking ? block_config = BlockConfiguration.objects.get( pk = id ) BlockInstancePosition(region = region, block_configuration = block_config, sortorder = pos).save() pos+=1 return HttpResponse( 'Sorted all blocks.' )
def addblock(request, group): region_name = request.POST['region'] region = get_or_create_region(group, request.user, region_name) try: lastblock = BlockInstancePosition.objects.filter(region = region).\ order_by('-sortorder')[0] sortorder = lastblock.sortorder + 1 except IndexError: sortorder = 1 block_config = BlockConfiguration.objects.get( pk = request.POST['block_config'] ) pos = BlockInstancePosition(region = region, sortorder = sortorder, block_configuration = block_config) pos.save() #print "sortorder: %d" % sortorder return HttpResponseRedirect( '/' )