예제 #1
0
파일: views.py 프로젝트: grafuls/OTM2
                             'last_name',
                             'email',
                             'body'])
    writer.writeheader()

    for relic in relics:
        user = User.objects.get(pk=relic.otm2_model_id)
        if relic.otm1_username == user.username:
            continue
        assert relic.email.lower() == user.email.lower()
        row = {
            'otm1_user_id': relic.otm1_model_id,
            'otm2_model_id': user.pk,
            'otm1_username': relic.otm1_username,
            'last_login': user.last_login,
            'otm2_username': user.username,
            'first_name': user.first_name,
            'last_name': user.last_name,
            'email': user.email,
        }
        body = render_email_body(user, instance)
        row['body'] = body
        writer.writerow(row)

    return response

user_csv_endpoint = do(
    require_http_method("GET"),
    admin_instance_request,
    user_csv)
예제 #2
0
@transaction.atomic
def unarchive(request, instance):
    return _set_prop_on_comments(request, instance, 'is_archived', False)


@transaction.atomic
def hide(request, instance):
    return _set_prop_on_comments(request, instance, 'is_removed', True)


@transaction.atomic
def show(request, instance):
    return _set_prop_on_comments(request, instance, 'is_removed', False)


_admin_post_do = partial(do, require_http_method("POST"),
                         admin_instance_request,
                         render_template(
                             "otm_comments/partials/moderation.html"))

_render_flagging_view = partial(
    do,
    require_http_method("POST"),
    instance_request,
    render_template("otm_comments/partials/flagging.html"))

flag_endpoint = _render_flagging_view(flag)
unflag_endpoint = _render_flagging_view(unflag)
hide_flags_endpoint = _admin_post_do(hide_flags)
archive_endpoint = _admin_post_do(archive)
unarchive_endpoint = _admin_post_do(unarchive)
예제 #3
0
from treemap.decorators import (login_or_401, return_400_if_validation_errors,
                                require_http_method, requires_feature,
                                creates_instance_user, instance_request,
                                admin_instance_request, json_api_edit)

import treemap.views.user as user_views
import treemap.views.photo as photo_views
import treemap.views.tree as tree_views
import treemap.views.misc as misc_views
import treemap.views.map_feature as feature_views


add_map_feature_photo_do = partial(
    do,
    require_http_method("POST"),
    login_or_401,
    instance_request,
    creates_instance_user,
    render_template('treemap/partials/photo_carousel.html'))

#####################################
# misc content views
#####################################

edits_page = do(
    instance_request,
    requires_feature('recent_edits_report'),
    render_template('treemap/edits.html'),
    misc_views.edits)
예제 #4
0
    creates_instance_user,
    instance_request,
    admin_instance_request,
    json_api_edit,
)

import treemap.views.user as user_views
import treemap.views.photo as photo_views
import treemap.views.tree as tree_views
import treemap.views.misc as misc_views
import treemap.views.map_feature as feature_views


add_map_feature_photo_do = partial(
    do,
    require_http_method("POST"),
    login_or_401,
    instance_request,
    creates_instance_user,
    render_template("treemap/partials/photo_carousel.html"),
)

#####################################
# misc content views
#####################################

edits_page = do(
    instance_request, requires_feature("recent_edits_report"), render_template("treemap/edits.html"), misc_views.edits
)

index_page = instance_request(misc_views.index)
예제 #5
0
파일: views.py 프로젝트: lorenanicole/OTM2
    route(PUT=update_user))

add_photo_endpoint = logged_in_api_do(
    route(
        POST=do(
            instance_request,
            creates_instance_user,
            return_400_if_validation_errors,
            add_photo)))

status_view = api_do(route(GET=status))

version_view = api_do(route(GET=version))

update_profile_photo_endpoint = logged_in_api_do(
    require_http_method('POST'),
    return_400_if_validation_errors,
    update_profile_photo)

export_users_csv_endpoint = do(
    csrf_exempt,
    check_signature_and_require_login,
    set_api_version,
    admin_instance_request,
    route(GET=users_csv))

export_users_json_endpoint = do(
    csrf_exempt,
    check_signature_and_require_login,
    set_api_version,
    admin_instance_request,
예제 #6
0
    route(GET=do(login_required, transform_user_response, user_info),
          POST=do(transform_user_request, return_400_if_validation_errors,
                  create_user)))

update_user_endpoint = logged_in_api_do(transform_user_request,
                                        return_400_if_validation_errors,
                                        transform_user_response,
                                        route(PUT=update_user))

add_photo_endpoint = logged_in_api_do(
    route(POST=do(instance_request, creates_instance_user,
                  return_400_if_validation_errors, add_photo)))

status_view = api_do(route(GET=status))

version_view = api_do(route(GET=version))

update_profile_photo_endpoint = logged_in_api_do(
    require_http_method('POST'), return_400_if_validation_errors,
    update_profile_photo)

export_users_csv_endpoint = do(csrf_exempt, check_signature_and_require_login,
                               set_api_version, admin_instance_request,
                               route(GET=users_csv))

export_users_json_endpoint = do(csrf_exempt, check_signature_and_require_login,
                                set_api_version, admin_instance_request,
                                route(GET=users_json))

reset_password_endpoint = api_do(route(POST=reset_password))
예제 #7
0
                                      udf_delete_popup, udf_delete,
                                      udf_update_choice,
                                      remove_udf_notifications)
from manage_treemap.views.user_roles import (user_roles_list,
                                             update_user_roles,
                                             create_user_role,
                                             remove_invited_user_from_instance)
from treemap.decorators import (require_http_method, admin_instance_request,
                                return_400_if_validation_errors,
                                requires_feature)

admin_route = lambda **kwargs: admin_instance_request(route(**kwargs))

json_do = partial(do, json_api_call, return_400_if_validation_errors)

management = do(require_http_method('GET'), views.management_root)

admin_counts = admin_route(GET=do(json_api_call, views.admin_counts))

site_config = admin_route(GET=do(render_template('manage_treemap/basic.html'),
                                 views.site_config_basic_info),
                          PUT=json_do(update_instance_fields_with_validator,
                                      views.site_config_validator))

external_link = admin_route(GET=do(render_template('manage_treemap/link.html'),
                                   views.external_link),
                            PUT=json_do(views.update_external_link))

branding = admin_route(GET=do(render_template('manage_treemap/branding.html'),
                              views.branding),
                       PUT=json_do(update_instance_fields_with_validator,
예제 #8
0
파일: views.py 프로젝트: heath/OTM2
get_plot_eco_view = instance_request(etag(_map_feature_hash)(
    render_template('treemap/partials/plot_eco.html', plot_detail)))

get_map_feature_sidebar_view = instance_request(etag(_map_feature_hash)(
    render_template('treemap/partials/sidebar.html', plot_detail)))

map_feature_popup_view = instance_request(etag(_map_feature_hash)(
    render_template('treemap/partials/map_feature_popup.html',
                    map_feature_popup)))

plot_accordion_view = instance_request(
    render_template('treemap/plot_accordion.html', plot_detail))

add_map_feature_view = require_http_method("POST")(
    login_or_401(
        json_api_call(
            instance_request(
                creates_instance_user(add_map_feature)))))

root_settings_js_view = render_template('treemap/settings.js',
                                        {'BING_API_KEY':
                                         settings.BING_API_KEY},
                                        mimetype='application/javascript')

instance_settings_js_view = instance_request(
    render_template('treemap/settings.js',
                    {'BING_API_KEY': settings.BING_API_KEY},
                    mimetype='application/javascript'))

boundary_to_geojson_view = json_api_call(instance_request(boundary_to_geojson))
boundary_autocomplete_view = instance_request(
예제 #9
0
파일: __init__.py 프로젝트: gapb/OTM2
from treemap.views.tree import (add_tree_photo, tree_detail, delete_tree,
                                search_tree_benefits, search_hash)

from treemap.views.misc import (edits, get_map_view_context, static_page,
                                boundary_to_geojson, boundary_autocomplete,
                                species_list, compile_scss, index,
                                public_instances_geojson)

from treemap.views.map_feature import (
    render_map_feature_detail, render_map_feature_add,
    update_map_feature_detail, map_feature_detail, plot_detail,
    delete_map_feature, map_feature_popup, add_map_feature, map_feature_hash,
    rotate_map_feature_photo, add_map_feature_photo)

add_map_feature_photo_do = partial(
    do, require_http_method("POST"), login_or_401, instance_request,
    creates_instance_user,
    render_template('treemap/partials/photo_carousel.html'))

#####################################
# misc content views
#####################################

edits_view = do(instance_request, requires_feature('recent_edits_report'),
                render_template('treemap/edits.html'), edits)

index_view = instance_request(index)

map_view = do(instance_request, render_template('treemap/map.html'),
              get_map_view_context)
예제 #10
0
def _api_call(verb, view_fn):
    return do(admin_instance_request, require_http_method(verb), view_fn)
예제 #11
0
파일: __init__.py 프로젝트: atogle/OTM2
from treemap.views.map_feature import (render_map_feature_detail,
                                       render_map_feature_add,
                                       update_map_feature_detail,
                                       map_feature_detail,
                                       plot_detail,
                                       delete_map_feature,
                                       map_feature_popup,
                                       add_map_feature,
                                       map_feature_hash,
                                       rotate_map_feature_photo,
                                       add_map_feature_photo)


add_map_feature_photo_do = partial(
    do,
    require_http_method("POST"),
    login_or_401,
    instance_request,
    creates_instance_user,
    render_template('treemap/partials/photo_carousel.html'))

#####################################
# misc content views
#####################################

edits_view = do(
    instance_request,
    requires_feature('recent_edits_report'),
    render_template('treemap/edits.html'),
    edits)
예제 #12
0
                                      username_matches_request_user)

from treemap.decorators import (login_or_401, return_400_if_validation_errors,
                                require_http_method, requires_feature,
                                creates_instance_user, instance_request,
                                json_api_edit)

import treemap.views.user as user_views
import treemap.views.tree as tree_views
import treemap.views.misc as misc_views
import treemap.views.map_feature as feature_views


add_map_feature_photo_do = partial(
    do,
    require_http_method("POST"),
    login_or_401,
    instance_request,
    creates_instance_user,
    render_template('treemap/partials/photo_carousel.html'))

#####################################
# misc content views
#####################################

edits_page = do(
    instance_request,
    requires_feature('recent_edits_report'),
    render_template('treemap/edits.html'),
    misc_views.edits)
예제 #13
0
def unarchive(request, instance):
    return _set_prop_on_comments(request, instance, "is_archived", False)


@transaction.atomic
def hide(request, instance):
    return _set_prop_on_comments(request, instance, "is_removed", True)


@transaction.atomic
def show(request, instance):
    return _set_prop_on_comments(request, instance, "is_removed", False)


_admin_post_do = partial(
    do, require_http_method("POST"), admin_instance_request, render_template("otm_comments/partials/moderation.html")
)

_render_flagging_view = partial(
    do, require_http_method("POST"), instance_request, render_template("otm_comments/partials/flagging.html")
)

flag_endpoint = _render_flagging_view(flag)
unflag_endpoint = _render_flagging_view(unflag)
hide_flags_endpoint = _admin_post_do(hide_flags)
archive_endpoint = _admin_post_do(archive)
unarchive_endpoint = _admin_post_do(unarchive)
hide_endpoint = _admin_post_do(hide)
show_endpoint = _admin_post_do(show)

comments_csv_endpoint = do(
예제 #14
0
def unarchive(request, instance):
    return _set_prop_on_comments(request, instance, 'is_archived', False)


@transaction.atomic
def hide(request, instance):
    return _set_prop_on_comments(request, instance, 'is_removed', True)


@transaction.atomic
def show(request, instance):
    return _set_prop_on_comments(request, instance, 'is_removed', False)


_admin_post_do = partial(
    do, require_http_method("POST"), admin_instance_request,
    render_template("otm_comments/partials/moderation.html"))

_render_flagging_view = partial(
    do, require_http_method("POST"), instance_request,
    render_template("otm_comments/partials/flagging.html"))

flag_endpoint = _render_flagging_view(flag)
unflag_endpoint = _render_flagging_view(unflag)
hide_flags_endpoint = _admin_post_do(hide_flags)
archive_endpoint = _admin_post_do(archive)
unarchive_endpoint = _admin_post_do(unarchive)
hide_endpoint = _admin_post_do(hide)
show_endpoint = _admin_post_do(show)

comments_csv_endpoint = do(require_http_method("GET"), admin_instance_request,
예제 #15
0
def _api_call(verb, view_fn):
    return do(
        admin_instance_request,
        requires_feature('bulk_upload'),
        require_http_method(verb),
        view_fn)
예제 #16
0
파일: routes.py 프로젝트: gapb/OTM2
def _api_call(verb, view_fn):
    return do(
        admin_instance_request,
        requires_feature('bulk_upload'),
        require_http_method(verb),
        view_fn)
예제 #17
0
파일: views.py 프로젝트: lorenanicole/OTM2
@transaction.atomic
def unarchive(request, instance):
    return _set_prop_on_comments(request, instance, 'is_archived', False)


@transaction.atomic
def hide(request, instance):
    return _set_prop_on_comments(request, instance, 'is_removed', True)


@transaction.atomic
def show(request, instance):
    return _set_prop_on_comments(request, instance, 'is_removed', False)


_admin_post_do = partial(do, require_http_method("POST"),
                         admin_instance_request,
                         render_template(
                             "otm_comments/partials/moderation.html"))

_render_flagging_view = partial(
    do,
    require_http_method("POST"),
    instance_request,
    render_template("otm_comments/partials/flagging.html"))

flag_endpoint = _render_flagging_view(flag)
unflag_endpoint = _render_flagging_view(unflag)
hide_flags_endpoint = _admin_post_do(hide_flags)
archive_endpoint = _admin_post_do(archive)
unarchive_endpoint = _admin_post_do(unarchive)
예제 #18
0
파일: routes.py 프로젝트: nvh3010/otm-core
def _api_call(verb, view_fn):
    return do(admin_instance_request, require_http_method(verb), view_fn)
예제 #19
0
                                      string_to_response,
                                      username_matches_request_user)

from treemap.decorators import (login_or_401, return_400_if_validation_errors,
                                require_http_method, requires_feature,
                                creates_instance_user, instance_request,
                                admin_instance_request, json_api_edit)

import treemap.views.user as user_views
import treemap.views.photo as photo_views
import treemap.views.tree as tree_views
import treemap.views.misc as misc_views
import treemap.views.map_feature as feature_views

add_map_feature_photo_do = partial(
    do, require_http_method("POST"), login_or_401, instance_request,
    creates_instance_user,
    render_template('treemap/partials/photo_carousel.html'))

#####################################
# misc content views
#####################################

edits_page = do(instance_request, requires_feature('recent_edits_report'),
                render_template('treemap/edits.html'), misc_views.edits)

index_page = instance_request(misc_views.index)

map_page = do(instance_request, render_template('treemap/map.html'),
              misc_views.get_map_view_context)
예제 #20
0
from treemap.views.map_feature import (render_map_feature_detail,
                                       render_map_feature_add,
                                       update_map_feature_detail,
                                       map_feature_detail,
                                       plot_detail,
                                       delete_map_feature,
                                       map_feature_popup,
                                       add_map_feature,
                                       map_feature_hash,
                                       rotate_map_feature_photo,
                                       add_map_feature_photo)


add_map_feature_photo_do = partial(
    do,
    require_http_method("POST"),
    login_or_401,
    instance_request,
    creates_instance_user,
    render_template('treemap/partials/photo_carousel.html'))

#####################################
# misc content views
#####################################

edits_view = do(
    instance_request,
    requires_feature('recent_edits_report'),
    render_template('treemap/edits.html'),
    edits)