Esempio n. 1
0
    def handle(self, **options):
        print 'update vote page start...'
        try:
            #从page中取出数据
            pagestore = pagestore_manager.get_pagestore('mongo')
            for vote in app_models.vote.objects.all():
                related_page_id = vote.related_page_id

                page = pagestore.get_page(related_page_id, 1)
                components = page['component']
                print 'get components', type(components)
                components_str = str(components)
                #替换内容
                print 'replace appkit.selection'
                components_str = components_str.replace(
                    'appkit.selection', 'appkit.textselection')
                print 'replace appkit.selectionitem'
                components_str = components_str.replace(
                    'appkit.selectitem', 'appkit.textselectionitem')
                components = eval(components_str)

                #保存page
                pagestore.save_page(related_page_id, 1, components)
            print 'update vote page end...'
        except Exception, e:
            print 'update vote page fail...', e
def __get_DB_DynamicPages(project_id):
    """
	直接从Mongo数据库取数据
	"""
    pagestore = pagestore_manager.get_pagestore('mongo')
    pages = pagestore.get_page_components(project_id)
    return pages
Esempio n. 3
0
    def get_result(request):
        survey_detail = {}
        survey_survey = app_models.survey.objects.get(id=request.GET['id'])
        survey_detail['name'] = survey_survey['name']
        survey_detail['start_time'] = survey_survey['start_time'].strftime(
            '%Y-%m-%d %H:%M')
        survey_detail['end_time'] = survey_survey['end_time'].strftime(
            '%Y-%m-%d %H:%M')
        related_page_id = survey_survey.related_page_id

        pagestore = pagestore_manager.get_pagestore('mongo')
        page = pagestore.get_page(related_page_id, 1)
        page_info = page['component']['components'][0]['model']
        survey_detail['subtitle'] = page_info['subtitle']
        survey_detail['description'] = page_info['description']
        prize_type = page_info['prize']['type']
        survey_detail['prize_type'] = prize_type
        if prize_type == 'coupon':
            prize_data = page_info['prize']['data']['name']
        else:
            prize_data = page_info['prize']['data']
        survey_detail['prize_data'] = prize_data

        result_list = Msurvey.get_surveyparticipance_datas(request)

        return survey_detail, result_list
Esempio n. 4
0
    def api_post(request):
        """
		响应POST
		"""
        target_status = request.POST['target']
        if target_status == 'stoped':
            target_status = app_models.STATUS_STOPED
            now_time = datetime.today().strftime('%Y-%m-%d %H:%M')
            app_models.exsurvey.objects(id=request.POST['id']).update(
                set__end_time=now_time)
            pagestore = pagestore_manager.get_pagestore('mongo')
            datas = app_models.exsurvey.objects(id=request.POST['id'])
            for data in datas:
                related_page_id = data.related_page_id
            page = pagestore.get_page(related_page_id, 1)
            page['component']['components'][0]['model']['end_time'] = now_time
            pagestore.save_page(related_page_id, 1, page['component'])
        elif target_status == 'running':
            target_status = app_models.STATUS_RUNNING
        elif target_status == 'not_start':
            target_status = app_models.STATUS_NOT_START
        app_models.exsurvey.objects(id=request.POST['id']).update(
            set__status=target_status)

        response = create_response(200)
        return response.get_response()
def step_tmpl(context, webapp_user_name, webapp_owner_name,
              red_packet_rule_name):
    red_packet_rule_id = __get_red_packet_rule_id(red_packet_rule_name)
    api_response_information = json.loads(context.api_response)['data']
    red_packet_info = RedPacket.objects.get(id=red_packet_rule_id)
    related_page_id = red_packet_info.related_page_id
    pagestore = pagestore_manager.get_pagestore('mongo')
    page = pagestore.get_page(related_page_id, 1)
    page_component = page['component']['components'][0]['model']

    # 构造实际数据
    actual = []
    actual.append({
        "name":
        red_packet_info.name,
        "is_show_countdown":
        page_component['timing']['timing']['select'],
        "rules":
        page_component['rules'],
        "red_packet_money":
        api_response_information['member_info']['red_packet_money']
    })
    print("actual_data: {}".format(actual))
    expected = json.loads(context.text)
    print("expected: {}".format(expected))
    bdd_util.assert_list(expected, actual)
Esempio n. 6
0
    def get(request):
        """
		页面的打包(zip)结果
		"""
        pagestore = pagestore_manager.get_pagestore('mongo')
        project_id = request.GET['project_id']

        #清空下载目录
        download_dir = os.path.join(settings.DOWNLOAD_HOME, 'download',
                                    project_id)
        if os.path.exists(download_dir):
            shutil.rmtree(download_dir)
        os.makedirs(download_dir)

        #export page
        for page in pagestore.get_pages(project_id):
            del page['_id']
            f = open(
                os.path.join(download_dir, 'page_%s.json' % page['page_id']),
                'wb')
            print >> f, json.dumps(page, indent=4)
            f.close()

        #打包
        files = os.listdir(download_dir)
        zip_path = os.path.join(download_dir, 'project_%s.zip' % project_id)
        zip = zipfile.ZipFile(zip_path, 'w')
        for file in files:
            zip.write(os.path.join(download_dir, file), file)
        zip.close()

        path = '/termite_static/%s' % zip_path.replace(
            '\\', '/').split('/static/')[-1]
        return HttpResponseRedirect(path)
Esempio n. 7
0
def get_datasource_project_pages(request):
	pagestore = pagestore_manager.get_pagestore(request)

	project_id = request.GET['project_id']
	project = Project.objects.get(id=project_id)
	workspace = Workspace.objects.get(id=project.workspace_id)

	pages = [{'name': u'选择页面...', 'value': '-1'}]
	if workspace.data_backend:
		type, name_or_id = workspace.data_backend.split(':')
		if type == 'viper':
			datasource_project_id = name_or_id
			for page in pagestore.get_pages(datasource_project_id):
				page_model = page['component']['model']
				one_page = {}
				one_page['name'] = page_model['title']
				one_page['value'] = page['page_id']

				pages.append(one_page)
		elif type == 'module':
			module_info = 'webapp.modules.%s.export' % name_or_id
			module = __import__(module_info, {}, {}, ['*',])
			pages = [{'name': u'选择页面...', 'value': '0'}]
			pages.extend(module.PAGES)

	response = create_response(200)
	response.data = pages
	return response.get_response()
Esempio n. 8
0
def __get_display_info(project_id):
    pagestore = pagestore_manager.get_pagestore('mongo')

    project = None
    is_app_project = False
    app_name = ''
    if project_id.startswith('new_app:'):
        _, app_name, project_id = project_id.split(':')
        is_app_project = True
    else:
        project_id = 0

    if is_app_project:
        project = webapp_models.Project()
        project.id = project_id
        project.type = 'appkit'

    page_id = 1
    page = pagestore.get_page(project_id, page_id)

    if page_id != 'preview':
        try:
            #使用project中的site_title作为真正的site_title
            #因为在page列表页面直接更新page site_title时是不会更新mongo中page数据中的site_title的
            page['component']['model']['site_title'] = project.site_title
        except:
            pass

    display_info = {'project': project, 'page_id': page_id, 'page': page}

    return display_info
Esempio n. 9
0
    def update_app_page_content(request):
        """
		更新app page内容
		"""
        _, app_name, project_id = request.GET['project_id'].split(':')
        pagestore = pagestore_manager.get_pagestore('mongo')
        page_id = 1
        page = json.loads(request.POST['page_json'])
        pagestore.save_page(project_id, page_id, page)
Esempio n. 10
0
def delete_page(request):
	project_id = request.POST['project_id']
	page_id = request.POST['page_id']

	pagestore = pagestore_manager.get_pagestore(request)
	pagestore.remove_page(project_id, page_id)

	response = create_response(200)
	return response.get_response()
Esempio n. 11
0
	def get(request):
		"""
		响应GET
		"""
		cert_setting = WxCertSettings.objects.filter(owner_id=request.manager.id)

		if not cert_setting.count() > 0:
			return HttpResponseRedirect("/mall2/weixin_certificate/")

		if 'id' in request.GET:
			project_id = 'new_app:group:%s' % request.GET.get('related_page_id', 0)
			#处理删除异常
			try:
				group = app_models.Group.objects.get(id=request.GET['id'])
			except:
				c = RequestContext(request, {
					'first_nav_name': FIRST_NAV,
					'second_navs': mall_export.get_promotion_and_apps_second_navs(request),
					'second_nav_name': mall_export.MALL_APPS_SECOND_NAV,
					'third_nav_name': "groups",
					'is_deleted_data': True
				})

				return render_to_response('group/templates/editor/workbench.html', c)

			is_create_new_data = False
		else:
			group = None
			is_create_new_data = True
			project_id = 'new_app:group:0'

		_, app_name, real_project_id = project_id.split(':')
		if real_project_id != '0':
			pagestore = pagestore_manager.get_pagestore('mongo')
			pages = pagestore.get_page_components(real_project_id)
			if not pages:
				c = RequestContext(request, {
					'first_nav_name': FIRST_NAV,
					'second_navs': mall_export.get_promotion_and_apps_second_navs(request),
					'second_nav_name': mall_export.MALL_APPS_SECOND_NAV,
					'third_nav_name': "groups",
					'is_deleted_data': True
				})

				return render_to_response('group/templates/editor/workbench.html', c)

		c = RequestContext(request, {
			'first_nav_name': FIRST_NAV,
			'second_navs': mall_export.get_promotion_and_apps_second_navs(request),
			'second_nav_name': mall_export.MALL_APPS_SECOND_NAV,
			'third_nav_name': "groups",
			'group': group,
			'is_create_new_data': is_create_new_data,
			'project_id': project_id,
		})

		return render_to_response('group/templates/editor/workbench.html', c)
Esempio n. 12
0
    def api_get(request):
        """
		响应API GET
		"""
        pageinfo, datas = votes.get_datas(request)

        pagestore = pagestore_manager.get_pagestore('mongo')
        p_ids = []
        for data in datas:
            p_ids.append(str(data.related_page_id))
        pages = pagestore.db.page.find({"project_id": {"$in": p_ids}})

        related_page_id2page = {}
        for page in pages:
            related_page_id2page[page['project_id']] = page['component'][
                'components'][0]['model']['prize']['type']

        items = []
        for data in datas:
            prize_type = related_page_id2page[str(data.related_page_id)]
            if prize_type == 'no_prize':
                prize_type = '无奖励'
            elif prize_type == 'integral':
                prize_type = '积分'
            elif prize_type == 'coupon':
                prize_type = '优惠券'
            items.append({
                'id':
                str(data.id),
                'name':
                data.name,
                'start_time':
                data.start_time.strftime('%Y-%m-%d %H:%M'),
                'end_time':
                data.end_time.strftime('%Y-%m-%d %H:%M'),
                'participant_count':
                data.participant_count,
                'related_page_id':
                data.related_page_id,
                'status':
                data.status_text,
                'prize_type':
                prize_type,
                'created_at':
                data.created_at.strftime("%Y-%m-%d %H:%M:%S")
            })
        response_data = {
            'items': items,
            'pageinfo': paginator.to_dict(pageinfo),
            'sortAttr': 'id',
            'data': {}
        }
        response = create_response(200)
        response.data = response_data
        return response.get_response()
Esempio n. 13
0
def get_navbar_components(webapp_owner_id):
    pagestore = pagestore_manager.get_pagestore('mongo')
    project_id = 'fake:wepage:%s:navbar' % webapp_owner_id
    page_id = 'navbar'
    navbar_page = pagestore.get_page(project_id, page_id)

    if navbar_page is None:
        navbar_page = __get_init_navbar_json()

    navbar_component = navbar_page['component']['components'][0]
    return navbar_component
Esempio n. 14
0
    def update_page_content(request):
        """
		更新page内容
		"""
        pagestore = pagestore_manager.get_pagestore('mongo')
        project_id = request.POST['id']
        page_id = request.POST['page_id']
        page = json.loads(request.POST['page_json'])
        pagestore.save_page(project_id, page_id, page)

        Project.update_project_site_title(project_id, page)
Esempio n. 15
0
    def api_put(request):
        """
		预览
		"""
        pagestore = pagestore_manager.get_pagestore('mongo')
        project_id = request.POST['project_id']
        page = json.loads(request.POST['page_json'])
        pagestore.save_page(project_id, "preview", page)

        response = create_response(200)
        return response.get_response()
Esempio n. 16
0
def synchronize_page(request):
	pagestore = pagestore_manager.get_pagestore(request)
	project_id = request.POST['project_id']
	image = request.POST['image']
	page_id = request.POST['page_id']
	page = json.loads(request.POST['page_json'])
	pagestore.save_page(project_id, page_id, page)

	if image:
		__save_template_picture(request.user.id, project_id, image)
	response = create_response(200)
	return response.get_response()
Esempio n. 17
0
def get_pages_json(request):
	"""
	获得page的json内容
	"""
	pagestore = pagestore_manager.get_pagestore(request)

	project_id = request.GET['project_id']
	pages = pagestore.get_page_components(project_id)

	response = create_response(200)
	response.data = json.dumps(pages)
	return response.get_response()
Esempio n. 18
0
    def import_from_zip_file(request):
        """
		从zip file中抽取page信息,导入mongodb中
		"""
        pagestore = pagestore_manager.get_pagestore('mongo')
        project_id = request.POST['id']

        #清空下载目录
        download_dir = os.path.join(settings.DOWNLOAD_HOME, 'download',
                                    project_id)
        if os.path.exists(download_dir):
            shutil.rmtree(download_dir)
        os.makedirs(download_dir)

        #获取文件内容
        file = request.FILES.get('Filedata', None)
        content = []
        if file:
            for chunk in file.chunks():
                content.append(chunk)

        #获取文件路径
        file_name = request.POST['Filename']
        file_path = os.path.join(download_dir, file_name)

        #写入文件
        dst_file = open(file_path, 'wb')
        dst_file.write(''.join(content))
        dst_file.flush()
        dst_file.close()

        #创建page, apis.py, project.css
        pagestore.remove_project_pages(project_id)
        zip = zipfile.ZipFile(file_path)
        zip.extractall(download_dir)
        for file in os.listdir(download_dir):
            if file.endswith('.zip'):
                continue

            if file.startswith('page_'):
                src_file = open(os.path.join(download_dir, file), 'rb')
                content = src_file.read()
                src_file.close()
                page_json = json.loads(content)
                page_component = page_json['component']
                page_component['is_new_created'] = True
                page_id = page_json['page_id']
                pagestore.save_page(project_id, page_id, page_component)

                Project.update_project_site_title(project_id, page_component)

        return True
Esempio n. 19
0
    def get_datas(request):
        name = request.GET.get('name', '')
        status = int(request.GET.get('status', -1))
        start_time = request.GET.get('start_time', '')
        end_time = request.GET.get('end_time', '')
        prize_type = request.GET.get('prize_type', 'all')

        now_time = datetime.today().strftime('%Y-%m-%d %H:%M')
        params = {'owner_id': request.manager.id}
        datas_datas = app_models.vote.objects(**params)
        for data_data in datas_datas:
            data_start_time = data_data.start_time.strftime('%Y-%m-%d %H:%M')
            data_end_time = data_data.end_time.strftime('%Y-%m-%d %H:%M')
            data_status = data_data.status
            if data_status <= 1:
                if data_start_time <= now_time and now_time < data_end_time:
                    data_data.update(set__status=app_models.STATUS_RUNNING)
                elif now_time >= data_end_time:
                    data_data.update(set__status=app_models.STATUS_STOPED)
        if name:
            params['name__icontains'] = name
        if status != -1:
            params['status'] = status
        if start_time:
            params['start_time__gte'] = start_time
        if end_time:
            params['end_time__lte'] = end_time
        if prize_type != 'all':
            records = []
            prize_type_ids = []
            records = app_models.vote.objects.filter(
                owner_id=request.manager.id)
            pagestore = pagestore_manager.get_pagestore('mongo')
            for record in records:
                page = pagestore.get_page(record.related_page_id, 1)
                page_details = page['component']['components'][0]['model']
                page_prize_type = page_details['prize']['type']
                if prize_type == page_prize_type:
                    prize_type_ids.append(record.id)
            params['id__in'] = prize_type_ids
        datas = app_models.vote.objects(**params).order_by('-id')

        #进行分页
        count_per_page = int(request.GET.get('count_per_page', COUNT_PER_PAGE))
        cur_page = int(request.GET.get('page', '1'))
        pageinfo, datas = paginator.paginate(
            datas,
            cur_page,
            count_per_page,
            query_string=request.META['QUERY_STRING'])

        return pageinfo, datas
Esempio n. 20
0
def update_page_display_index(request):
	pagestore = pagestore_manager.get_pagestore(request)
	project_id = request.POST['project_id']
	ordered_pages = request.POST['ordered_pages']

	index = 1
	for page_id in ordered_pages.split(','):
		#Page.objects.filter(project_id=project_id, page_id=page_id).update(display_index=index)
		pagestore.update_page_display_index(project_id, page_id, index)
		index += 1

	response = create_response(200)
	return response.get_response()
Esempio n. 21
0
	def get(request):
		"""
		响应GET
		"""
		if 'id' in request.GET:
			project_id = 'new_app:event:%s' % request.GET.get('related_page_id', 0)
			try:
				event = app_models.event.objects.get(id=request.GET['id'])
			except:
				c = RequestContext(request, {
					'first_nav_name': FIRST_NAV,
					'second_navs': export.get_promotion_and_apps_second_navs(request),
					'second_nav_name': export.MALL_APPS_SECOND_NAV,
					'third_nav_name': export.MALL_APPS_EVENT_NAV,
					'is_deleted_data': True
				})
				return render_to_response('event/templates/editor/workbench.html', c)
			is_create_new_data = False

		else:
			event = None
			is_create_new_data = True
			project_id = 'new_app:event:0'

		_, app_name, real_project_id = project_id.split(':')
		if real_project_id != '0':
			pagestore = pagestore_manager.get_pagestore('mongo')
			pages = pagestore.get_page_components(real_project_id)
			if not pages:
				c = RequestContext(request, {
					'first_nav_name': FIRST_NAV,
					'second_navs': export.get_promotion_and_apps_second_navs(request),
					'second_nav_name': export.MALL_APPS_SECOND_NAV,
					'third_nav_name': export.MALL_APPS_EVENT_NAV,
					'is_deleted_data': True
				})
				return render_to_response('event/templates/editor/workbench.html', c)
		
		c = RequestContext(request, {
			'first_nav_name': FIRST_NAV,
			'second_navs': export.get_promotion_and_apps_second_navs(request),
			'second_nav_name': export.MALL_APPS_SECOND_NAV,
            'third_nav_name': export.MALL_APPS_EVENT_NAV,
			'event': event,
			'is_create_new_data': is_create_new_data,
			'project_id': project_id,
			'app_name': 'event'
		});
		
		return render_to_response('event/templates/editor/workbench.html', c)
Esempio n. 22
0
def example_api(request):
    pagestore = pagestore_manager.get_pagestore(request)

    data = {
        'product_list': {
            'data_groups': [{
                'datas': []
            }]
        },
        'product_image': {
            'image': ''
        },
    }
    return data
Esempio n. 23
0
def get_related_radio_items(component, request):
    pagestore = pagestore_manager.get_pagestore(request)
    page_id = component['model']['datasource_page'].split('-')[1]
    field_name = component['model']['datasource_field']

    items = []
    for record in pagestore.get_records(request.user.id, request.project.id,
                                        page_id):
        record_model = record['model']
        model = {}
        model['name'] = component['model']['name']
        model['text'] = record_model[field_name]
        model['value'] = model['text']
        item = {'model': model, 'parent_component': component}
        items.append(item)
    return items
Esempio n. 24
0
	def api_get(request):
		"""
		页面的json数据
		"""
		pagestore = pagestore_manager.get_pagestore('mongo')

		project_id = request.GET['project_id']
		project = webapp_models.Project.objects.get(id=project_id)
		pages = pagestore.get_page_components(project_id)
		
		try:
			pages[0]['model']['site_title'] = project.site_title
		except:
			pass
		
		response = create_response(200)
		response.data = json.dumps(pages)
		return response.get_response()
Esempio n. 25
0
def get_dynamic_pages(request):
    pagestore = pagestore_manager.get_pagestore('mongo')

    project_id = request.GET['project_id']
    _, app_name, real_project_id = project_id.split(':')
    if real_project_id == '0':
        #新建app的project
        app_settings_module_path = 'apps.customerized_apps.%s.settings' % app_name
        app_settings_module = __import__(app_settings_module_path, {}, {}, [
            '*',
        ])
        pages = [json.loads(app_settings_module.NEW_PAGE_JSON)['component']]
    else:
        pages = pagestore.get_page_components(real_project_id)

    response = create_response(200)
    response.data = pages
    return response.get_response()
Esempio n. 26
0
def export_project(request):
    pagestore = pagestore_manager.get_pagestore(request)
    project_id = request.GET['project_id']

    #清空下载目录
    download_dir = os.path.join(settings.DOWNLOAD_HOME, 'download', project_id)
    if os.path.exists(download_dir):
        shutil.rmtree(download_dir)
    os.makedirs(download_dir)

    #export page
    for page in pagestore.get_pages(project_id):
        del page['_id']
        f = open(os.path.join(download_dir, 'page_%s.json' % page['page_id']),
                 'wb')
        print >> f, json.dumps(page, indent=4)
        f.close()

    #export apis.py
    # apis_dir = os.path.join(settings.TERMITE_HOME, '../../webapp')
    # src_file = os.path.join(apis_dir, 'apis_%s.py' % project_id)
    # dst_file = os.path.join(download_dir, 'apis_%s.py' % project_id)
    # shutil.copyfile(src_file, dst_file)

    #export project.css
    # css_dir = os.path.join(settings.TERMITE_HOME, '../../static/project_css')
    # src_file = os.path.join(css_dir, 'project_%s.css' % project_id)
    # dst_file = os.path.join(download_dir, 'project_%s.css' % project_id)
    # shutil.copyfile(src_file, dst_file)

    #打包
    files = os.listdir(download_dir)
    zip_path = os.path.join(download_dir, 'project_%s.zip' % project_id)
    zip = zipfile.ZipFile(zip_path, 'w')
    for file in files:
        zip.write(os.path.join(download_dir, file), file)
    zip.close()

    path = '/termite_static/%s' % zip_path.replace('\\',
                                                   '/').split('/static/')[-1]
    return HttpResponseRedirect(path)
Esempio n. 27
0
def __create_app_files(request, project_id):
    settings.IS_UNDER_CODE_GENERATION = True
    project = Project.objects.get(id=project_id)
    pagestore = pagestore_manager.get_pagestore('mongo')

    #获取page对象
    pages = pagestore.get_pages(project_id)

    app_dir = os.path.join(settings.PROJECT_HOME, '../apps/customerized_apps',
                           project.inner_name)
    __copy_app_template_to(app_dir)
    __create_settings_file(app_dir, project, pages)
    __create_export_file(app_dir, project, pages)
    __create_module(request, app_dir, project, pages)
    __create_dialogs(request, app_dir, project, pages)
    __create_mysql_models(request, app_dir, project, pages)
    shutil.rmtree(os.path.join(app_dir, 'module_template'))

    settings.IS_UNDER_CODE_GENERATION = False

    return project.inner_name, project.name
Esempio n. 28
0
def __participate_event(context, webapp_owner_id, event_rule_id):
    termite_data = json.loads(context.text)
    i = 0
    data = {}
    for k, v in termite_data.iteritems():
        item_name = __itemName2item(k) if k != u'' else ''
        name = '0' + str(i) + '_' + item_name
        data[name] = {'type': 'appkit.textlist', 'value': v}
        i += 1
    related_page_id = event.objects.get(id=event_rule_id).related_page_id
    pagestore = pagestore_manager.get_pagestore('mongo')
    page = pagestore.get_page(related_page_id, 1)
    prize = page['component']['components'][0]['model']['prize']
    params = {
        'webapp_owner_id': webapp_owner_id,
        'belong_to': event_rule_id,
        'termite_data': json.dumps(data),
        'prize': json.dumps(prize)
    }
    response = context.client.post(
        '/m/apps/event/api/event_participance/?_method=put', params)
    context.response_json = json.loads(response.content)
Esempio n. 29
0
def step_tmpl(context, webapp_user_name, webapp_owner_name,
              power_me_rule_name):
    power_me_rule_id = __get_power_me_rule_id(power_me_rule_name)
    rank_information = json.loads(context.rank_response)['data']
    power_me_info = PowerMe.objects.get(id=power_me_rule_id)
    related_page_id = power_me_info.related_page_id
    pagestore = pagestore_manager.get_pagestore('mongo')
    page = pagestore.get_page(related_page_id, 1)
    page_component = page['component']['components'][0]['model']

    color2name = {'yellow': u'冬日暖阳', 'red': u'玫瑰茜红', 'orange': u'热带橙色'}
    # 构造实际数据
    actual = []
    actual.append({
        "name":
        power_me_info.name,
        "is_show_countdown":
        page_component['timing']['timing']['select'],
        "desc":
        page_component['description'],
        "background_pic":
        page_component['background_image'],
        "background_color":
        color2name[page_component['color']],
        "rules":
        page_component['rules'],
        "my_rank":
        rank_information['current_member_rank_info']['rank']
        if rank_information['current_member_rank_info'] else u'无',
        "my_power_score":
        rank_information['current_member_rank_info']['power']
        if rank_information['current_member_rank_info'] else '0',
        "total_participant_count":
        rank_information['total_participant_count']
    })
    print("actual_data: {}".format(actual))
    expected = json.loads(context.text)
    print("expected: {}".format(expected))
    bdd_util.assert_list(expected, actual)
Esempio n. 30
0
def get_result(id, member_id):
    event_detail = {}
    event_event = app_models.event.objects.get(id=id)
    event_detail['name'] = event_event['name']
    event_detail['end_time'] = event_event['end_time'].strftime('%Y-%m-%d')

    related_page_id = event_event.related_page_id
    activity_status = event_event.status_text

    pagestore = pagestore_manager.get_pagestore('mongo')
    page = pagestore.get_page(related_page_id, 1)
    page_info = page['component']['components'][0]['model']
    event_detail['subtitle'] = page_info['subtitle']
    event_detail['description'] = page_info['description']
    prize_type = page_info['prize']['type']
    event_detail['prize_type'] = prize_type
    if prize_type == 'coupon':
        prize_data = page_info['prize']['data']['name']
    else:
        prize_data = page_info['prize']['data']
    event_detail['prize_data'] = prize_data

    return event_detail, activity_status