def filter_custom_fields(field_type, field_name): values = get_object_type_fields() if values.has_key(field_type): values = values[field_type] for value in values: if value['name']==field_name: return value return None
def object_base_edit(request): # TODO: Check user user = User.objects.get(id=request.user.id) name = request.POST['name'] new_type = request.POST['newObjectType'] all_data = setup_content.get_object_type_fields() if not all_data.has_key(new_type) or not isinstance(all_data[new_type], list): all_data[new_type] = [] all_data[new_type].append({'name': name, 'fields':[]}) setup_content.set_object_type_fields(all_data) return redirect(request.META.get('HTTP_REFERER') + '&name=' + name + '&newObjectType=' + new_type)
def object_delete(request): # TODO: Check user user = User.objects.get(id=request.user.id) object_type = request.POST['object_type'] object_name = request.POST['object_name'] all_data = setup_content.get_object_type_fields() new_list = [] # TODO Pythonize this for element in all_data[object_type]: if element['name']==object_name: None else: new_list.append(element) all_data[object_type] = new_list setup_content.set_object_type_fields(all_data) return HttpResponse('{"result": true, "status_message": "Deleted"}',"json")
def complete_custom_fields_information(container_type, filtering_fields=None): all_data = {} all_custom_fields = setup_content.get_container_type_fields() if all_custom_fields.has_key(container_type): all_fields_information = setup_content.get_object_type_fields() for field in all_custom_fields[container_type]: if all_fields_information.has_key(field['type']): for group in all_fields_information[field['type']]: if group['name']==field['name']: group_name = group['name'].replace(' ','-') for field_info in group['fields']: field_name = field_info['name'].replace(' ','-') full_name = group_name + '.' + field_name if field_info['type']=='FIELD_TYPE_CHOICE': field_info['template'] = 'statics/' + field_info['attribute'] + '_en.html' if filtering_fields==None or full_name in filtering_fields: all_data[full_name] = field_info return all_data
def object_save(request): # TODO: Check user user = User.objects.get(id=request.user.id) object_type = request.POST['object_type'] object_name = request.POST['object_name'] object_fields = request.POST['object_fields'] object_fields = json.loads(object_fields) all_data = setup_content.get_object_type_fields() for element in all_data[object_type]: if element['name']==object_name: element['fields'] = object_fields context = Context({"element": element}) template = loader.get_template('rendition/object_simple_wizard.html') rendition = template.render(context) # TODO Implement multi-langage outfile = os.path.join(STATICS_GLOBAL_PATH, element['name'] + '_en.html') with open(outfile,'w') as o: o.write(rendition.encode('utf-8')) setup_content.set_object_type_fields(all_data) return HttpResponse('{"result": true, "status_message": "Saved"}',"json")