Ejemplo n.º 1
0
def step_impl(context, user, product_name):
    p = Product.objects.get(name=product_name)

    product = json.loads(context.text)

    data = {}
    data['product_id'] = p.id
    data['name'] = product['name']
    data['price'] = product['price']
    data['footer'] = product['footer']
    data['remark'] = product['remark']
    data['max_mall_product_count'] = '10000'

    market_tools = product['market_tools']
    for tool_module in ToolModule.all_tool_modules():
        if tool_module.settings.TOOL_NAME in market_tools:
            model_value = 'market_tool_%s' % (tool_module.module_name)
            data[model_value] = tool_module.module_name
    data['webapp_1'] = "1"
    data['webapp_2'] = "2"
    data['webapp_3'] = "3"
    data['webapp_4'] = "4"

    url = '/product/product/add/'
    context.client.post(url, data)
Ejemplo n.º 2
0
def get_second_navs_bak(request):
    #add by robert: 禁用缓存
    #if NAV.has_key('navs'):
    #	return [NAV]

    user_market_tool_modules = request.user.market_tool_modules
    NAV['navs'] = []
    for tool_module in ToolModule.all_tool_modules():
        if not tool_module.module_name in user_market_tool_modules:
            #无权限,跳过
            continue

        if tool_module.module_name in TOOLS_ORDERING:
            order_index = TOOLS_ORDERING[tool_module.module_name]
        else:
            order_index = 100

        NAV['navs'].append({
            'name': tool_module.module_name,
            'url': '/market_tools/%s/' % tool_module.module_name,
            'title': tool_module.settings.TOOL_NAME,
            'order_index': order_index
        })

    NAV['navs'] = sorted(NAV['navs'],
                         reverse=False,
                         key=lambda n: n['order_index'])  #排序

    return [NAV]
Ejemplo n.º 3
0
def get_second_navs(request):
    #add by robert: 禁用缓存
    #if NAV.has_key('navs'):
    #	return [NAV]

    user_market_tool_modules = request.user.market_tool_modules
    NAV['navs'] = []

    path = request.META['PATH_INFO']
    module_name = path.split('/')[-2]
    for tool_module in ToolModule.all_tool_modules():
        if module_name == tool_module.module_name:
            NAV['navs'].append({
                'name': tool_module.module_name,
                'url': '/market_tools/%s/' % tool_module.module_name,
                'title': tool_module.settings.TOOL_NAME
            })

    NAV['navs'].append({
        'name': 'old_apps',
        'url': '/old_apps/',
        'title': u'<i class="icon icon-arrow-left"></i>返回旧百宝箱'
    })

    return [NAV]
Ejemplo n.º 4
0
def step_impl(context, user, product_name):
    expected = json.loads(context.text)

    product = Product.objects.get(name=product_name)
    actual = {}
    actual['name'] = product.name
    actual['price'] = product.price
    actual['footer'] = product.footer

    market_tool_modules = product.market_tool_modules.split(',')
    market_tool_module_values = []
    for tool_module in ToolModule.all_tool_modules():
        if tool_module.module_name in market_tool_modules:
            market_tool_module_values.append(tool_module.settings.TOOL_NAME)
    actual['market_tools'] = market_tool_module_values
    actual['remark'] = product.remark
    bdd_util.assert_dict(expected, actual)
Ejemplo n.º 5
0
def get_market_tool_webapp_usage_links(webapp_owner_id, member=None):
    if webapp_owner_id <= 0:
        return []

    #使用每个营销工具中的export.get_webapp_usage_link获得信息
    all_market_tool_webapp_usage_links = []

    user_market_tool_modules = get_market_tool_modules_for_user_id(
        webapp_owner_id)

    # by liupeiyu
    # 是否有微众卡权限,如果有,在个人中心中添加“微众卡余额查询”
    if weizoom_card_module_api.is_weizoom_card_use_permission_by_owner_id(
            webapp_owner_id):
        user_market_tool_modules.update([u'weizoom_card'])

    for tool_module in ToolModule.all_tool_modules():
        try:
            tool_module_export = tool_module.export
        except:
            continue

        if not tool_module.module_name in user_market_tool_modules:
            #无权限,跳过
            continue

        if tool_module.module_name in [
                'shake', 'lottery', 'activity', 'vote', 'point_card'
        ]:
            continue

        if tool_module_export and hasattr(tool_module_export,
                                          'get_webapp_usage_link'):
            link_info = tool_module_export.get_webapp_usage_link(
                webapp_owner_id, member)
            link_info['en_name'] = tool_module.module_name
            #个人中心微众卡包二级展示名称
            if 'second_name' not in link_info:
                link_info['second_name'] = link_info['name']
            all_market_tool_webapp_usage_links.append(link_info)

    all_market_tool_webapp_usage_links.sort(
        key=lambda obj: len(obj.get('name')), reverse=False)

    return all_market_tool_webapp_usage_links
Ejemplo n.º 6
0
    def handle(self, **options):
        admin = User.objects.get(username='******')
        apps = []
        for tool_module in ToolModule.all_tool_modules():
            if tool_module.module_name in TOOLS_ORDERING:
                order_index = TOOLS_ORDERING[tool_module.module_name]
            else:
                order_index = 100
            apps.append({
                "name": tool_module.module_name,
                "url": '/market_tools/%s/' % tool_module.module_name,
                "display_name": tool_module.settings.TOOL_NAME,
                "order_index": order_index
            })

        apps.sort(lambda x, y: cmp(x['order_index'], y['order_index']))
        for app in apps:
            app_name = 'markettool:%s' % app['name']
            app_display_name = app['display_name']
            app_url = app['url']
            if CustomizedApp.objects.filter(name=app_name).count() == 0:
                logging.info(u'create app {}'.format(app_display_name))
                app = CustomizedApp.objects.create(
                    owner=admin,
                    name=app_name,
                    display_name=app_display_name,
                    status=CustomizedappStatus.MARKETTOOL,
                    last_version=-1,
                    updated_time=datetime.today())

                CustomizedAppInfo.objects.create(owner=admin,
                                                 customized_app=app,
                                                 app_name=app_display_name,
                                                 remark_name='markettool',
                                                 repository_path=app_url,
                                                 repository_username='',
                                                 repository_passwd='')
            else:
                logging.info(u'ignore app {}'.format(app_display_name))
Ejemplo n.º 7
0
def show_products(request):
    products = Product.objects.all()

    id2webapp = dict([
        (workspace.id, workspace.name)
        for workspace in Workspace.objects.filter(owner=request.user)
    ])
    name2markettool = dict([(module.module_name, module.settings.TOOL_NAME)
                            for module in ToolModule.all_tool_modules()])

    product2usercount = {}
    for relation in UserHasProduct.objects.all():
        product_id = relation.product_id
        if product_id in product2usercount:
            product2usercount[product_id] = product2usercount[product_id] + 1
        else:
            product2usercount[product_id] = 1

    for product in products:
        product.webapp_modules = [
            id2webapp[int(id)] for id in product.webapp_modules.split(',')
            if id
        ]
        product.market_tool_modules = [
            name2markettool[name]
            for name in product.market_tool_modules.split(',') if name
        ]
        product.user_count = product2usercount.get(product.id, 0)

    c = RequestContext(
        request, {
            'first_nav_name': FIRST_NAV_NAME,
            'second_navs': None,
            'products': products
        })
    return render_to_response('product/products.html', c)
Ejemplo n.º 8
0
# -*- coding: utf-8 -*-

__author__ = 'chuter'

from django.conf.urls import *
from django.core.urlresolvers import (RegexURLPattern, RegexURLResolver)

import views
import api_views

urlpatterns = patterns(
    '',
    (r'^$', views.show_dashboard),
    #(r'^api/', api_views.call_api),
)

from market_tools import ToolModule

for tool_module in ToolModule.all_tool_modules():
    if not hasattr(tool_module.urls, 'urlpatterns'):
        continue

    regex = r'^' + tool_module.module_name + r'/'
    urlpatterns.append(
        RegexURLResolver(regex, tool_module.urls.urlpatterns, None, None,
                         None))
Ejemplo n.º 9
0
def add_product(request):
    if request.POST:
        webapp_modules = ','.join([
            request.POST[name] for name in request.POST
            if name.startswith('webapp_')
        ])
        market_tool_modules = ','.join([
            request.POST[name] for name in request.POST
            if name.startswith('market_tool_')
        ])
        name = request.POST.get('name', '').strip()
        price = request.POST.get('price', '').strip()
        footer = request.POST.get('footer', '').strip()
        max_mall_product_count = request.POST.get('max_mall_product_count',
                                                  '').strip()
        remark = request.POST.get('remark', '').strip()

        product = None
        product_id = int(request.POST.get('product_id', -1))
        if product_id > 0:
            product = Product.objects.get(id=product_id)
        if product:
            product.name = name
            product.price = price
            product.footer = footer
            product.max_mall_product_count = max_mall_product_count
            product.webapp_modules = webapp_modules
            product.market_tool_modules = market_tool_modules
            product.remark = remark
            product.save()

            user_ids = set([
                r.owner_id
                for r in UserHasProduct.objects.filter(product_id=product_id)
            ])
            MallConfig.objects.filter(owner_id__in=user_ids).update(
                max_product_count=max_mall_product_count)
        else:
            product = Product.objects.create(
                name=name,
                price=price,
                footer=footer,
                max_mall_product_count=max_mall_product_count,
                webapp_modules=webapp_modules,
                market_tool_modules=market_tool_modules,
                remark=remark)

        return HttpResponseRedirect('/product/products/')
    else:
        product_id = int(request.GET.get('id', -1))
        product = None
        if product_id > 0:
            product = Product.objects.get(id=product_id)

        webapp_modules = []
        for module in Workspace.objects.filter(owner=request.user):
            webapp_modules.append({'name': module.name, 'value': module.id})

        market_tool_modules = []
        for module in ToolModule.all_tool_modules():
            checked = False
            if product:
                if module.module_name in product.market_tool_modules:
                    checked = True
            market_tool_modules.append({
                'name': module.settings.TOOL_NAME,
                'value': module.module_name,
                'checked': checked
            })

        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV_NAME,
                'second_navs': None,
                'footers': PRODUCT_FOOTERS,
                'webapp_modules': webapp_modules,
                'market_tool_modules': market_tool_modules,
                'product': product
            })
        return render_to_response('product/edit_product.html', c)
Ejemplo n.º 10
0
# Django settings for market_tools project.

# -*- coding: utf-8 -*-

__author__ = 'chuter'

import os
from market_tools import ToolModule

PROJECT_HOME = os.path.dirname(os.path.abspath(__file__))

INSTALLED_APPS = [
    tool_module.package for tool_module in ToolModule.all_tool_modules()
]