def add_estrategia(request): data = json.loads(request.body) name = data['name']; description = data['description'] thumbnail = data['thumbnail'] # getlist('images[]') images = data['images'] type = data['type'] author = data['author'] if thumbnail == '': thumbnail == None itemCode = data['id'] print 'add_estrategia', itemCode if itemCode == '' or itemCode == 0: item = Item() item.type = int(smart_text(type, encoding='utf-8', strings_only=False, errors='strict')) else: item = Item.objects.get(item_code=itemCode, version=0, author=author) item.name = smart_text(name, encoding='utf-8', strings_only=False, errors='strict') item.description = smart_text(description, encoding='utf-8', strings_only=False, errors='strict') item.thumbnail = thumbnail item.status = '1' item.author_id = author ob = None if type == models.TECHNOLOGY: # TODO: agregar cosas especificas de cada tipo de item ob = models.Technology( name=name, description = ':V' ) ob.save() item.technology = ob elif type == models.TOOL: devPk = data['subclassId']; print "toolPk", devPk if devPk == '': ob = models.Tool() else: ob = models.Development.objects.get(pk=devPk) ob.name = name ob.description = ':v' ob.technology = models.Technology.objects.get(pk=data['technology']) ob.url = data['toolUrl'] ob.download_url = data['toolDownloadUrl'] ob.license_type = data['licenseType'] ob.use_restrictions = data['useRestrictions'] ob.integration = data['integration'] ob.functional_description = data['functionalDescription'] ob.operating_systems = smart_text(",".join(data['operativeSystems']), encoding='utf-8', strings_only=False, errors='strict') ob.save() item.tool = ob elif type == models.TUTORIAL: devPk = data['subclassId']; print "tutorialPk", devPk if devPk == '': ob = models.Tutorial() else: ob = models.Tutorial.objects.get(pk=devPk) ob.name = name ob.url = data['tutorialUrl'] ob.tool_id = data['tool'] ob.save() item.tutorial = ob elif type == models.EXAMPLE: devPk = data['subclassId']; print "examplePk", devPk if devPk == '': ob = models.Example() else: ob = models.Example.objects.get(pk=devPk) ob.name = name ob.url = data['exampleUrl'] ob.strategy_id = data['strategy'] ob.tool_id = data['tool'] ob.save() item.example = ob elif type == models.STRATEGY: devPk = data['subclassId']; print "strategyPk", devPk if devPk == '': ob = models.Strategy() else: ob = models.Strategy.objects.get(pk=devPk) ob.name = name ob.save() item.strategy = ob elif type == models.DEVELOPMENT: devPk = data['subclassId']; print "devPk", devPk if devPk == '': ob = models.Development( name=name ) ob.save() else: ob = models.Development.objects.get(pk=devPk) ob.dev_technologies.clear() ob.save() for tech in data['devTechs']: # the list of devTechs PK's print "tech", tech ob.dev_technologies.add(tech) ob.save() item.development = ob elif type == models.DISCIPLINE: devPk = data['subclassId'] print "disciplinePk", devPk if devPk == '': ob = models.Discipline( name=name ) ob.save() else: ob = models.Discipline.objects.get(pk=devPk) ob.tools.clear() ob.save() for _tool in data['tools']: # the list of devTechs PK's print "tool", _tool ob.tools.add(_tool) ob.save() item.discipline = ob for tech in data['devTechs']: # the list of devTechs PK's print "tech", tech ob.dev_technologies.add(tech) item.save() if item.item_code == -1: print "Version ", data['version'] if data['version'] == "2": print "Created draft of an aproved item" item.item_code = data['item_code'] else: item.item_code = item.pk item.save() item.images.clear() for image in images: newImg = models.Image.objects.create(image=image) item.images.add(newImg) item.save() print name, description, thumbnail, images _ob = serializers.serialize("json", [ob]) _item = serializers.serialize("json", [item]) sendToReview = data['sendToReview']; if (sendToReview): createReviewVersion(item) return JsonResponse({'mensaje': 'ok', 'item': _item, 'strategy': _ob})