Example #1
0
def confirm_request(request, key):
    req_user = RegistrationRequest().get(key)
    try:
        user_obj = UserProfile.create_inactive_user(user_name=string.lower(req_user.email), email=string.lower(req_user.email), password="******")
    except DuplicateKeyError:
        user_obj = UserProfile.all().filter('user_name =', string.lower(req_user.email)).get()
    user_obj.first_name = req_user.first_name
    user_obj.password = req_user.password
    user_obj.telephone = req_user.telephone
    user_obj.manager = req_user.manager
    user_obj.company_name = req_user.company
    user_obj.put()
    req_user.delete()
    return redirect(url_for('admin/reg_requests'))
Example #2
0
def preview_newsletter(request, key):
    newsletter = Newsletter.get(key)
    gifts = []
    if newsletter.gifts:
        gifts_split = newsletter.gifts.split(",")
        for gift in gifts_split:
            try:
                gift = gift.strip()
                obj = Gift.all().filter("uid =", gift).get()
                if obj:
                    gifts.append(obj)
            except Exception:
                pass
    managers = []
    users = UserProfile.all().filter("is_send_newsletter =", True).filter("email !=", None)
    if newsletter.type != 999:
        users = users.filter("newsletter_type =", newsletter.type)

    files = []
    for file_key in newsletter.n_price_list:
        file_ = File.get(file_key)
        if file_:
            files.append(file_)
    return render_to_response(
        "postman/admin/newsletters/preview.html",
        {"newsletter": newsletter, "gifts": gifts, "key": key, "files": files, "managers": managers, "users": users},
    )
Example #3
0
def user(request, key):
    user = UserProfile.get(key)
    form = UserForm()
    if request.method == 'POST':
        if form.validate(request.form):
            user.user_name = request.form['user_name']
            user.first_name = request.form['first_name']
            user.last_name = request.form['last_name']
            user.email = request.form['email']
            user.newsletter_type = int(request.form['newsletter_type'])
            manager_key = request.form['manager']
            if manager_key:
                manager = Manager.get(manager_key)
                user.manager = manager
            try:
                if request.form['activated'] == 'on':
                    user.activated = True
            except:
                user.activated = False
            try:
                if request.form['is_admin'] == 'on':
                    user.is_admin = True
            except:
                user.is_admin = False
            if request.form['password']:
                user.set_password(request.form['password'])
            else:
                user.put()
            return redirect(url_for('admin/users'))

    manager_ = None
    try:
        if user.manager:
            manager_ = user.manager
    except Exception:
        pass
    managers_ = list(Manager.all())
    if not manager_:
        managers = [('', '-')]
    else:
        managers = [('', manager_)]
    for manager in managers_:
        if manager_ is None or  manager.key() != manager_.key():
            managers.append((manager.key(), manager))
    form = UserForm(
        initial={
            'user_name': user.user_name,
            'activated': user.activated,
            'is_admin': user.is_admin,
            'email': user.email,
            'first_name': user.first_name,
            'last_name': user.last_name,
            'newsletter_type': user.newsletter_type
        })
    form.manager.choices = managers
    return render_to_response(
        'admin/user.html', {
            'user': user,
            'form': form.as_widget()
        })
Example #4
0
def users(request):
    users_ = UserProfile.all()
    users_list = []
    for user in users_:
        try:
            user.manager.last_name
        except Exception:
            user.manager = None
        users_list.append(user)
    return render_to_response('admin/users.html', {'users': users_list})
Example #5
0
def user_delete(request, key):
    try:
        user = UserProfile.get(key)
    except BadKeyError:
        return redirect('admin/users')
    if user:
        ord_usr = OrderingUser.all().filter('register_user ='******'user ='******'admin/users')
Example #6
0
def send_newsletter(request, key):
    letter = Newsletter.get(key)
    if letter.type == -1:
        return redirect("/admin/postman/newsletters/")
    users = UserProfile.all().filter("is_send_newsletter =", True)
    if letter.type != 999:
        users = users.filter("newsletter_type =", letter.type)
    for user in users:

        def txn():
            taskqueue.add(
                url=url_for("postman/send_newsletter_task", user_key=str(user.key()), newsletter_key=key),
                transactional=True,
            )

        db.run_in_transaction(txn)
    return redirect("/admin/postman/newsletters/")
Example #7
0
def send_newsletter_task(request, user_key, newsletter_key):
    newsletter = Newsletter.get(newsletter_key)
    managers = []
    message = mail.EmailMessage(sender=settings.DEFAULT_MAIL_FROM, subject=newsletter.title)
    user = UserProfile.get(user_key)
    message.to = user.email
    if not message.to:
        return Response("Ok")

    gifts = []
    gifts_images = {}
    if newsletter.gifts:
        gifts_split = newsletter.gifts.split(",")
        for gift in gifts_split:
            try:
                gift = gift.strip()
                obj = Gift.all().filter("uid =", gift).get()
                if obj:
                    gifts.append(obj)
                    if obj.main_thumb:
                        try:
                            img = ThumbImage.get(obj.main_thumb)
                            img = Image.get(img.thumb_200x200)
                            if img:
                                gifts_images[obj.uid] = base64.b64encode(str(img.image))
                        except Exception:
                            pass
            except Exception:
                pass

    message_text = render_to_string(
        "postman/send_newsletter.html",
        {"newsletter": newsletter, "gifts": gifts, "managers": managers, "gifts_images": gifts_images},
    )
    message.html = message_text
    attachments = []
    for file_key in newsletter.n_price_list:
        file_ = File.get(file_key)
        if file_ and file_.blob_key:
            bi = blobstore.BlobInfo.get(file_.blob_key)
            if bi:
                attachments.append(("%s" % file_.title_filename, bi.open().read()))
    message.attachments = attachments
    message.send()
    return Response("OK")
Example #8
0
def reg_request(request):
    form = RegistrationRequestForm()
    managers = Manager.all().filter("is_hidden =", False)
    if request.method == "POST":
        if form.validate(request.form):
            email = request.form["email"]
            user = UserProfile.all().filter("email =", email).count()
            if user:
                default_manager = request.form.get("manager")
                default_manager = Manager.get(default_manager).key()
                form.append_errors(
                    u"Этот email уже используется. \
                        Возможно Вы уже зарегистрировались.",
                    "email",
                )
                return render_to_response(
                    "auth5/reg_request.html",
                    {"form": form.as_widget(), "managers": managers, "default_manager": default_manager},
                )
            reg_reqs = RegistrationRequest.all().filter("email =", email).count()
            if reg_reqs:
                default_manager = request.form.get("manager")
                default_manager = Manager.get(default_manager).key()
                form.append_errors(
                    u"Этот email уже используется. \
                        Возможно Вы уже отправили заявку на регистрацию.",
                    "email",
                )
                return render_to_response(
                    "auth5/reg_request.html",
                    {"form": form.as_widget(), "managers": managers, "default_manager": default_manager},
                )

            def txn():
                reg_request_obj = RegistrationRequest(
                    first_name=request.form["first_name"],
                    email=request.form["email"],
                    telephone=request.form["telephone"],
                    company=request.form["company"],
                    password=crypto.gen_pwhash(request.form["password"]),
                    manager=db.Key(request.form.get("manager")),
                )
                reg_request_obj.put()
                taskqueue.add(
                    url=url_for("auth5/send_request_to_manager", request_key=str(reg_request_obj.key())),
                    transactional=True,
                )

            db.run_in_transaction(txn)
            return render_to_response("auth5/thanks.html")
    default_manager = None
    if request.form.get("manager"):
        default_manager = request.form.get("manager")
        default_manager = Manager.get(default_manager).key()
    else:
        def_mangers = Manager.all().filter("is_hidden =", False).filter("is_default", True)
        if def_mangers.count():
            default_manager = random.randrange(0, def_mangers.count())
            default_manager = def_mangers[default_manager].key()
        else:
            if managers.count():
                default_manager = random.randrange(0, managers.count())
                default_manager = managers[default_manager].key()
    return render_to_response(
        "auth5/reg_request.html", {"form": form.as_widget(), "managers": managers, "default_manager": default_manager}
    )
Example #9
0
def users(request):
  users_objs = UserProfile.all()
  return render_json_response([to_dict(o) for o in users_objs])