Пример #1
0
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
Пример #2
0
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)
Пример #3
0
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")
Пример #4
0
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
Пример #5
0
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")