Exemplo n.º 1
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()
        })
Exemplo n.º 2
0
def send_order_to_manager(request, order_key):
    order = Order.get(order_key)

    gifts = []
    for gift in order.items:
        gifts.append(OrderItem.get(gift))

    subject = render_to_string('store/order2manager_subject.html', {'order_id':order.key().id()})
    subject = ''.join(subject.splitlines())
    message = render_to_string('store/order2manager_body.html', {'order': order, 'gifts':gifts})

    email = mail.EmailMessage()
    email.subject = subject
    email.html = message
    email.sender = settings.DEFAULT_MAIL_FROM

    try:
        if order.user and order.user.register_user and order.user.register_user.manager:
            email.to = order.user.register_user.manager.email
            email.send()
        else:
            managers = Manager.all()
            for manager in managers:
                email.to = manager.email
                email.send()
    except Exception:
        managers = Manager.all()
        for manager in managers:
            email.to = manager.email
            email.send()

    return Response("OK")
Exemplo n.º 3
0
def add_user(request):
    form = UserForm(initial={'password':gen_password(6)})
    if request.method == 'POST':
        if form.validate(request.form):
            user_name = request.form['user_name'].lower()
            new_user = create_new_user(user_name=user_name, password=request.form['password'])
            new_user.email=request.form['email']
            new_user.first_name = request.form['first_name']
            new_user.last_name = request.form['last_name']
            manager_key = request.form['manager']
            if manager_key:
                manager = Manager.get(manager_key)
                new_user.manager = manager
            try:
                new_user.newsletter_type = int(request.form['newsletter_type'])
            except:
                pass
            try:
                if request.form['activated'] == 'on':
                    new_user.activated = True
            except:
                new_user.activated = False
            try:
                if request.form['is_admin'] == 'on':
                    new_user.is_admin = True
            except:
                new_user.is_admin = False
            new_user.put()
            return redirect(url_for('admin/users'))

    return render_to_response('admin/add_user.html', {'form': form.as_widget()})
Exemplo n.º 4
0
def edit_manager(request, key):
    manager = Manager.get(key)
    form = ManagerForm(manager)
    if request.method == 'POST':
        if request.form and form.validate(request.form):
            manager = form.save()
            manager.put()
            return redirect(url_for('admin/managers'))
    photo_form = ManagerPhoto()
    return render_to_response('admin/edit_manager.html', {'manager':manager, 'form':form.as_widget(), 'photo_form':photo_form.as_widget()})
Exemplo n.º 5
0
def send_request_to_manager(request, request_key):
    req_request = RegistrationRequest.get(request_key)
    subject = render_to_string("auth5/request_2manager_subject.txt", {"id": req_request.key().id()})
    subject = "".join(subject.splitlines())
    message = render_to_string("auth5/request_2manager_body.txt", {"reg_request": req_request})
    if req_request.manager:
        mail.send_mail(subject=subject, body=message, sender=settings.DEFAULT_MAIL_FROM, to=req_request.manager.email)
    else:
        managers = Manager.all()
        for manager in managers:
            mail.send_mail(subject=subject, body=message, sender=settings.DEFAULT_MAIL_FROM, to=manager.email)
    return Response("OK")
Exemplo n.º 6
0
def preview2(request, key_id):
    newsletter = Newsletter2.get_by_id(key_id)
    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 = []
    for mgr_id in newsletter.managers:
        mgr = Manager.get_by_id(mgr_id)
        if mgr:
            managers.append(mgr)

    emails = newsletter.emails

    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/newsletters2/preview.html",
        {
            "newsletter": newsletter,
            "gifts": gifts,
            "key_id": key_id,
            "files": files,
            "managers": managers,
            "emails": emails,
        },
    )
Exemplo n.º 7
0
def add_manager_photo(request):
    if request.method == 'POST':
        manager_key = request.values.get('manager_key')
        manager = Manager.get(manager_key)
        if manager is None:
            return redirect('/admin/managers')

        new_th_form = ManagerPhoto()
        if request.form and new_th_form.validate(request.form, request.files):
            if manager.photo:
                thumb = ThumbImage.get(manager.photo)
                thumb.delete()
                manager.photo = None

            thumb = new_th_form['img']
            content_type = 'image/jpeg'
            thumb_img = ThumbImage()
            thumb_img.add_new_thumb(blob_img=thumb, thumb_size=(200, 200,), content_type=content_type)
            thumb_img.add_new_thumb(blob_img=thumb, thumb_size=(100, 100,), content_type=content_type)
            thumb_img.put()
            manager.photo = str(thumb_img.key())
            manager.put()
            return redirect('/admin/edit_manager/%s' % manager.key())
    return redirect('/admin/managers')
Exemplo n.º 8
0
def index(request):
    managers_networks = Manager.all().filter('is_network =', True)
    managers_direct_sale = Manager.all().filter('is_direct_sale =', True)
    managers_region_sale = Manager.all().filter('is_region_sale =', True)
    managers_collection = Manager.all().filter('is_collection =', True)
    manages_marketing = Manager.all().filter('is_marketing =', True)
    managers_it = Manager.all().filter('is_it =', True)
    presentation = AboutPage.all().get()
    if presentation:
        presentation = presentation.get_presentation_info()
    return render_to_response(
        'about/index.html',{
          'managers_networks': managers_networks,
          'managers_direct_sale': managers_direct_sale,
          'managers_region_sale': managers_region_sale,
          'managers_collection': managers_collection,
          'manages_marketing': manages_marketing,
          'managers_it': managers_it,
          'presentation': presentation
    })
Exemplo n.º 9
0
def get_managers():
    managers_list = Manager.all()
    managers = []
    for manager in managers_list:
        managers.append((int(manager.key().id()), unicode(manager)))
    return managers
Exemplo n.º 10
0
def send_newsletter_task2(request, email, newsletter_key_id):
    newsletter = Newsletter2.get_by_id(newsletter_key_id)

    managers = []
    for mgr_id in newsletter.managers:
        mgr = Manager.get_by_id(mgr_id)
        if mgr:
            managers.append(mgr)

    message = mail.EmailMessage(sender=settings.DEFAULT_MAIL_FROM, subject=newsletter.title)
    message.to = email
    if not message.to:
        return Response("Ok")
    mangers_emails = [manager.email for manager in managers]
    if mangers_emails:
        message.reply_to = ",".join(mangers_emails)

    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_newsletter2.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()))
    if attachments:
        message.attachments = attachments
    try:
        message.send()
    except apiproxy_errors.OverQuotaError:

        def txn():
            taskqueue.add(
                url=url_for("postman/send_newsletter_task2", email=email, newsletter_key_id=newsletter_key_id),
                transactional=True,
            )

        db.run_in_transaction(txn)
    return Response("OK")
Exemplo n.º 11
0
def delete_manager(request, key):
    manager = Manager.get(key)
    manager.delete()
    return redirect(url_for('admin/managers'))
Exemplo n.º 12
0
def managers(request):
    managers_objs = Manager.all()
    return render_to_response(
        'admin/managers.html', {'managers': managers_objs})
Exemplo n.º 13
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}
    )
Exemplo n.º 14
0
def managers(request):
  managers_objs = Manager.all()
  return render_json_response([to_dict(o) for o in managers_objs])
Exemplo n.º 15
0
def managers_list():
    managers = Manager.all()
    managers_ = [('', '-')]
    for manager in managers:
        managers_.append((manager.key(), manager))
    return managers_