예제 #1
0
def category_json():
    key_id = param('id')
    if not key_id:
        raise ApiException('Invalid request: category "id" not found.')
    category = Category.retrieve_by_id(key_id)
    if not category:
        raise ApiException(
            'Invalid request: Category with "id" == %s not found' % key_id)
    id_1c = param('id_1c')
    if id_1c is not None:
        category._PROPERTIES = category._PROPERTIES.union(
            ['products_by_id_1c'])
        return jsonify_model_db(category)
    return jsonify_model_db(category)
예제 #2
0
def resource_update(resource_id):
    resource_db = model.Resource.get_by_id(resource_id)

    if not resource_db or resource_db.user_key != auth.current_user_key():
        return flask.abort(404)

    form = ResourceUpdateForm()

    if form.validate_on_submit():
        resource_db.name = form.name.data
        resource_db.put()
        return flask.redirect(
            flask.url_for(
                'resource_view',
                resource_id=resource_db.key.id(),
            ))
    if not form.errors:
        form.name.data = resource_db.name

    if flask.request.path.startswith('/_s/'):
        if form.errors:
            return flask.abort(400)
        return util.jsonify_model_db(resource_db)

    return flask.render_template(
        'resource/resource_update.html',
        html_class='resource-update',
        title='%s' % (resource_db.name),
        resource_db=resource_db,
        form=form,
    )
예제 #3
0
파일: main.py 프로젝트: g8824466/life-line
def profile():
  user_db = auth.current_user_db()
  form = ProfileUpdateForm(obj=user_db)

  if form.validate_on_submit():
    send_verification = not user_db.token or user_db.email != form.email.data
    form.populate_obj(user_db)
    if send_verification:
      user_db.verified = False
      task.verify_email_notification(user_db)
    user_db.put()
    return flask.redirect(flask.url_for(
        'set_locale', locale=user_db.locale, next=flask.url_for('welcome')
      ))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(user_db)

  return flask.render_template(
      'profile.html',
      title=user_db.name,
      html_class='profile',
      form=form,
      user_db=user_db,
      has_json=True,
    )
예제 #4
0
def profile():
  form = ProfileUpdateForm()
  user_db = auth.current_user_db()
  if form.validate_on_submit():
    user_db.name = form.name.data.strip()
    user_db.email = form.email.data.strip().lower()
    user_db.locale = form.locale.data.strip()
    user_db.put()
    return flask.redirect(flask.url_for(
        'set_locale', locale=user_db.locale, next=flask.url_for('welcome')
      ))

  if not form.errors:
    form.name.data = user_db.name
    form.email.data = user_db.email or ''
    form.locale.data = user_db.locale or auth.get_locale()

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(user_db)

  return flask.render_template(
      'profile.html',
      title=_('Profile'),
      html_class='profile',
      form=form,
      user_db=user_db,
    )
예제 #5
0
def profile():
    user_db = auth.current_user_db()
    form = ProfileUpdateForm(obj=user_db)

    if form.validate_on_submit():
        form.populate_obj(user_db)
        user_db.put()
        return flask.redirect(
            flask.url_for('set_locale',
                          locale=user_db.locale,
                          next=flask.url_for('welcome')))

        return flask.redirect(flask.url_for('welcome'))

    if flask.request.path.startswith('/_s/'):
        return util.jsonify_model_db(user_db)

    return flask.render_template(
        'profile.html',
        title=_('Profile'),
        html_class='profile',
        form=form,
        user_db=user_db,
        has_json=True,
    )
예제 #6
0
파일: admin.py 프로젝트: g8824466/life-line
def admin_config_update():
    config_db = model.Config.get_master_db()
    form = ConfigUpdateForm(obj=config_db)
    if form.validate_on_submit():
        form.populate_obj(config_db)
        if not config_db.flask_secret_key:
            config_db.flask_secret_key = util.uuid()
        config_db.put()
        reload(config)
        app.config.update(CONFIG_DB=config_db)
        return flask.redirect(flask.url_for("welcome"))

    if flask.request.path.startswith("/_s/"):
        return util.jsonify_model_db(config_db)

    instances_url = None
    if config.PRODUCTION:
        instances_url = "%s?app_id=%s&version_id=%s" % (
            "https://appengine.google.com/instances",
            app_identity.get_application_id(),
            config.CURRENT_VERSION_ID,
        )

    return flask.render_template(
        "admin/config_update.html",
        title=_("Admin Config"),
        html_class="admin-config",
        form=form,
        config_db=config_db,
        instances_url=instances_url,
        has_json=True,
    )
예제 #7
0
def profile():
  form = ProfileUpdateForm()
  user_db = auth.current_user_db()
  if form.validate_on_submit():
    user_db.name = form.name.data.strip()
    user_db.email = form.email.data.strip().lower()
    user_db.locale = form.locale.data.strip()
    user_db.put()
    return flask.redirect(flask.url_for(
        'set_locale', locale=user_db.locale, next=flask.url_for('welcome')
      ))

  if not form.errors:
    form.name.data = user_db.name
    form.email.data = user_db.email or ''
    form.locale.data = user_db.locale or auth.get_locale()

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(user_db)

  return flask.render_template(
      'profile.html',
      title=_('Profile'),
      html_class='profile',
      form=form,
      user_db=user_db,
    )
예제 #8
0
파일: user.py 프로젝트: michals/hurry-app
def user_update(user_id):
    user_db = model.User.get_by_id(user_id)
    if not user_db:
        flask.abort(404)

    form = UserUpdateForm(obj=user_db)
    if form.validate_on_submit():
        if not util.is_valid_username(form.username.data):
            form.username.errors.append('This username is invalid.')
        elif not is_username_available(form.username.data, user_db):
            form.username.errors.append('This username is taken.')
        else:
            form.populate_obj(user_db)
            if auth.current_user_id() == user_db.key.id():
                user_db.admin = True
                user_db.active = True
            user_db.put()
            return flask.redirect(flask.url_for('user_list',
                                                order='-modified'))

    if flask.request.path.startswith('/_s/'):
        return util.jsonify_model_db(user_db)

    return flask.render_template(
        'user/user_update.html',
        title=user_db.name,
        html_class='user-update',
        form=form,
        user_db=user_db,
    )
예제 #9
0
def admin_config_update():
  config_db = model.Config.get_master_db()
  form = ConfigUpdateForm(obj=config_db)
  if form.validate_on_submit():
    form.populate_obj(config_db)
    config_db.put()
    reload(config)
    app.config.update(CONFIG_DB=config_db)
    return flask.redirect(flask.url_for('welcome'))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(config_db)

  instances_url = None
  if config.PRODUCTION:
    instances_url = '%s?app_id=%s&version_id=%s' % (
        'https://appengine.google.com/instances',
        app_identity.get_application_id(),
        config.CURRENT_VERSION_ID,
      )

  return flask.render_template(
      'admin/config_update.html',
      title='Admin Config',
      html_class='admin-config',
      form=form,
      config_db=config_db,
      instances_url=instances_url,
      has_json=True,
    )
예제 #10
0
파일: user.py 프로젝트: gae-init/phonebook
def user_update(user_id):
  user_db = model.User.get_by_id(user_id)
  if not user_db:
    flask.abort(404)

  form = UserUpdateForm(obj=user_db)
  for permission in user_db.permissions:
    form.permissions.choices.append((permission, permission))
  form.permissions.choices = sorted(set(form.permissions.choices))
  if form.validate_on_submit():
    if not util.is_valid_username(form.username.data):
      form.username.errors.append('This username is invalid.')
    elif not model.User.is_username_available(form.username.data, user_db.key):
      form.username.errors.append('This username is already taken.')
    else:
      form.populate_obj(user_db)
      if auth.current_user_id() == user_db.key.id():
        user_db.admin = True
        user_db.active = True
      user_db.put()
      return flask.redirect(flask.url_for(
          'user_list', order='-modified', active=user_db.active,
        ))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(user_db)

  return flask.render_template(
      'user/user_update.html',
      title=user_db.name,
      html_class='user-update',
      form=form,
      user_db=user_db,
    )
예제 #11
0
def resource_update(resource_id):
  resource_db = model.Resource.get_by_id(resource_id)

  if not resource_db or resource_db.user_key != auth.current_user_key():
    return flask.abort(404)

  form = ResourceUpdateForm()

  if form.validate_on_submit():
    resource_db.name = form.name.data
    resource_db.put()
    return flask.redirect(flask.url_for(
        'resource_view', resource_id=resource_db.key.id(),
      ))
  if not form.errors:
    form.name.data = resource_db.name

  if flask.request.path.startswith('/_s/'):
    if form.errors:
      return flask.abort(400)
    return util.jsonify_model_db(resource_db)

  return flask.render_template(
      'resource/resource_update.html',
      html_class='resource-update',
      title='%s' % (resource_db.name),
      resource_db=resource_db,
      form=form,
      has_json=True,
    )
예제 #12
0
def profile():
  user_db = auth.current_user_db()
  form = ProfileUpdateForm(obj=user_db)

  if form.validate_on_submit():
    email = form.email.data
    if email and not user_db.is_email_available(email, user_db.key):
      form.email.errors.append('This email is already taken.')

    if not form.errors:
      send_verification = not user_db.token or user_db.email != email
      form.populate_obj(user_db)
      if send_verification:
        user_db.verified = False
        task.verify_email_notification(user_db)
      user_db.put()
      return flask.redirect(flask.url_for('welcome'))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(user_db)

  return flask.render_template(
      'profile.html',
      title=user_db.name,
      html_class='profile',
      form=form,
      user_db=user_db,
      has_json=True,
    )
예제 #13
0
def admin_config_update():
    config_db = model.Config.get_master_db()
    form = ConfigUpdateForm(obj=config_db)
    if form.validate_on_submit():
        form.populate_obj(config_db)
        if not config_db.flask_secret_key:
            config_db.flask_secret_key = util.uuid()
        config_db.put()
        reload(config)
        app.config.update(CONFIG_DB=config_db)
        return flask.redirect(flask.url_for('welcome'))

    if flask.request.path.startswith('/_s/'):
        return util.jsonify_model_db(config_db)

    instances_url = None
    if config.PRODUCTION:
        instances_url = '%s?app_id=%s&version_id=%s' % (
            'https://appengine.google.com/instances',
            app_identity.get_application_id(),
            config.CURRENT_VERSION_ID,
        )

    return flask.render_template(
        'admin/config_update.html',
        title='Admin Config',
        html_class='admin-config',
        form=form,
        config_db=config_db,
        instances_url=instances_url,
        has_json=True,
    )
예제 #14
0
파일: views.py 프로젝트: gmist/3dhero.ru
def get_product(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return jsonify({"success": False, "msg": "Product with id:%s not found." % key_id})

    if request.method == "DELETE":

        @check_write_permission
        def delete_product():
            product.key.delete()
            return jsonify({"success": True, "msg": "Product id:%s deleted" % key_id})

        return delete_product()

    if request.method == "PUT":

        @check_write_permission
        def put_product():
            flag, model = load_data()
            if not flag:
                return model
            if model_populate(model, product) or param("force_save"):
                product.put()
                return jsonify({"success": True, "msg": "Product has been updated."})
            else:
                return jsonify({"success": False, "msg": "Product has not been updated."})

        return put_product()
    return jsonify_model_db(product)
예제 #15
0
def resource_delete(resource_id):
    resource_db = model.Resource.get_by_id(resource_id)

    if not resource_db or resource_db.user_key != auth.current_user_key():
        return flask.abort(404)

    blobstore.BlobInfo.get(resource_db.blob_key).delete()
    resource_db.key.delete()

    return util.jsonify_model_db(resource_db)
예제 #16
0
def get_post_json(key_id):
    if not key_id:
        raise ApiException('Invalid request: "id" parameter not found.')

    product = None
    if key_id:
        product = Post.retrieve_by_id(key_id)
    if not product and key_id:
        raise ApiException('Post with "%s" == %s not found' % ('id', key_id), status=404)
    return jsonify_model_db(product)
예제 #17
0
def resource_delete(resource_id):
  resource_db = model.Resource.get_by_id(resource_id)

  if not resource_db or resource_db.user_key != auth.current_user_key():
    return flask.abort(404)

  blobstore.BlobInfo.get(resource_db.blob_key).delete()
  resource_db.key.delete()

  return util.jsonify_model_db(resource_db)
예제 #18
0
def profile():
  user_db = auth.current_user_db()

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(user_db)

  return flask.render_template(
      'profile/profile.html',
      title=user_db.name,
      html_class='profile-view',
      user_db=user_db,
      has_json=True,
    )
예제 #19
0
def profile():
  next_url = util.get_next_url()
  customer_fields_require = False
  user_db = current_user_db()
  form = ProfileUpdateForm(obj=user_db)
  if form.validate_on_submit():
    form.populate_obj(user_db)
    user_db.put()
    if not 'customer_require' in flask.request.form:
      flask.flash(u'Профиль успешно обновлен')
      return flask.redirect(flask.url_for('pages.index'))
    else:
      if not form.email.data or not form.company.data:
        if not form.email.data:
            form.email.errors.append(u'Это поле обязательно для заполнения')
        if not form.company.data:
            form.company.errors.append(u'Это поле обязательно для заполнения')
        customer_fields_require = True
      else:
        msg = u'Профиль успешно обновлен, '
        request = PartnerRequest.query(PartnerRequest.customer == user_db.key)
        if request.count():
            msg += u'Вы уже делали запрос на сотрудничество, запрос '
            request = request.get()
            if request.status == REQUEST_STATUS['now']:
                msg += u'еще не рассмотрен'
            elif request.status == REQUEST_STATUS['accept']:
                msg += u'одобрен'
            elif request.status == REQUEST_STATUS['admin']:
                msg += u'одобрен и Вам были даны права администратора'
            else:
                msg += u'отклонен'
        else:
            msg += u'в ближайшее время с Вами свяжется наш менеджер'
            request = PartnerRequest(customer = user_db.key)
            request.put()
        flask.flash(msg)
        return flask.redirect(flask.url_for('pages.index'))

  if flask.request.path.startswith('/_json/'):
    return util.jsonify_model_db(user_db)

  return flask.render_template(
      'auth/profile.html',
      title='Profile',
      html_class='profile',
      form=form,
      user_db=user_db,
      customer_fields_require = customer_fields_require,
      next_url = next_url
    )
예제 #20
0
def profile():
    next_url = util.get_next_url()
    customer_fields_require = False
    user_db = current_user_db()
    form = ProfileUpdateForm(obj=user_db)
    if form.validate_on_submit():
        form.populate_obj(user_db)
        user_db.put()
        if not "customer_require" in flask.request.form:
            flask.flash(u"Профиль успешно обновлен")
            return flask.redirect(flask.url_for("pages.index"))
        else:
            if not form.email.data or not form.company.data:
                if not form.email.data:
                    form.email.errors.append(u"Это поле обязательно для заполнения")
                if not form.company.data:
                    form.company.errors.append(u"Это поле обязательно для заполнения")
                customer_fields_require = True
            else:
                msg = u"Профиль успешно обновлен, "
                request = PartnerRequest.query(PartnerRequest.customer == user_db.key)
                if request.count():
                    msg += u"Вы уже делали запрос на сотрудничество, запрос "
                    request = request.get()
                    if request.status == REQUEST_STATUS["now"]:
                        msg += u"еще не рассмотрен"
                    elif request.status == REQUEST_STATUS["accept"]:
                        msg += u"одобрен"
                    elif request.status == REQUEST_STATUS["admin"]:
                        msg += u"одобрен и Вам были даны права администратора"
                    else:
                        msg += u"отклонен"
                else:
                    msg += u"в ближайшее время с Вами свяжется наш менеджер"
                    request = PartnerRequest(customer=user_db.key)
                    request.put()
                flask.flash(msg)
                return flask.redirect(flask.url_for("pages.index"))

    if flask.request.path.startswith("/_json/"):
        return util.jsonify_model_db(user_db)

    return flask.render_template(
        "auth/profile.html",
        title="Profile",
        html_class="profile",
        form=form,
        user_db=user_db,
        customer_fields_require=customer_fields_require,
        next_url=next_url,
    )
예제 #21
0
파일: main.py 프로젝트: JackNova/gae-init
def profile():
    user_db = auth.current_user_db()
    form = ProfileUpdateForm(obj=user_db)

    if form.validate_on_submit():
        form.populate_obj(user_db)
        user_db.put()
        return flask.redirect(flask.url_for("welcome"))

    if flask.request.path.startswith("/_s/"):
        return util.jsonify_model_db(user_db)

    return flask.render_template(
        "profile.html", title=user_db.name, html_class="profile", form=form, user_db=user_db, has_json=True
    )
예제 #22
0
def resource_view(resource_id):
    resource_db = model.Resource.get_by_id(resource_id)

    if not resource_db or resource_db.user_key != auth.current_user_key():
        return flask.abort(404)

    if flask.request.path.startswith('/_s/'):
        return util.jsonify_model_db(resource_db)

    return flask.render_template(
        'resource/resource_view.html',
        html_class='resource-view',
        title='%s' % (resource_db.name),
        resource_db=resource_db,
    )
예제 #23
0
def resource_view(resource_id):
  resource_db = model.Resource.get_by_id(resource_id)

  if not resource_db or resource_db.user_key != auth.current_user_key():
    return flask.abort(404)

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(resource_db)

  return flask.render_template(
      'resource/resource_view.html',
      html_class='resource-view',
      title='%s' % (resource_db.name),
      resource_db=resource_db,
    )
예제 #24
0
def resource_upload():
    if flask.request.method == 'GET':
        gs_bucket_name = config.CONFIG_DB.bucket_name or None
        count = util.param('count', int) or 1

        if flask.request.path.startswith('/_s/'):
            urls = []
            for _ in range(count):
                urls.append({
                    'upload_url':
                    blobstore.create_upload_url(
                        flask.request.path,
                        gs_bucket_name=gs_bucket_name,
                    )
                })
            return flask.jsonify({
                'status': 'success',
                'count': count,
                'result': urls,
            })

        return flask.render_template(
            'resource/resource_upload.html',
            title='Resource Upload',
            html_class='resource-upload',
            get_upload_url=flask.url_for('resource_upload_service'),
            upload_url=blobstore.create_upload_url(
                flask.request.path,
                gs_bucket_name=gs_bucket_name,
            ),
        )

    # POST stuff
    resource_db = resource_db_from_upload()

    if flask.request.path.startswith('/_s/'):
        if resource_db:
            return util.jsonify_model_db(resource_db)
        else:
            flask.abort(500)

    if resource_db:
        return flask.redirect(flask.url_for('welcome'))
    else:
        flask.flash(
            'Something went wrong with the uploading.. please try again!',
            category='danger')
        return flask.redirect(flask.url_for('resource_upload'))
예제 #25
0
파일: main.py 프로젝트: handol/gae-init
def profile():
    form = ProfileUpdateForm()
    user_db = auth.current_user_db()
    if form.validate_on_submit():
        user_db.name = form.name.data.strip()
        user_db.email = form.email.data.strip().lower()
        user_db.put()
        return flask.redirect(flask.url_for("welcome"))
    if not form.errors:
        form.name.data = user_db.name
        form.email.data = user_db.email or ""

    if flask.request.path.startswith("/_s/"):
        return util.jsonify_model_db(user_db)

    return flask.render_template("profile.html", title="Profile", html_class="profile", form=form, user_db=user_db)
예제 #26
0
def admin_config_update():
  form = ConfigUpdateForm()

  config_db = model.Config.get_master_db()
  if form.validate_on_submit():
    config_db.analytics_id = form.analytics_id.data.strip()
    config_db.announcement_html = form.announcement_html.data.strip()
    config_db.announcement_type = form.announcement_type.data.strip()
    config_db.brand_name = form.brand_name.data.strip()
    config_db.bucket_name = form.bucket_name.data.strip()
    config_db.facebook_app_id = form.facebook_app_id.data.strip()
    config_db.facebook_app_secret = form.facebook_app_secret.data.strip()
    config_db.feedback_email = form.feedback_email.data.strip()
    config_db.flask_secret_key = form.flask_secret_key.data.strip()
    config_db.locale = form.locale.data.strip()
    config_db.twitter_consumer_key = form.twitter_consumer_key.data.strip()
    config_db.twitter_consumer_secret = form.twitter_consumer_secret.data.strip()
    config_db.put()
    reload(config)
    app.config.update(CONFIG_DB=config_db)
    return flask.redirect(flask.url_for('welcome'))
  if not form.errors:
    form.analytics_id.data = config_db.analytics_id
    form.announcement_html.data = config_db.announcement_html
    form.announcement_type.data = config_db.announcement_type
    form.brand_name.data = config_db.brand_name
    form.bucket_name.data = config_db.bucket_name
    form.facebook_app_id.data = config_db.facebook_app_id
    form.facebook_app_secret.data = config_db.facebook_app_secret
    form.feedback_email.data = config_db.feedback_email
    form.flask_secret_key.data = config_db.flask_secret_key
    form.locale.data = config_db.locale
    form.twitter_consumer_key.data = config_db.twitter_consumer_key
    form.twitter_consumer_secret.data = config_db.twitter_consumer_secret

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(config_db)

  return flask.render_template(
      'admin/config_update.html',
      title=_('Admin Config'),
      html_class='admin-config',
      form=form,
      config_db=config_db,
    )
예제 #27
0
def config_update():
    config_db = model.Config.get_master_db()
    form = ConfigUpdateForm(obj=config_db)
    if form.validate_on_submit():
        form.populate_obj(config_db)
        config_db.put()
        update_config_variables(config_db)
        flask.flash('Your Config settings have been saved', category='success')
        return flask.redirect(flask.url_for('admin.config_update'))
    if flask.request.path.startswith('/_json/'):
        return util.jsonify_model_db(config_db)
    return flask.render_template(
        'admin/config_update.html',
        title=u'Общие настройки',
        html_class='admin-config',
        form=form,
        config_db=config_db,
    )
예제 #28
0
def resource_upload():
  if flask.request.method == 'GET':
    gs_bucket_name = config.CONFIG_DB.bucket_name or None
    count = util.param('count', int) or 1

    if flask.request.path.startswith('/_s/'):
      urls = []
      for i in range(count):
        urls.append({'upload_url': blobstore.create_upload_url(
            flask.request.path,
            gs_bucket_name=gs_bucket_name,
          )})
      return flask.jsonify({
          'status': 'success',
          'count': count,
          'result': urls,
        })

    return flask.render_template(
        'resource/resource_upload.html',
        title='Resource Upload',
        html_class='resource-upload',
        get_upload_url=flask.url_for('resource_upload_service'),
        has_json=True,
        upload_url=blobstore.create_upload_url(
            flask.request.path,
            gs_bucket_name=gs_bucket_name,
          ),
      )

  # POST stuff
  resource_db = resource_db_from_upload()

  if flask.request.path.startswith('/_s/'):
    if resource_db:
      return util.jsonify_model_db(resource_db)
    else:
      flask.abort(500)

  if resource_db:
    return flask.redirect(flask.url_for('welcome'))
  else:
    flask.flash('Something went wrong with the uploading.. please try again!', category='danger')
    return flask.redirect(flask.url_for('resource_upload'))
예제 #29
0
파일: main.py 프로젝트: smitson/gae-init
def profile():
  user_db = auth.current_user_db()
  form = ProfileUpdateForm(obj=user_db)

  if form.validate_on_submit():
    form.populate_obj(user_db)
    user_db.put()
    return flask.redirect(flask.url_for('welcome'))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(user_db)

  return flask.render_template(
      'profile.html',
      title='Profile',
      html_class='profile',
      form=form,
      user_db=user_db,
    )
예제 #30
0
파일: admin.py 프로젝트: joernhees/gae-init
def admin_auth():
  config_db = model.Config.get_master_db()
  form = AuthUpdateForm(obj=config_db)
  if form.validate_on_submit():
    form.populate_obj(config_db)
    config_db.put()
    reload(config)
    app.config.update(CONFIG_DB=config_db)
    return flask.redirect(flask.url_for('admin'))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(config_db)

  return flask.render_template(
      'admin/admin_auth.html',
      title='Auth Config',
      html_class='admin-auth',
      form=form,
      has_json=True,
    )
예제 #31
0
def admin_auth():
  config_db = model.Config.get_master_db()
  form = AuthUpdateForm(obj=config_db)
  if form.validate_on_submit():
    form.populate_obj(config_db)
    config_db.put()
    reload(config)
    app.config.update(CONFIG_DB=config_db)
    return flask.redirect(flask.url_for('admin'))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(config_db)

  return flask.render_template(
      'admin/admin_auth.html',
      title='Auth Config',
      html_class='admin-auth',
      form=form,
      has_json=True,
    )
예제 #32
0
def admin_config_update():
  config_db = model.Config.get_master_db()
  form = ConfigUpdateForm(obj=config_db)
  if form.validate_on_submit():
    form.populate_obj(config_db)
    config_db.put()
    reload(config)
    app.config.update(CONFIG_DB=config_db)
    return flask.redirect(flask.url_for('welcome'))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(config_db)

  return flask.render_template(
      'admin/config_update.html',
      title='Admin Config',
      html_class='admin-config',
      form=form,
      config_db=config_db,
    )
예제 #33
0
def user_update(user_id=0):
    if user_id:
        user_db = model.User.get_by_id(user_id)
    else:
        user_db = model.User(name='', username='')
    if not user_db:
        flask.abort(404)

    form = UserUpdateForm(obj=user_db)
    for permission in user_db.permissions:
        form.permissions.choices.append((permission, permission))
    form.permissions.choices = sorted(set(form.permissions.choices))
    if form.validate_on_submit():
        if not util.is_valid_username(form.username.data):
            form.username.errors.append('This username is invalid.')
        elif not model.User.is_username_available(form.username.data,
                                                  user_db.key):
            form.username.errors.append('This username is already taken.')
        else:
            form.populate_obj(user_db)
            if auth.current_user_key() == user_db.key:
                user_db.admin = True
                user_db.active = True
            user_db.put()
            return flask.redirect(
                flask.url_for(
                    'user_list',
                    order='-modified',
                    active=user_db.active,
                ))

    if flask.request.path.startswith('/_s/'):
        return util.jsonify_model_db(user_db)

    return flask.render_template(
        'user/user_update.html',
        title=user_db.name or 'New User',
        html_class='user-update',
        form=form,
        user_db=user_db,
    )
예제 #34
0
파일: views.py 프로젝트: minimedj/3dhero.ru
def get_product(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return jsonify({
            'success': False,
            'msg': 'Product with id:%s not found.' % key_id
        })

    if request.method == 'DELETE':

        @check_write_permission
        def delete_product():
            product.key.delete()
            return jsonify({
                'success': True,
                'msg': 'Product id:%s deleted' % key_id
            })

        return delete_product()

    if request.method == 'PUT':

        @check_write_permission
        def put_product():
            flag, model = load_data()
            if not flag:
                return model
            if model_populate(model, product) or param('force_save'):
                product.put()
                return jsonify({
                    'success': True,
                    'msg': 'Product has been updated.'
                })
            else:
                return jsonify({
                    'success': False,
                    'msg': 'Product has not been updated.'
                })

        return put_product()
    return jsonify_model_db(product)
예제 #35
0
파일: main.py 프로젝트: gmist/solostyle
def profile():
  form = ProfileUpdateForm()
  user_db = auth.current_user_db()
  if form.validate_on_submit():
    user_db.name = form.name.data
    user_db.email = form.email.data.lower()
    user_db.put()
    return flask.redirect(flask.url_for('main_page.index'))
  if not form.errors:
    form.name.data = user_db.name
    form.email.data = user_db.email or ''

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(user_db)

  return flask.render_template(
      'profile.html',
      title='Profile',
      html_class='profile',
      form=form,
      user_db=user_db,
    )
예제 #36
0
파일: main.py 프로젝트: tkstman/project4
def profile():
  user_db = auth.current_user_db()
  form = ProfileUpdateForm(obj=user_db)

  if form.validate_on_submit():
    form.populate_obj(user_db)
    user_db.put()
    return flask.flash('New contact was successfully created!', category='success')
    return flask.redirect(flask.url_for('contact_list', order='-created'))
    #return flask.redirect(flask.url_for('welcome'))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(user_db)

  return flask.render_template(
      'profile.html',
      title=user_db.name,
      html_class='profile',
      form=form,
      user_db=user_db,
      has_json=True,
    )
예제 #37
0
def admin_config_update():
  form = ConfigUpdateForm()

  config_db = model.Config.get_master_db()
  if form.validate_on_submit():
    config_db.analytics_id = form.analytics_id.data
    config_db.brand_name = form.brand_name.data
    config_db.facebook_app_id = form.facebook_app_id.data
    config_db.facebook_app_secret = form.facebook_app_secret.data
    config_db.feedback_email = form.feedback_email.data
    config_db.flask_secret_key = form.flask_secret_key.data
    config_db.twitter_consumer_key = form.twitter_consumer_key.data
    config_db.twitter_consumer_secret = form.twitter_consumer_secret.data
    config_db.put()
    reload(config)
    app.config.update(CONFIG_DB=config_db)
    flask.flash('Your config settings have been saved', category='success')
    return flask.redirect(flask.url_for('welcome'))
  if not form.errors:
    form.analytics_id.data = config_db.analytics_id
    form.brand_name.data = config_db.brand_name
    form.facebook_app_id.data = config_db.facebook_app_id
    form.facebook_app_secret.data = config_db.facebook_app_secret
    form.feedback_email.data = config_db.feedback_email
    form.flask_secret_key.data = config_db.flask_secret_key
    form.twitter_consumer_key.data = config_db.twitter_consumer_key
    form.twitter_consumer_secret.data = config_db.twitter_consumer_secret

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(config_db)

  return flask.render_template(
      'admin/config_update.html',
      title='Admin Config',
      html_class='admin-config',
      form=form,
      config_db=config_db,
    )
예제 #38
0
파일: main.py 프로젝트: tkstman/project4
def profile():
    user_db = auth.current_user_db()
    form = ProfileUpdateForm(obj=user_db)

    if form.validate_on_submit():
        form.populate_obj(user_db)
        user_db.put()
        return flask.flash('New contact was successfully created!',
                           category='success')
        return flask.redirect(flask.url_for('contact_list', order='-created'))
        #return flask.redirect(flask.url_for('welcome'))

    if flask.request.path.startswith('/_s/'):
        return util.jsonify_model_db(user_db)

    return flask.render_template(
        'profile.html',
        title=user_db.name,
        html_class='profile',
        form=form,
        user_db=user_db,
        has_json=True,
    )
예제 #39
0
def product_json():
    key_id = param('id')
    id_1c = param('id_1c')
    if not key_id and not id_1c:
        raise ApiException(
            'Invalid request: "id" or "id_1c" params not found.')
    if key_id is not None and id_1c is not None:
        raise ApiException('Invalid request: "id" and "id_1c" together.')

    product = None
    if key_id:
        product = Product.retrieve_by_id(key_id)
    if id_1c:
        product = Product.query(Product.id_1c == id_1c).get()
    if not product:
        if key_id:
            raise ApiException('Product with "%s" == %s not found' %
                               ('id', key_id),
                               status=404)
        raise ApiException('Product with "%s" == %s not found' %
                           ('id_1c', id_1c),
                           status=404)
    return jsonify_model_db(product)
예제 #40
0
def admin_config():
  config_db = model.Config.get_master_db()
  form = ConfigUpdateForm(obj=config_db)
  if form.validate_on_submit():
    form.populate_obj(config_db)
    if not config_db.flask_secret_key:
      config_db.flask_secret_key = util.uuid()
    if not config_db.salt:
      config_db.salt = util.uuid()
    config_db.put()
    reload(config)
    app.config.update(CONFIG_DB=config_db)
    return flask.redirect(flask.url_for('admin'))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(config_db)

  return flask.render_template(
      'admin/admin_config.html',
      title='App Config',
      html_class='admin-config',
      form=form,
      has_json=True,
    )
예제 #41
0
파일: admin.py 프로젝트: joernhees/gae-init
def admin_config():
  config_db = model.Config.get_master_db()
  form = ConfigUpdateForm(obj=config_db)
  if form.validate_on_submit():
    form.populate_obj(config_db)
    if not config_db.flask_secret_key:
      config_db.flask_secret_key = util.uuid()
    if not config_db.salt:
      config_db.salt = util.uuid()
    config_db.put()
    reload(config)
    app.config.update(CONFIG_DB=config_db)
    return flask.redirect(flask.url_for('admin'))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(config_db)

  return flask.render_template(
      'admin/admin_config.html',
      title='App Config',
      html_class='admin-config',
      form=form,
      has_json=True,
    )