def __init__(self, session=None): if session is not None: self.session = session sessionGrid = session.get_session_grid() grid_template_data = GridTableData(generateGridTable(sessionGrid)) grid_template_data.showRatingWhileFalseChangeRatingsWeights = session.state.name != SessionState.CHECK grid_template_data.tableId = generateRandomString() grid_template_data.usid = sessionGrid.usid self.tableData = grid_template_data self.participantTableData = ParticipantsData(session=session) self.iterations_with_results = session.get_iterations_with_results() if session.state.name == SessionState.CHECK: self.showRequestButtons = True self.showCloseSessionButton = True self.saveGridSession = True grid_template_data.changeRatingsWeights = True grid_template_data.changeCornAlt = True grid_template_data.checkForTableIsSave = True
def ajaxGetGrid(request): if not request.user.is_authenticated(): return redirect_to(request, '/auth/login/') user1= request.user #####view mode values######################################################################## # all: show the concerns/alternatives and ratings/weights # # ac: show only alternatives and concerns (only works with write mode read) # ############################################################################################# #####write mode values####################################### # read: can only see the values # # write: can see and change the values # ############################################################# #####check table values####################################### # true: will call the javascript function isTableSaved() # # false: will not call the javascript function isTableSaved()# ############################################################## checkForTableIsSave= False changeRatingsWeights= False changeCornAlt= False showRatingWhileFalseChangeRatingsWeights= True error= None; #validate the options gridUSID = None viewMode = None writeMode = None try: gridUSID= request.REQUEST['gridUSID'] viewMode= request.REQUEST['viewMode'] writeMode= request.REQUEST['writeMode'] except KeyError: error = 'Invalid arguments.' #variable check try: if not gridUSID: error= 'name of the grid was not specified' if not viewMode: viewMode= 'all' if not writeMode: writeMode= 'write' if writeMode == 'write': changeCornAlt= True changeRatingsWeights= True if viewMode == 'ac': showRatingWhileFalseChangeRatingsWeights= False if request.REQUEST.has_key('checkTable'): if request.REQUEST['checkTable'] == 'true': checkForTableIsSave= True except: print "Exception in user code:" print '-'*60 traceback.print_exc(file=sys.stdout) print '-'*60 error= 'one or more variables were not found' if not error: # create the table for the template grids= user1.grid_set gridObj= grids.filter(usid= gridUSID) #gridObj is first a list if len(gridObj) > 0: gridObj= gridObj[0] try: templateData= GridTableData(generateGridTable(gridObj)) templateData.tableId= randomStringGenerator() templateData.changeRatingsWeights= changeRatingsWeights templateData.changeCornAlt= changeCornAlt templateData.showRatingWhileFalseChangeRatingsWeights= showRatingWhileFalseChangeRatingsWeights templateData.checkForTableIsSave= checkForTableIsSave #dic= __generateGridTable__(gridObj) template= loader.get_template('gridMng/gridTable.html') context= RequestContext(request, {'data': templateData}) htmlData= template.render(context) return HttpResponse(createXmlSuccessResponse(htmlData), content_type='application/xml') #return render_to_response('gridMng/gridTable.html', {'table' : table, 'tableHeader': header, 'hiddenFields': hidden, 'weights':concernWeights, 'showRatings':showRatings, 'readOnly':readOnly, 'checkForTableIsSave':checkForTableIsSave }, context_instance=RequestContext(request)) except: print "Exception in user code:" print '-'*60 traceback.print_exc(file=sys.stdout) print '-'*60 return HttpResponse(createXmlErrorResponse('unknown error'), content_type='application/xml') else: return HttpResponse(createXmlErrorResponse('Grid was not found'), content_type='application/xml') else: return HttpResponse(createXmlErrorResponse(error), content_type='application/xml')