def google_login(request): google_sign_in = google.GoogleSignIn() auth_url = google_sign_in.google_auth() return HttpResponseRedirect(auth_url)
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®ion=%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®ion=%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
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)
def loginredirect(request): user = request.user return HttpResponseRedirect('/') #dashboard
def inactivar_evento(request, evento_id): evento = Evento.objects.get(id=evento_id) evento.estado = 1 evento.save() return HttpResponseRedirect(reverse('programa:lista_programas'))
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())
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"))
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))
def suggestionAccept_view(request, suggestion): suggestion = Suggestion.objects.get(id=suggestion) suggestion.is_accepted = True suggestion.save() return HttpResponseRedirect('/gov/dept/dept-suggestions')
def get(self, request, *args, **kwargs): product = self.get_object().product return HttpResponseRedirect( get_model_url(product, shop=self.request.shop))
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))
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')))
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
def post(self, request, *args, **kwargs): opt = request.POST.get("opt") if opt: telemetry.set_opt_out(opt == "out") return HttpResponseRedirect(request.path)
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())
def is_seen_view(request, issue): issue = CustomerIssue.objects.get(pk=issue) issue.is_seen = True issue.save() return HttpResponseRedirect('/gov/official/')
def get(self, request, **kwargs): return HttpResponseRedirect('/')
def get(self, request, *args, **kwargs): url = reverse("edc_lab_dashboard:home_url") return HttpResponseRedirect(url)
def userLogout(request): logout(request) messages.success(request, "Logout successful") return HttpResponseRedirect('/accounts/')
def logout(request): auth.logout(request) return HttpResponseRedirect('../../../../login')
def customer_dashboard(request): current_user = request.user return HttpResponseRedirect('/business_profile/') return render(request, 'customer_dashboard.html', {'data': 'coming soon'})
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, )))
def add_random_games(request, id): add_data() return HttpResponseRedirect(reverse('league', kwargs={'id': id}))
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")
def index(request): user = request.user if user.is_superuser or user.is_admin: return HttpResponseRedirect(reverse('admin')) return HttpResponseRedirect(reverse("user"))
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")
def get(self, request, *args, **kwargs): return HttpResponseRedirect(get_model_url(self.get_object()))
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")
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)
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')), ]