Exemplo n.º 1
0
def google_login(request):
    google_sign_in = google.GoogleSignIn()
    auth_url = google_sign_in.google_auth()

    return HttpResponseRedirect(auth_url)
Exemplo n.º 2
0
def searchResult(request, *args, **kwargs):
    ret = {'logined': False, 'show': '', 'pagelist': '', 'search_ok': False}
    #判断用户是否登录,获取用户信息
    ret, user_obj = general.loginInfo(request, ret)
    ret['user_info'] = user_obj
    '''
    内容显示及分页
    '''

    page = general.try_int(request.GET.get('p', 1), 1)
    u_focus = request.GET.get('focus', 'af')
    u_type = request.GET.get('type', 'at')
    u_region = request.GET.get('region', 'ar')
    u_category = request.GET.get('category', 'all')

    type_list = [
        'at', 'juqing', 'xiju', 'aiqing', 'qihuan', 'guzhuang', 'dongzuo',
        'maoxian', 'kehuan', 'xuanyi', 'jingsong', 'kongbu', 'fanzui',
        'zhanzheng', 'donghua', 'jilupian', 'tongxing', 'qingse', 'jiating',
        'ertong', 'lishi', 'yundong', 'zhuanji', 'yinyue', 'gewu', 'xiqu'
    ]
    region_list = [
        'ar', 'otherregion', 'mainland', 'hongkong', 'taiwan', 'america', 'uk',
        'french', 'japan', 'korea', 'thailand', 'india'
    ]
    focus_list = [
        'af', 'guonei', 'guowai', 'gaofen', 'gengxin', 'not_released'
    ]
    category_list = ['all', 'movie', 'tv', 'anime', 'show']

    if not all([
            u_focus in focus_list, u_type in type_list, u_region
            in region_list, u_category in category_list
    ]):
        raise Http404

    u_sv_str = request.GET.get('keyword', '').strip()
    if not u_sv_str:
        return HttpResponseRedirect('/search/')

    #type filter
    if u_type == 'at':
        movie_result = models.Movie.objects.all()
        tv_result = models.Tv.objects.all()
        anime_result = models.Anime.objects.all()
        show_result = models.Show.objects.all()
    else:
        #type_query = False
        for item in typedict:
            if u_type == item:
                movie_result = models.Movie.objects.filter(
                    types__contains=typedict[item])
                tv_result = models.Tv.objects.filter(
                    types__contains=typedict[item])
                anime_result = models.Anime.objects.filter(
                    types__contains=typedict[item])
                show_result = models.Show.objects.filter(
                    types__contains=typedict[item])
                #type_query = True
        #if not type_query:
        #raise Http404

    #region filter
    if u_region == 'ar':
        pass
    elif u_region == 'otherregion':
        movie_result = movie_result.exclude(
            Q(region__contains='中国大陆') | Q(region__contains='香港')
            | Q(region__contains='台湾') | Q(region__contains='美国')
            | Q(region__contains='英国') | Q(region__contains='法国')
            | Q(region__contains='日本') | Q(region__contains='韩国')
            | Q(region__contains='泰国') | Q(region__contains='印度'))
        tv_result = tv_result.exclude(
            Q(region__contains='中国大陆') | Q(region__contains='香港')
            | Q(region__contains='台湾') | Q(region__contains='美国')
            | Q(region__contains='英国') | Q(region__contains='法国')
            | Q(region__contains='日本') | Q(region__contains='韩国')
            | Q(region__contains='泰国') | Q(region__contains='印度'))
        anime_result = anime_result.exclude(
            Q(region__contains='中国大陆') | Q(region__contains='香港')
            | Q(region__contains='台湾') | Q(region__contains='美国')
            | Q(region__contains='英国') | Q(region__contains='法国')
            | Q(region__contains='日本') | Q(region__contains='韩国')
            | Q(region__contains='泰国') | Q(region__contains='印度'))
        show_result = show_result.exclude(
            Q(region__contains='中国大陆') | Q(region__contains='香港')
            | Q(region__contains='台湾') | Q(region__contains='美国')
            | Q(region__contains='英国') | Q(region__contains='法国')
            | Q(region__contains='日本') | Q(region__contains='韩国')
            | Q(region__contains='泰国') | Q(region__contains='印度'))
    else:
        regiondict = {
            'mainland': '中国大陆',
            'hongkong': '香港',
            'taiwan': '台湾',
            'america': '美国',
            'uk': '英国',
            'french': '法国',
            'japan': '日本',
            'korea': '韩国',
            'thailand': '泰国',
            'india': '印度'
        }
        #region_query = False
        for item in regiondict:
            if u_region == item:
                movie_result = movie_result.filter(
                    region__contains=regiondict[item])
                tv_result = tv_result.filter(region__contains=regiondict[item])
                anime_result = anime_result.filter(
                    region__contains=regiondict[item])
                show_result = show_result.filter(
                    region__contains=regiondict[item])
                #region_query = True

        #if not region_query:
        #raise Http404

    #focus filter
    if u_focus == 'af':
        pass
    elif u_focus == 'guonei':
        movie_result = movie_result.filter(
            release_date_show__contains='中国').exclude(score=0)
        tv_result = tv_result.filter(release_date_show__contains='中国').exclude(
            score=0)
        anime_result = anime_result.filter(
            release_date_show__contains='中国').exclude(score=0)
        show_result = show_result.filter(
            release_date_show__contains='中国').exclude(score=0)
    elif u_focus == 'guowai':
        movie_result = movie_result.exclude(
            Q(release_date_show__contains='中国') | Q(score=0))
        tv_result = tv_result.exclude(
            Q(release_date_show__contains='中国') | Q(score=0))
        anime_result = anime_result.exclude(
            Q(release_date_show__contains='中国') | Q(score=0))
        show_result = show_result.exclude(
            Q(release_date_show__contains='中国') | Q(score=0))
    elif u_focus == 'gaofen':
        movie_result = movie_result.filter(score__gte=8)
        tv_result = tv_result.filter(score__gte=8)
        anime_result = anime_result.filter(score__gte=8)
        show_result = show_result.filter(score__gte=8)
    elif u_focus == 'gengxin':
        pass  #后面排序
    elif u_focus == 'not_released':
        movie_result = movie_result.filter(score=0)
        tv_result = tv_result.filter(score=0)
        anime_result = anime_result.filter(score=0)
        show_result = show_result.filter(score=0)
    #else:
    #raise Http404

    #keywords
    print 'u_sv_str: ' + u_sv_str
    if u_sv_str:
        sv_str = u_sv_str  #待处理
        #u_sv_list = u_sv_str.split()  #需返回给前端
        illegal_chars = [
            '!', '!', '@', '#', '$', '%', '^', '&', '*', '-', '_', '"', "'",
            ':', ':', '·', '+', '=', '~', '`', '|', '\\', '/', ',', ',', '.',
            '。', '?', '?', '(', ')', '<', '>', '{', '}', '[', ']', '【', '】',
            ' '
        ]  #空格也去掉
        for item in illegal_chars:
            if item in sv_str:
                sv_str = sv_str.replace(item, '')
        print 'sv_str: ' + sv_str
        try:
            key_word = jieba.analyse.extract_tags(sv_str, topK=1)[0]
        except IndexError:
            key_word = ''

        #去掉所有特殊字符后用jieba分词
        sv_list_filtered = jieba.lcut(sv_str)
        print 'sv_list_filtered: ' + str(sv_list_filtered)
        all_list = []  #查询到的结果结合(含重复项)
        m_list, t_list, a_list, s_list = [], [], [], []
        # 求并集
        for item in sv_list_filtered:

            temp_m = movie_result.filter(
                Q(ch_name__contains=item) | Q(actor__contains=item)
                | Q(director__contains=item) | Q(other_name__contains=item)
                | Q(foreign_name__contains=item))
            if temp_m:
                m_list.extend(temp_m)
            temp_t = tv_result.filter(
                Q(ch_name__contains=item) | Q(actor__contains=item)
                | Q(director__contains=item) | Q(other_name__contains=item)
                | Q(foreign_name__contains=item))
            if temp_t:
                t_list.extend(temp_t)
            temp_a = anime_result.filter(
                Q(ch_name__contains=item) | Q(actor__contains=item)
                | Q(director__contains=item) | Q(other_name__contains=item)
                | Q(foreign_name__contains=item))
            if temp_a:
                a_list.extend(temp_a)
            temp_s = show_result.filter(
                Q(ch_name__contains=item) | Q(actor__contains=item)
                | Q(director__contains=item) | Q(other_name__contains=item)
                | Q(foreign_name__contains=item))
            if temp_s:
                s_list.extend(temp_s)
        if u_category == 'all':
            all_list = m_list + t_list + a_list + s_list
        elif u_category == 'movie':
            all_list = m_list
        elif u_category == 'tv':
            all_list = t_list
        elif u_category == 'anime':
            all_list = a_list
        elif u_category == 'show':
            all_list = s_list

        # 统计(去重)
        c = Counter(all_list)
        #print c
        #print 'dict_c:'+ str(c.items())

        # 数量
        m_counts = len(set(m_list))
        t_counts = len(set(t_list))
        a_counts = len(set(a_list))
        s_counts = len(set(s_list))
        ret['movie_counts'] = m_counts
        ret['tv_counts'] = t_counts
        ret['anime_counts'] = a_counts
        ret['show_counts'] = s_counts
        ret['all_counts'] = sum([m_counts, t_counts, a_counts, s_counts])

        print ret['all_counts']

        #排序
        if key_word:
            sorted_all_list = sorted(c.items(),
                                     key=lambda x:
                                     (-(key_word == x[0].ch_name), -x[1], -(
                                         key_word in x[0].ch_name)))
        else:
            sorted_all_list = sorted(
                c.items(),
                key=lambda x: ((sv_list_filtered[0] == x[0].ch_name), x[1],
                               sv_list_filtered[0] in x[0].ch_name),
                reverse=True)
        print 'sorted_all_list:' + str(sorted_all_list)

        #分页
        items_per_page = general.try_int(request.COOKIES.get('page_num', 20),
                                         20)
        pageObj = html_helper.PageInfo(page, len(c), items_per_page)
        try:
            paged_sorted_list = sorted_all_list[pageObj.start:pageObj.end]
        except IndexError:
            paged_sorted_list = []
        print 'paged_sorted_list: ' + str(paged_sorted_list)
        #print 'paged_sorted_list:' + str(paged_sorted_list)
        final_list = [x[0] for x in paged_sorted_list]
        print len(final_list)
        # 替换不存在海报
        #print 'final_list:' + str(final_list)
        for item in final_list:
            if not path.exists(BASE_DIR + item.poster):
                item.poster = '/static/images/default/poster/p_200x284.png'
        filter_url = '/search/result/?category=%s&focus=%s&type=%s&region=%s&keyword=%s&p=' % (
            u_category, u_focus, u_type, u_region, u_sv_str
        )  #r_cate为返回分类名,默认为movie(若movie搜索不为空)
        page_list = html_helper.Pager(page, pageObj.total_page_counts,
                                      filter_url)
        if pageObj.total_page_counts == 1:
            ret['page_list'] = ''
        else:
            ret['page_list'] = page_list
        # 最终结果
        ret['show'] = final_list
        ret['pages'] = pageObj.total_page_counts
        if pageObj.total_page_counts == 1:
            ret['page_list'] = ''
        elif pageObj.total_page_counts == 0:
            ret['no_result'] = True
        else:
            ret['page_list'] = page_list

    # 推荐电影,根据搜索结果的类型&地区来推荐
    r_count = 5  #推荐显示个数
    if final_list:
        t_list = []
        r_list = []
        for item in final_list:
            for t in item.types.split('/'):
                t_list.append(t.strip())
            for r in item.region.split('/'):
                r_list.append(r.strip())
        ct = Counter(t_list)
        del ct[u'剧情']  #去掉剧情,╮(╯_╰)╭
        cr = Counter(r_list)
        common_t = ct.most_common(1)[0][0]
        common_r = cr.most_common(1)[0][0]
        if u_category == 'all':
            rec_movie = models.Movie.objects.filter(types__contains=common_t,
                                                    region__contains=common_r,
                                                    score__gt=7)
            rec_tv = models.Tv.objects.filter(types__contains=common_t,
                                              region__contains=common_r,
                                              score__gt=7)
            rec_aniem = models.Anime.objects.filter(types__contains=common_t,
                                                    region__contains=common_r,
                                                    score__gt=7)
            rec_show = models.Show.objects.filter(types__contains=common_t,
                                                  region__contains=common_r,
                                                  score__gt=7)
            temp_list = [rec_movie, rec_tv, rec_aniem, rec_show]
            rec_list = [x for j in temp_list for x in j if j]
            rec_result = sorted(rec_list,
                                key=attrgetter('release_date'),
                                reverse=True)[:r_count]
        elif u_category == 'movie':
            rec_result = models.Movie.objects.filter(
                types__contains=common_t,
                region__contains=common_r,
                score__gt=7).order_by('-release_date')[:r_count]
        elif u_category == 'tv':
            rec_result = models.Tv.objects.filter(
                types__contains=common_t,
                region__contains=common_r,
                score__gt=7).order_by('-release_date')[:r_count]
        elif u_category == 'anime':
            rec_result = models.Anime.objects.filter(
                types__contains=common_t,
                region__contains=common_r,
                score__gt=7).order_by('-release_date')[:r_count]
        elif u_category == 'show':
            rec_result = models.Show.objects.filter(
                types__contains=common_t,
                region__contains=common_r,
                score__gt=7).order_by('-release_date')[:r_count]
        ret['rec_result'] = movie_helper.replaceWrongImg(rec_result,
                                                         img_type='p')
    else:  #若搜索无结果,从推荐表里取
        rec_res = models.Movie_Recommend.objects.all().order_by('-create_date')
        rec_list = []
        for item in rec_res:
            if item.cate == 1:
                try:
                    m_obj = models.Movie.objects.get(id=item.media_id)
                    rec_list.append(m_obj)
                except ObjectDoesNotExist:
                    pass
            elif item.cate == 2:
                try:
                    m_obj = models.Tv.objects.get(id=item.media_id)
                    rec_list.append(m_obj)
                except ObjectDoesNotExist:
                    pass
            elif item.cate == 3:
                try:
                    m_obj = models.Anime.objects.get(id=item.media_id)
                    rec_list.append(m_obj)
                except ObjectDoesNotExist:
                    pass
            elif item.cate == 4:
                try:
                    m_obj = models.Show.objects.get(id=item.media_id)
                    rec_list.append(m_obj)
                except ObjectDoesNotExist:
                    pass
            if len(rec_list) == r_count:
                break
        ret['rec_result'] = rec_list

    # 用户选择分类的中文
    cate_dict = {'movie': '电影', 'tv': '电视剧', 'anime': '动漫', 'show': '综艺'}
    for k, v in cate_dict.items():
        if k == u_category:
            ret['cate_name'] = v

    r_base_url = '/search/result/?category=%s&focus=%s&type=%s&region=%s&keyword=' % (
        u_category, u_focus, u_type, u_region)
    ret['cur_url'] = r_base_url + u_sv_str
    ret['u_sv_str'] = u_sv_str
    thumb_switch = request.COOKIES.get('switch', 't1')

    if thumb_switch == 't1' or not thumb_switch:
        response = render_to_response('search/search_result.html',
                                      ret,
                                      context_instance=RequestContext(request))
    elif thumb_switch == 't2':
        response = render_to_response('search/search_result_t2.html',
                                      ret,
                                      context_instance=RequestContext(request))
    elif thumb_switch == 't3':
        response = render_to_response('search/search_result_t3.html',
                                      ret,
                                      context_instance=RequestContext(request))

    response.set_cookie('page_num', items_per_page)
    return response
Exemplo n.º 3
0
 def response_delete(self, request, obj_display, obj_id):
     redirect_url = self.redirect_url_on_delete(request, obj_display,
                                                obj_id)
     if redirect_url:
         return HttpResponseRedirect(redirect_url)
     return super().response_delete(request, obj_display, obj_id)
Exemplo n.º 4
0
def loginredirect(request):
    user = request.user
    return HttpResponseRedirect('/')  #dashboard
Exemplo n.º 5
0
def inactivar_evento(request, evento_id):

    evento = Evento.objects.get(id=evento_id)
    evento.estado = 1
    evento.save()
    return HttpResponseRedirect(reverse('programa:lista_programas'))
Exemplo n.º 6
0
def getcheckcode(request):
    g_checkcode = gcheckcode(request)
    path = request.GET.get('path', '')
    if not path:
        return HttpResponseRedirect('/home/register/')
    return render(request, path, context=locals())
Exemplo n.º 7
0
 def post(self, request, *args, **kwargs):
     carousel = self.get_object()
     name = carousel.name
     carousel.delete()
     messages.success(request, _(u"%s has been deleted.") % name)
     return HttpResponseRedirect(reverse("E-Commerce_admin:carousel.list"))
Exemplo n.º 8
0
def show_board(request, name):
    # http://bootsnipp.com/snippets/featured/kanban-board
    """
        board structure

        [
            {
                'column': 'closed',
                'query': {'closed': False},
                'limit': 10,
                'extra_filter': 1, # 1 = days since closed, 2 = days since created, 3 = days since last changed, 4 days since last action
                'days': 1, # days
                'order_by': 'id',
                'order_dir': ''
            }
        ]
    """

    if request.method == 'POST':
        if 'method' in request.POST:
            board = boards.objects.get(pk=request.POST['board'],
                                       c_user=request.user)
            try:
                columns = json.loads(board.columns)
            except:
                columns = []

            if request.POST['method'] == 'add':
                form = AddToBordForm(request.POST)
                if form.is_valid():
                    cd = form.cleaned_data
                    col = {
                        'column': cd['column'],
                        'query': request.session['last_search'],
                        'limit': cd['limit'],
                        'order_by': cd['order_by'],
                        'order_dir': cd['order_dir']
                    }
                    if cd.get('extra_filter') and cd.get('days'):
                        col['extra_filter'] = cd['extra_filter']
                        col['days'] = cd['days']
                    columns.append(col)
                    board.columns = json.dumps(columns, cls=DjangoJSONEncoder)
                    board.save(user=request.user)

                else:
                    err_list = []
                    for field in form:
                        for err in field.errors:
                            err_list.append('%s: %s' % (field.name, err))
                    messages.add_message(
                        request, messages.ERROR,
                        _('data invalid: %s') % '\n'.join(err_list))

                return HttpResponseRedirect('/board/%s/' %
                                            urlquote_plus(board.name))

        else:
            board = boards()
            board.name = request.POST['boardname']
            board.save(user=request.user)

            return HttpResponseRedirect(
                '/board/%s/' % urlquote_plus(request.POST['boardname']))

    else:
        board = boards.objects.get(name=name, c_user=request.user)
        try:
            columns = json.loads(board.columns)
        except:
            columns = []

        if 'method' in request.GET and request.GET['method'] == 'del':
            new_columns = []
            for col in columns:
                if col['column'] != request.GET['column']:
                    new_columns.append(col)
            board.columns = json.dumps(new_columns, cls=DjangoJSONEncoder)
            board.save(user=request.user)

            return HttpResponseRedirect('/board/%s/' % urlquote_plus(name))

    for column in columns:
        column['query'] = get_ticket_model().objects.select_related(
            'priority').filter(**column['query']).order_by(
                '%s%s' %
                (column.get('order_dir', ''), column.get('order_by', 'id')))
        if column['limit']:
            column['query'] = column['query'][:column['limit']]
        if 'extra_filter' in column and 'days' in column and column[
                'extra_filter'] and column['days']:
            if column['extra_filter'] == '1':  # days since closed
                column['query'] = column['query'].filter(
                    close_date__gte=datetime.date.today() -
                    datetime.timedelta(days=column['days'])).exclude(
                        close_date=None)
            if column['extra_filter'] == '2':  # days since created
                column['query'] = column['query'].filter(
                    c_date__gte=datetime.date.today() -
                    datetime.timedelta(days=column['days']))
            if column['extra_filter'] == '3':  # days since last changed
                column['query'] = column['query'].filter(
                    u_date__gte=datetime.date.today() -
                    datetime.timedelta(days=column['days']))
            if column['extra_filter'] == '4':  # days since last action
                column['query'] = column['query'].filter(
                    last_action_date__gte=datetime.date.today() -
                    datetime.timedelta(days=column['days']))
        if not request.user.is_staff:
            column['query'] = column['query'].filter(
                customer=request.organisation)

    add_breadcrumbs(request, board.pk, '$')
    return render_to_response('board/view.html', {
        'columns': columns,
        'board': board
    }, RequestContext(request))
Exemplo n.º 9
0
def suggestionAccept_view(request, suggestion):

    suggestion = Suggestion.objects.get(id=suggestion)
    suggestion.is_accepted = True
    suggestion.save()
    return HttpResponseRedirect('/gov/dept/dept-suggestions')
Exemplo n.º 10
0
 def get(self, request, *args, **kwargs):
     product = self.get_object().product
     return HttpResponseRedirect(
         get_model_url(product, shop=self.request.shop))
Exemplo n.º 11
0
def warehousing_makexlsx_all(request, page):
    datas, tempFilePath, fileName = get_post_data(request, Warehousing.objects)
    ids = [i for i in range(1, len(datas) + 1)]  #序号
    if convertxlsx(datas, tempFilePath, ids):
        return down_file(tempFilePath, fileName)
    return HttpResponseRedirect(r'/web/warehousing/list/%s' % (page))
Exemplo n.º 12
0
def callback(request):
    """
    info = {u'openid': u'oMaZnwp6MCKAxjBi0anwBsMKf3pw',
            u'access_token': u'8amyiVIWd3Ssafb08HED-8xNIB5DDDsFm6QW-bIwMaKPmFJUFA9X6X7i3rNnazqOTGNeA7jNBs8X8S-4cd9moIMZsKaT0BAFj_LjteX_Yxk',
            u'unionid': u'oh8S_wRSPZ5PfCeFnoDlPV8V1H2M', u'expires_in': 7200, u'scope': u'snsapi_login',
            u'refresh_token': u'pEbXllcSyDPMmFe4X7wmxcvmMU8A_5DfAmISaTSlYvf9cCoO6AlknluOu-2NmfdUfUMunMlrgj3bGMeR0FRctAl3mxJMUbUkJux0zl-fXu4'}
    user_info = {u'province': u'Guangdong', u'openid': u'oMaZnwp6MCKAxjBi0anwBsMKf3pw',
     u'headimgurl': u'http://wx.qlogo.cn/mmopen/PiajxSqBRaEJHPI6VNY6HmnSibI23ahh1024IYGEnYtcUxjvHDuqapdXKiacYt0lZWte9dbkVye1RJqXoDx5vI6Pw/0',
     u'language': u'zh_CN', u'city': u'Shenzhen', u'country': u'CN', u'sex': 1,
     u'unionid': u'oh8S_wRSPZ5PfCeFnoDlPV8V1H2M', u'privilege': [], u'nickname': u'\u6728\u5b50\u5a01'}
     wechat/callback?code=031OnCTU0JGrJW1239SU0GFyTU0OnCTy&state=a17c532afc204a88
     """
    user = request.user
    code = request.GET.get('code', '')
    if not code:
        return HttpResponse('callback')

    api = WeixinAPI(appid=settings.OPEN_WX_APPID,
                    app_secret=settings.OPEN_WX_KEY,
                    redirect_uri=settings.OPEN_WX_LOGIN_URI)
    auth_info = api.exchange_code_for_access_token(code=code)
    unionid = auth_info['unionid']
    # 如果是登陆情况 且没有进行绑定操作 则进行绑定操
    if user.is_authenticated:
        if not user.weixin_customer:
            # refresh_token = api.exchange_refresh_token_for_access_token(refresh_token=auth_info['refresh_token'])
            weixin_user, bool = WeixinCustomer.objects.get_or_create(
                unionid=unionid)
            if bool:
                print 'get weixin user info'
                api = WeixinAPI(access_token=auth_info['access_token'])
                user_info = api.user(openid=auth_info['openid'])

                headimgurl = user_info['headimgurl']
                openid = user_info['openid']
                filepath = os.path.join(settings.BASE_DIR, 'static',
                                        'weixin_img')
                filename = '{}.png'.format(openid)
                with open(os.path.join(filepath, filename), 'wb') as f:
                    f.write(requests.get(headimgurl).content)
                staticimgurl = '/static/weixin_img/{}'.format(filename)

                weixin_user.openid = openid
                weixin_user.access_token = auth_info['access_token']
                weixin_user.refresh_token = auth_info['refresh_token']
                weixin_user.province = user_info['province']
                weixin_user.headimgurl = headimgurl
                weixin_user.staticimgurl = staticimgurl
                weixin_user.language = user_info['language']
                weixin_user.city = user_info['city']
                weixin_user.country = user_info['country']
                weixin_user.sex = user_info['sex']
                weixin_user.nickname = user_info['nickname']
                weixin_user.save()
            else:
                Customer.objects.filter(weixin_customer=weixin_user).exclude(
                    id=request.user.id).update(weixin_customer=None)
            user.weixin_customer = weixin_user
            user.save()
            messages.add_message(request, messages.SUCCESS, _(u'微信绑定成功'))
        else:
            messages.add_message(request, messages.ERROR,
                                 _(u'您有绑定其他微信,请先解除绑定!'))
        return HttpResponseRedirect('http://{}{}'.format(
            settings.HOSTNAME, reverse('account')))
    else:
        weixin_users = WeixinCustomer.objects.filter(unionid=unionid)
        users = Customer.objects.filter(
            weixin_customer=weixin_users[0]) if weixin_users else []
        # 如果找到相应绑定客户,进行扫描登陆
        if users:
            user = users[0]
            if user.disabled == "1":
                messages.add_message(request, messages.ERROR, _(u'此账户已被冻结!'))
                return HttpResponseRedirect('http://{}{}'.format(
                    settings.HOSTNAME, reverse('home')))
            else:
                user = authenticate(username=user.username,
                                    password='',
                                    t_password=user.password)
                auth_login(request, user)
                # 登录日志
                user.save_fast_login_log(request, mode='wechat')
                user.last_login = timezone.now()
                user.save(update_fields=['last_login'])

                # 支付宝登录通知销售
                sss = user.service()
                if sss and sss.is_pushcrew:
                    action = "service"
                    title = u"微信登录提醒"
                    message = u"{}(ID: {}) 于 {} 时间登录平台".format(
                        user.company, user.id,
                        datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
                    pushcrew_notice(action, title, message)

                return HttpResponseRedirect('http://{}{}'.format(
                    settings.HOSTNAME, reverse('home')))
        else:
            messages.add_message(request, messages.ERROR,
                                 _(u'此微信号并未于平台账号绑定,请先绑定账号!'))
            return HttpResponseRedirect('http://{}{}'.format(
                settings.HOSTNAME, reverse('home')))
Exemplo n.º 13
0
  def wrapperFunction(request, *args, **kwargs):
    # 사용자 세션 정보 오류일 경우 로그인 화면으로 이동
    if request.session.get('user_id') is None:
      # 테스트 : http://127.0.0.1:8000/esm_sys_1020
      print('사용자 세션이 존재하지 않습니다. 로그인 화면으로 이동합니다.')

      absouluteRoot = request.build_absolute_uri("/")[:-1].strip("/")
      absouluteRoot = absouluteRoot + '/login'
      # print("absouluteRoot =>", absouluteRoot)      

      # 세션이 삭제되면 로그인 화면으로 전환
      if 'application/json' in request.headers['Accept']:
        return HttpResponse(status=403)
        # HttpResponse({'cd': '905', 'msg': '세션 끊김'})
      else:
        return HttpResponseRedirect('/')      
    else:
      # 화면 로딩시 화면에 대한 URI를 값을 받아 뒷자리 '/' 제거 후 URL만 추출
      absoluteURI = (request.build_absolute_uri())[:-1].strip("/")
      url = absoluteURI[absoluteURI.rfind('/'):]
      # print ("url =>", url)

      # 함수 및 변수 값 초기화
      orginalFucntionCall = None
      # args = ('searchBtn', 'addRowBtn', 'deleteRowBtn', 'saveBtn', 'copyBtn', 'batchBtn', 'printBtn', 'excelDownBtn', 'excelUpBtn')
      args = ()
      kwargs = {}

      # 팝업의 경우 권한별 버튼 체크하지 않음
      if url.find('esm_pop') == -1:
        # home 함수 확인
        if orginalFunction.__name__ == 'home':
          try:
            querySet = SysMenuV.objects.filter(Q(url=url) ,Q(use_yn='Y'))
            
            # 버튼에 대한 사용여부 확인
            for ca in querySet:
              kwargs['buttonShowHide'] = {
                'searchBtn'    : ca.search_yn,
                'addRowBtn'    : ca.add_row_yn,
                'delRowBtn'    : ca.del_row_yn,
                'saveBtn'      : ca.save_yn,
                'copyBtn'      : ca.copy_yn,
                'batchBtn'     : ca.batch_yn,              
                'printBtn'     : ca.print_yn,
                'excelDownBtn' : ca.excel_down_yn,
                'excelUpBtn'   : ca.excel_up_yn,
              }

          except Exception as e:
            kwargs['buttonShowHide'] = {
              'searchBtn'    : 'N',
              'addRowBtn'    : 'N',
              'delRowBtn'    : 'N',
              'saveBtn'      : 'N',
              'copyBtn'      : 'N',
              'batchBtn'     : 'N',
              'printBtn'     : 'N',
              'excelDownBtn' : 'N',
              'excelUpBtn'   : 'N',
            }

      # 화면별 공통메시지 초기화 변수
      kwargs['commParams'] = {'cd': 'S', 'msg': '', 'processCnt': {'S': 0, 'I': 0, 'U': 0, 'D': 0, 'B': 0}} 
      
      # wrapperFunction 정상적으로 처리되면 orginalFunction에 값 할당
      orginalFucntionCall = orginalFunction(request, *args, **kwargs)

      # orginalFunction 수행
      return orginalFucntionCall
Exemplo n.º 14
0
 def post(self, request, *args, **kwargs):
     opt = request.POST.get("opt")
     if opt:
         telemetry.set_opt_out(opt == "out")
     return HttpResponseRedirect(request.path)
Exemplo n.º 15
0
 def form_valid(self, form):
     self.object = form.save()
     self.object.uploaded_by = self.request.user.myprofile
     self.object.save()
     return HttpResponseRedirect(self.get_success_url())
Exemplo n.º 16
0
def is_seen_view(request, issue):
    issue = CustomerIssue.objects.get(pk=issue)
    issue.is_seen = True
    issue.save()
    return HttpResponseRedirect('/gov/official/')
Exemplo n.º 17
0
 def get(self, request, **kwargs):
     return HttpResponseRedirect('/')
Exemplo n.º 18
0
 def get(self, request, *args, **kwargs):
     url = reverse("edc_lab_dashboard:home_url")
     return HttpResponseRedirect(url)
Exemplo n.º 19
0
def userLogout(request):
    logout(request)
    messages.success(request, "Logout successful")
    return HttpResponseRedirect('/accounts/')
Exemplo n.º 20
0
def logout(request):
    auth.logout(request)
    return HttpResponseRedirect('../../../../login')
Exemplo n.º 21
0
def customer_dashboard(request):
    current_user = request.user
    return HttpResponseRedirect('/business_profile/')

    return render(request, 'customer_dashboard.html', {'data': 'coming soon'})
Exemplo n.º 22
0
def c_delete(request, c_id):
    c = get_object_or_404(Choice, id=c_id)
    c.delete()  #데이터베이스에서 제거 및 id변수값 삭제
    return HttpResponseRedirect(reverse('detail', args=(c.q.id, )))
Exemplo n.º 23
0
def add_random_games(request, id):
    add_data()
    return HttpResponseRedirect(reverse('league', kwargs={'id': id}))
Exemplo n.º 24
0
def unfollow(request, pk):
    user = MyProfile.objects.get(pk=pk)
    FollowUser.objects.filter(profile=user, followed_by=request.user.myprofile).delete()
    return HttpResponseRedirect(redirect_to="/myprofile")
Exemplo n.º 25
0
def index(request):
    user = request.user
    if user.is_superuser or user.is_admin:
        return HttpResponseRedirect(reverse('admin'))

    return HttpResponseRedirect(reverse("user"))
Exemplo n.º 26
0
def like(request, pk):
    Post = MyPost.objects.get(pk=pk)
    Postlike.objects.create(Post=Post, liked_by=request.user.myprofile)
    return HttpResponseRedirect(redirect_to="/home")
Exemplo n.º 27
0
 def get(self, request, *args, **kwargs):
     return HttpResponseRedirect(get_model_url(self.get_object()))
Exemplo n.º 28
0
def unlike(request, pk):
    Post = MyPost.objects.get(pk=pk)
    Postlike.objects.filter(Post=Post, liked_by=request.user.myprofile).delete()
    return HttpResponseRedirect(redirect_to="/home")
Exemplo n.º 29
0
def commissione_manage(request, commissione_id, commissione, commissione_user):
    """
    commissione argument comes from decorator @user_in_commission
    commissione_user argument comes from decorator @user_in_commission
    """
    commissioni_utente = CommissioneGiudicatriceUsers.objects.filter(
        user=request.user, user__is_active=True)
    commissioni = get_commissioni_attive(request.user)
    commissioni_in_corso = get_commissioni_in_corso(request.user, commissioni)

    bando = commissione.bando
    domande_bando = DomandaBando.objects.filter(bando=bando).order_by(
        '-punteggio_calcolato', '-numero_protocollo', '-created')

    posizioni_economiche = PosizioneEconomica.objects.all()
    livelli_posizione = None

    if request.GET.get('search') is not None:
        request.session['search'] = request.GET.get('search')
    if request.GET.get('poseco') is not None:
        request.session['poseco'] = request.GET.get('poseco')
    if request.GET.get('livello') is not None:
        request.session['livello'] = request.GET.get('livello')

    search = request.session.get('search')
    poseco = request.session.get('poseco')
    livello = request.session.get('livello')

    if search:
        domande_bando = domande_bando.filter(
            Q(dipendente__matricola__icontains=search)
            | Q(dipendente__nome__icontains=search)
            | Q(dipendente__cognome__icontains=search)
            | Q(numero_protocollo=search))
    if poseco:
        livelli_posizione = LivelloPosizioneEconomica.objects.filter(
            posizione_economica__nome=poseco)

        if livello:
            domande_bando = domande_bando.filter(
                dipendente__livello__posizione_economica__nome=poseco,
                dipendente__livello__nome=livello)
        else:
            domande_bando = domande_bando.filter(
                dipendente__livello__posizione_economica__nome=poseco)

    if request.method == 'POST':
        # azione di calcolo punteggio
        if request.POST.get('calcola_punteggio'):
            num = 0
            failed = 0
            msg_err = 'Sono incorsi errori nel calcolare {}: {}'
            msg_ok = '{}, punteggio: {}'
            for domanda_bando in domande_bando:
                try:
                    punteggio = domanda_bando.calcolo_punteggio_domanda(
                        save=True)[1]
                    num += 1
                    msg = msg_ok.format(domanda_bando,
                                        domanda_bando.punteggio_calcolato)
                    LogEntry.objects.log_action(
                        user_id=request.user.pk,
                        content_type_id=ContentType.objects.get_for_model(
                            domanda_bando).pk,
                        object_id=domanda_bando.pk,
                        object_repr=domanda_bando.__str__(),
                        action_flag=CHANGE,
                        change_message=msg)
                except Exception as e:
                    messages.add_message(
                        request, messages.ERROR,
                        msg_err.format(domanda_bando.__str__(), e.__str__()))
                    failed += 1
            if num:
                messages.add_message(
                    request, messages.INFO,
                    '{} Punteggi calcolati su un totale di {}'.format(
                        num, failed + num))
        # Per evitare che al refresh
        # possa essere effettuata una nuova richiesta POST
        url = reverse('gestione_peo:manage_commissione', args=[commissione_id])
        return HttpResponseRedirect(url + "?" + request.GET.urlencode())

    url_commissioni = reverse('gestione_peo:commissioni')
    url_commissione = reverse('gestione_peo:dettaglio_commissione',
                              args=[commissione_id])
    page_url = reverse('gestione_peo:manage_commissione',
                       args=[commissione_id])
    _breadcrumbs.reset()
    _breadcrumbs.add_url((url_commissioni, 'Commissioni'))
    _breadcrumbs.add_url((url_commissione, commissione))
    _breadcrumbs.add_url((page_url, 'Gestione domande'))

    d = {
        'breadcrumbs': _breadcrumbs,
        'commissione': commissione,
        'commissioni': commissioni,
        'commissioni_in_corso': commissioni_in_corso,
        'domande': domande_bando,
        'livelli_posizione': livelli_posizione,
        'posizioni_economiche': posizioni_economiche,
    }
    return render(request, "commissione_manage.html", context=d)
Exemplo n.º 30
0
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url, include
from django.urls import path
from django.http.response import HttpResponseRedirect
from django.contrib import admin

from rest_framework_jwt.views import obtain_jwt_token
from rest_framework_jwt.views import verify_jwt_token

app_name = 'Anomologita'

urlpatterns = [
    path('', lambda r: HttpResponseRedirect('api/')),
    #path('api-auth/', include('rest_framework.urls')),
    path('rest-auth/registration/', include('rest_auth.registration.urls')),
    path('rest-auth/', include('rest_auth.urls')),
    path('admin/', admin.site.urls),
    path('api-token-auth/', obtain_jwt_token),
    path('api-token-verify/', verify_jwt_token),
    path('api/', include('Anomologita.urls')),
]