def update(request, user_app_id):
    """Update record"""

    data = request.DATA

    user = helpers.get_user(request)

    data = helpers.set_null_values_if_not_exist(data, get_fields())

    try:
        item = get_application_model().objects.get(pk=user_app_id)
    except get_application_model().DoesNotExist:
        return {'code': 'user_app/not_found', 'values': [user_app_id]}, 404, False

    data['client_type'] = AbstractApplication.CLIENT_CONFIDENTIAL
    data['authorization_grant_type'] = AbstractApplication.GRANT_PASSWORD
    data['skip_authorization'] = True
    data['client_id'] = generate_client_id()
    data['client_secret'] = generate_client_secret()

    helpers.json_to_objects(item, data)
    item.user = user
    item.save()

    return {'code': 'ok', 'data': helpers.objects_to_json(request, [item])}, 200, item
def create(request):
    """Create record"""

    data = request.POST

    user = helpers.get_user(request)

    data = helpers.set_null_values_if_not_exist(data, get_fields())

    if request.FILES and request.FILES.get('file'):
        if user.is_superuser:
            url = helpers.save_file(False,
                                    request.FILES.get('file'))
        else:
            url = helpers.save_file(str(user.id),
                                    request.FILES.get('file'))
    else:
        url = ''

    item, created = File.objects.get_or_create(src=url)
    if created:
        helpers.json_to_objects(item, data)
        item.created_user = user
        item.save()

    return {'code': 'ok', 'data': helpers.objects_to_json(request, [item])}, 200, item
def reset(request):
    """Reset password action"""

    data = request.DATA

    data = helpers.set_null_values_if_not_exist(data, get_fields())

    data['code'] = data['code'].lower()

    code = get_code(request, data['code'])

    if code:
        try:
            user = User.objects.get(pk=code.created_user.id)
        except User.DoesNotExist:
            user = False

    if user.is_active and code:

        if data['password'] is not None:
            user.set_password(data['password'])
        helpers.json_to_objects(user, data)
        user.backend = 'django.contrib.auth.backends.ModelBackend'
        user.save()

        auth.login(request, user)
        code.delete()

        return {'code': 'ok', 'data': [user.get_user_data()]}, 200, user
    else:
        auth.logout(request)
        return {'code': 'account/not_active'}, 404, False
def create(request):
    data = request.DATA

    user = helpers.get_user(request)

    data = helpers.set_null_values_if_not_exist(data, get_fields())

    item, created = PublicLink.objects.get_or_create(src=data['src'])

    if created:
        helpers.json_to_objects(item, data)
        item.created_user = user
        item.save()

    return {'code': 'ok', 'data': helpers.objects_to_json(request, [item])}, 200, item
def update(request, tag_id):
    """Update record"""

    data = request.DATA

    data = helpers.set_null_values_if_not_exist(data, get_fields())

    try:
        item = Tag.objects.get(pk=tag_id)
    except Tag.DoesNotExist:
        return {"code": "tag/not_found", "values": [tag_id]}, 404, False

    helpers.json_to_objects(item, data)
    item.save()

    return {"code": "ok", "data": helpers.objects_to_json(request, [item])}, 200, item
def create(request):
    """Create record"""

    data = request.DATA

    user = helpers.get_user(request)

    data = helpers.set_null_values_if_not_exist(data, get_fields())

    item, created = Tag.objects.get_or_create(text=data["text"])
    if created:
        helpers.json_to_objects(item, data)
        item.created_user = user
        item.save()

    return {"code": "ok", "data": helpers.objects_to_json(request, [item])}, 200, item
def update(request, file_id):
    """Update record"""

    data = request.DATA

    data = helpers.set_null_values_if_not_exist(data, get_fields())

    try:
        item = File.objects.get(pk=file_id)
    except File.DoesNotExist:
        return {'code': 'file/not_found', 'values': [file_id]}, 404, False

    helpers.json_to_objects(item, data)
    item.save()

    return {'code': 'ok', 'data': helpers.objects_to_json(request, [item])}, 200, item
def create(request):
    data = request.DATA

    user = helpers.get_user(request)

    data = helpers.set_null_values_if_not_exist(data, get_fields())

    item, created = Properties.objects.get_or_create(name=data['name'])

    if created:
        helpers.json_to_objects(item, data)
        item.created_user = user
        item.only_update = 0
        item.save()

    return {'code': 'ok', 'data': helpers.objects_to_json(request, [item])}, 200, item
def update(request):
    """Update record"""

    data = request.DATA

    data = helpers.set_null_values_if_not_exist(data, get_fields())

    data['email'] = data['email'].lower()

    user = helpers.get_user(request)
    helpers.json_to_objects(user, data)
    if data['password'] is not None:
        user.set_password(data['password'])
    user.backend = 'django.contrib.auth.backends.ModelBackend'
    user.save()

    return {'code': 'ok', 'data': [user.get_user_data()]}, 200, user
def update(request, public_link_id):
    """Update record"""

    data = request.DATA

    user = helpers.get_user(request)

    data = helpers.set_null_values_if_not_exist(data, get_fields())

    try:
        item = PublicLink.objects.get(pk=public_link_id)
    except PublicLink.DoesNotExist:
        return {'code': 'public_link/not_found', 'values': [public_link_id]}, 404, False

    helpers.json_to_objects(item, data)
    item.save()

    return {'code': 'ok', 'data': helpers.objects_to_json(request, [item])}, 200, item
def update(request, html_cache_id):
    """Update record"""

    data = request.DATA

    user = helpers.get_user(request)

    data = helpers.set_null_values_if_not_exist(data, get_fields())

    try:
        item = HtmlCache.objects.get(pk=html_cache_id)
    except HtmlCache.DoesNotExist:
        return {'code': 'html_cache/not_found', 'values': [html_cache_id]}, 404, False

    helpers.json_to_objects(item, data)
    item.save()

    return {'code': 'ok', 'data': helpers.objects_to_json(request, [item])}, 200, item
def update_from_json_data(request, item, data, user):
    from ..image.models import Image
    from ..tag.models import Tag

    helpers.json_to_objects(item, data)

    if item.type is None:
        item.type = 1

    reload_source = {}

    # tags
    tag_field_ids = []
    tag_field_texts = []
    for tag in data['tags']:
        try:
            tag_id = tag['id']
        except KeyError:
            tag_id = None
        try:
            tag_text = tag['text']
        except KeyError:
            tag_text = None
        if tag_id is not None:
            tag_field_ids.append(tag_id)
        if tag_id is None and tag_text is not None:
            tag_field_texts.append(tag)

    for tag in item.tags.all():
        if tag.id not in tag_field_ids:
            item.tags.remove(tag)

    for tag_text in tag_field_texts:
        tag, tag_created = Tag.objects.get_or_create(text=tag_text['text'])
        if tag_created:
            tag.created_user = user
            tag.save()
            reload_source['tag'] = True
        item.tags.add(tag)

    for tag_id in tag_field_ids:
        tag = Tag.objects.get(pk=tag_id)
        item.tags.add(tag)

    # images
    image_field_ids = []
    image_field_srcs = []
    for image in data['images']:
        try:
            image_id = int(image['id'])
        except:
            image_id = None

        try:
            image_src = image['src']
        except KeyError:
            image_src = None
        if image_id is not None:
            image_field_ids.append(image_id)

        if image_id is None and image_src is not None:
            image_field_srcs.append(image)

    for image in item.images.all():
        if image.id not in image_field_ids:
            item.images.remove(image)

    for image_src in image_field_srcs:
        image, image_created = Image.objects.get_or_create(src=image_src['src'])
        if image_created:
            image.created_user = user
            image.save()
            reload_source['image'] = True
        item.images.add(image)

    for image_id in image_field_ids:
        image = Image.objects.get(pk=image_id)
        item.images.add(image)

    item.save()

    return reload_source