Esempio n. 1
0
def show_model(request, instance_id, model):
  model_class_name = model.capitalize()
  init_actions()
  instance = get_object_or_404(get_class('glue.models.' + model_class_name), pk=instance_id)
  # the following could improve performance, but did not work once... maybe some kind
  # of cache issue. The taskactions where  not found.
  #task_actions = TaskAction.objects.select_related().filter(task=t)
  filt = {str(model_class_name.lower()) : instance}
  model_actions = get_class('glue.models.' + model_class_name + 'Action').objects.filter(**filt)
  #print "task id %s: task_actions = %s" % (task_id, task_actions)
  actionsRequiringParameter = {}
  model_action_id_numbers_map = {}
  i = 0
  for model_action in model_actions:
    model_action_id_numbers_map[model_action.id] = i
    i += 1
  
  for model_action in model_actions:
    action = get_class(model_action.action.classname)(model_action)
    for param in action.get_required_parameters():
      if not param in actionsRequiringParameter:
        actionsRequiringParameter[param] = []
      actionsRequiringParameter[param].append(model_action.id);
  
  return render('glue/show_model.html', {'model': instance, 'model_class': model_class_name, 'model_actions': model_actions, 'actionsRequiringParameter': actionsRequiringParameter, 'model_action_id_numbers_map': model_action_id_numbers_map}, request)
Esempio n. 2
0
 def create_actions(model):
   """
   Creates a TaskAction instance for all actions and relates it to the task.
   """
   init_actions()
   nr = 0;
   for action in Action.objects.filter(model_name=modelType):
     if action.name != "Free action":
       print "Creating TaskAction for %s %s and action %s" % (modelType, model,action)
       nr += 1;
       filt = {'action': action, str(modelType) : model, 'nr' : nr}
       model_action_class = get_class('glue.models.' + modelType.capitalize() + 'Action')
       new_taskaction = model_action_class(**filt)
       new_taskaction.save()