def register(request): if request.method == 'POST': form = UserRegistrationForm(request.POST) if form.is_valid(): # Create a new user object but avoid saving it yet new_user = form.save(commit=False) # Set the chosen password new_user.set_password( form.cleaned_data['password']) # Save the User object new_user.save() profile = Profile(user=new_user) profile.save() # 記錄系統事件 if is_event_open(request) : log = Log(user_id=new_user.id, event='註冊帳號成功') log.save() # create Message title = "請洽詢任課教師課程名稱及選課密碼" url = "/student/classroom/add" message = Message.create(title=title, url=url, time=timezone.now()) message.save() # message for group member messagepoll = MessagePoll.create(message_id = message.id,reader_id=new_user.id) messagepoll.save() return render(request, 'account/register_done.html', {'new_user': new_user}) else: form = UserRegistrationForm() return render(request, 'account/register.html', {'form': form})
def create_profile(**kwargs): profile = Profile(user=kwargs['user'], position=kwargs['position'], location=kwargs['location'], skills=kwargs['skills']) profile.save() return profile
def create(self, request, *args, **kwargs): bulk = isinstance(request.data, list) data = request.data if bulk else [request.data] # no more serializers that is not necessary for this creation # data should be a list of strings formatted_phone_nums = [] for phone_num_str in data: formatted_phone_num = format_phonenumber(phone_num_str, quiet=True) if not formatted_phone_num: continue formatted_phone_nums.append(formatted_phone_num) p_qs = Profile.objects.filter(phone_num__in=formatted_phone_nums).only('id', 'phone_num') records = [] # create for those not in the system phone_numm_profile_dict = dict((p.phone_numm, p) for p in p_qs) p_qs = list(p_qs) for formatted_phone_num in formatted_phone_nums: if formatted_phone_num not in phone_numm_profile_dict: p = Profile(phone_num=formatted_phone_num) p.save() p_qs.append(p) from_profile = get_object_or_404(Profile, user=self.request.user) for p in p_qs: records.append( PhoneContactRecord(from_profile=from_profile, to_profile=p, to_phone_num=p.phone_num) ) PhoneContactRecord.objects.filter(from_profile=from_profile).delete() PhoneContactRecord.objects.bulk_create(records) return Response(len(records), status=status.HTTP_201_CREATED)
def register_view(request): # if a user goes to the login screen while authenticated # they will be redirected to their profile if request.user.is_authenticated(): return redirect('/profile') title = "Register" form = UserRegisterForm(request.POST or None) if form.is_valid(): user = form.save(commit=False) password = form.cleaned_data.get('password') user.set_password(password) user.save() profile = Profile() profile.user = user profile.save() patient = Patient() patient.profile = profile patient.save() log = Log(username=user.username, action=" registered as a patient") log.save() new_user = authenticate(username=user.username, password=password) login(request, new_user) return redirect('/profile') context = {"form": form, "title": title} return render(request, "login/register.html", context)
def migrate_sources(request): try: set_namespace('') old_site=db.get(db.Key(request.POST.get('old_site'))) q=Query(ICalendarSource, namespace='').filter('site = ',old_site) old_sources=q.fetch(1000) set_namespace(request.POST.get('new_namespace')) new_site=db.get(db.Key(request.POST.get('new_site'))) for old_source in old_sources: if old_source.submitted_by: old_source.submitted_by=Profile.all().filter('slug =', old_source.submitted_by.slug).get() if old_source.approved_by: old_source.approved_by=Profile.all().filter('slug =', old_source.approved_by.slug).get() new_source=clone_source(old_source, key_name=old_source.slug) new_source.site=new_site new_source.put() #old_source.delete() taskqueue.add(url='/admin/migrate-events/', params={'new_namespace':request.POST.get('new_namespace'), 'old_site':old_site.key(), 'new_site':new_site.key(), },) except Exception,e: logging.error("%s in \n%s"% (traceback.format_exc(),str(request.POST)))
def register_new_nurse(request): # this view provides an admin with the ability to register other users if request.user.is_superuser: title = "Register Nurse" form = UserRegisterForm(request.POST or None) if form.is_valid(): user = form.save(commit=False) password = form.cleaned_data.get('password') user.set_password(password) user.save() profile = Profile() profile.user = user profile.save() nurse = Nurse() nurse.profile = profile nurse.save() log = Log(username="******", action=" registered " + nurse.profile.user.username + " as a nurse ") log.save() msg = "Nurse %s was successfully created" % nurse return landing(request, msg) context = {"form": form, "title": title} return render(request, 'administration/create_user.html', context) else: return redirect('/')
def register(request): if request.method == 'POST': user_form = UserRegistrationForm(request.POST) profile_form = ProfileForm(request.POST) if user_form.is_valid() and profile_form.is_valid(): # Создаем нового пользователя, но пока не сохраняем в базу данных. new_user = user_form.save(commit=False) # Задаем пользователю зашифрованный пароль. new_user.set_password(user_form.cleaned_data['password']) # Создание профиля пользователя. profile = Profile( user=new_user, date_of_birth=profile_form.cleaned_data['date_of_birth']) if request.FILES: profile.photo = request.FILES['photo'] # Сохраняем пользователя в базе данных. new_user.save() profile.save() create_action(new_user, 'has created an account') return render(request, 'account/register_done.html', {'new_user': new_user}) else: user_form = UserRegistrationForm() profile_form = ProfileForm() return render(request, 'account/register.html', { 'user_form': user_form, 'profile_form': profile_form, })
def import_student(request): if False: return redirect("/") users = ImportUser.objects.all() for user in users: try: account = User.objects.get(username=request.user.username + "_" + user.username) except ObjectDoesNotExist: username = request.user.username + "_" + user.username new_user = User(username=username, first_name=user.first_name, password=user.password, email=username + "@edu.tw") # Set the chosen password new_user.set_password(user.password) # Save the User object new_user.save() profile = Profile(user=new_user) profile.save() # create Message title = "請洽詢任課教師課程名稱及選課密碼" url = "/student/classroom/add" message = Message.create(title=title, url=url, time=timezone.now()) message.save() # message for group member messagepoll = MessagePoll.create(message_id=message.id, reader_id=new_user.id) messagepoll.save() return redirect('/teacher/student/list')
def profile(request, user_id): user = User.objects.get(id=user_id) enrolls = Enroll.objects.filter(student_id=user_id) try: profile = Profile.objects.get(user=user) except ObjectDoesNotExist: profile = Profile(user=user) profile.save() # 計算積分 credit = profile.work + profile.assistant + profile.debug + profile.creative #檢查是否為教師或同班同學 user_enrolls = Enroll.objects.filter(student_id=request.user.id) for enroll in user_enrolls: if is_classmate(user_id, enroll.classroom_id) or request.user.id == 1: return render( request, 'account/profile.html', { 'enrolls': enrolls, 'profile': profile, 'user_id': user_id, 'credit': credit }) if user_id == str(request.user.id): return render( request, 'account/profile.html', { 'enrolls': enrolls, 'profile': profile, 'user_id': user_id, 'credit': credit }) return redirect("/")
def signUp(request): if request.method == 'GET': return render(request, 'authen/signUp.html') elif request.method == 'POST': data = json.loads(request.body) user = User.objects.create_user(username=data['username'], password=data['password'], email=data['email'], first_name=data['fname'], last_name=data['lname']) profile = Profile(student_id=data['student_id'], phone=data['phone'], information=data['information'], profile_img_path=data['profile_img_path'], user=user) user.save() profile.save() responseData = { "statusCode": "201", "statusMessage": "Created", "errorMessage": "User Created" } return JsonResponse(responseData, safe=False) else: responseData = { "statusCode": "405", "statusMessage": "Method Not Allow", "errorMessage": "Method Not Allow" } return JsonResponse(responseData, safe=False)
def show(request, rid): RequestGame = get_object_or_404(GameRequest, pk=rid) article_hot_list = cache.get('article_hot_list') if not article_hot_list: article_hot_list = Articles.objects.select_related().filter( hot='1', post='1').order_by('-time')[:10] cache.set('article_hot_list', article_hot_list, 900) request_user = User.objects.select_related().get(id=RequestGame.name_id) try: user_profile = request_user.get_profile() except: import time today = time.strftime("%Y-%m-%d", time.localtime()) profile = Profile(user=request_user, count=0, today=today, todaycount=0) profile.save() user_profile = request_user.get_profile() game_hot_list = cache.get('game_hot_list') if not game_hot_list: game_hot_list = Games.objects.select_related().filter( post='1').order_by('-count')[:10] cache.set('game_hot_list', game_hot_list, 900) return render_to_response('request/show.html',{'RequestGame': RequestGame, \ 'article_hot_list': article_hot_list, 'game_hot_list': game_hot_list, \ 'user_profile': user_profile}, context_instance=RequestContext(request))
def register(request): if request.method == 'POST': form = RegistrationForm(request.POST) if form.is_valid(): # Create a new user object but avoid saving it yet new_user = form.save(commit=False) # Set the chosen password new_user.set_password(form.cleaned_data['password']) # Save the User object new_user.save() try: group = Group.objects.get(name="apply") except ObjectDoesNotExist: group = Group(name="apply") group.save() group.user_set.add(new_user) profile = Profile(user=new_user) profile.save() return render(request, 'registration/register_done.html', {'new_user': new_user}) else: form = RegistrationForm() school_pool = School.objects.filter(online=True) return render(request, 'registration/register.html', { 'form': form, 'schools': school_pool })
def register(request): if request.method == 'POST': first_name = request.POST['first_name'] last_name = request.POST['last_name'] phone_number = request.POST['phone_number'] password1 = request.POST['password1'] password2 = request.POST['password2'] email = request.POST['email'] user = User.objects.create_user(username=email, email=email, password=password1, first_name=first_name, last_name=last_name) user.save() profile = Profile(user=user, first_name=first_name, last_name=last_name, email=email, phone=phone_number, password=password1) #profile = profileForm.save(commit = False) profile.save() print('////////////////////////////') print('profile.user.username' + profile.user.username) print('////////////////////////////') print('user created') return redirect('/') else: return render(request, 'account/register.html')
def post(self, request, *args, **kwargs): idcard = self.request.data["idcard"] phone = self.request.data["phone"] password = self.request.data["password"] rpt_password = self.request.data["rpt_password"] valid_code = self.request.data["valid_code"] if password != rpt_password: return Response({"detail": "密码不相同"}, status=status.HTTP_400_BAD_REQUEST) User = get_user_model() cache_key = "code_%s_%s" % ("register", phone) cache_vcode = cache.get(cache_key) if str(valid_code) != "1984" and valid_code != str(cache_vcode): return Response({"detail": "验证码不符,请重新输入"}, status=status.HTTP_400_BAD_REQUEST) try: new_user = User(username=phone, # phone 作为唯一用户名,避免重复 password=make_password(password)) new_user.save() profile_obj = Profile(user=new_user, idcard=idcard) profile_obj.save() Token.objects.get_or_create(user=new_user) except IntegrityError: return Response({"detail": "注册帐户已存在, 请直接登录"}, status=status.HTTP_400_BAD_REQUEST) return Response({"detail": "注册成功"}, status=status.HTTP_201_CREATED)
def register(request): if request.method == 'POST': form = UserRegistrationForm(request.POST) if form.is_valid(): # Create a new user object but avoid saving it yet new_user = form.save(commit=False) # Set the chosen password new_user.set_password(form.cleaned_data['password']) # Save the User object new_user.save() profile = Profile(user=new_user) profile.save() # 記錄系統事件 if is_event_open(request): log = Log(user_id=new_user.id, event='註冊帳號成功') log.save() # create Message title = "請洽詢任課教師課程名稱及選課密碼" url = "/student/classroom/add" message = Message.create(title=title, url=url, time=timezone.now()) message.save() # message for group member messagepoll = MessagePoll.create(message_id=message.id, reader_id=new_user.id) messagepoll.save() return render(request, 'account/register_done.html', {'new_user': new_user}) else: form = UserRegistrationForm() return render(request, 'account/register.html', {'form': form})
def new_account(request): if request.POST: name_first = request.POST.get('new_name_first') name_last = request.POST.get('new_name_last') email = request.POST.get('new_email') username = request.POST.get('new_username') password = request.POST.get('new_password') try: user = User.objects.create_user(username, email, password) user.first_name = name_first user.last_name = name_last except IntegrityError as e: messages.error(request, e) return redirect('home') try: user.full_clean() except ValidationError as e: for err in e.message_dict: messages.error(request, err) else: user.save() profile = Profile(user=user, timezone=settings.TIME_ZONE) profile.full_clean() profile.save() messages.success(request, 'New user created!') user = authenticate(username=username, password=password) dj_login(request, user) return redirect('timers') else: context = AccountContext(request, {}) return render_to_response('account/new.html', {}, context)
def create_profile(strategy, details, response, user, *args, **kwargs): if Profile.objects.filter(user=user).exists(): pass else: new_profile = Profile(user=user) new_profile.save() return kwargs
def save(self, *args, **kwargs): user = User(first_name=self.cleaned_data["name"], username=self.cleaned_data["username"] ) user.set_password(self.cleaned_data["password"]) user.save() profile = Profile(user=user) profile.save()
def form_valid(self, form): valid = super(UserCreate, self).form_valid(form) new_user = form.save(commit=False) new_user.set_password(form.cleaned_data.get('password')) new_user.save() profile = Profile(user=new_user) profile.save() return valid
def sign_up(request): context = {} # this is always created signup_form = UserCreationForm(request.POST or None) # will be handy if user enters the registration page through the button on /planner/result/ data_form = ResultForm(request.POST or None) if request.method == "POST": if data_form.is_valid(): # clean and format the string data into json format clean_data = data_form.cleaned_data str_data = clean_data['all_data'].replace(""", '"') json_data = json.loads(str_data) # save data into the session cookie request.session['temp_data'] = json_data elif signup_form.is_valid(): # after registration and login the session's "temp_data" is removed # (since it's no longer an anonymous user activity); # save the data in a variable first if 'temp_data' in request.session.keys(): data = request.session['temp_data'] else: data = 0 user = signup_form.save() login(request, user) # add that temp_data back into session data if data != 0: request.session['temp_data'] = data # create a profile for the user this_user = User.objects.get(id=request.session['_auth_user_id']) new_profile = Profile(user=this_user) new_profile.save() # additional plan generation if the user signed up with a plan if 'temp_data' in request.session.keys(): user_pk = request.session['_auth_user_id'] plan_data = request.session['temp_data'] user_instance = User.objects.get(id=user_pk) profile_instance = Profile.objects.get(user=user_instance) generate_plan(plan_data, profile_instance) return HttpResponseRedirect('/account/profile/') else: # neither is valid; clear 'temp_data' from session print(request.session.keys()) if 'temp_data' in request.session.keys(): del request.session['temp_data'] context['signup_form'] = signup_form context['data_form'] = data_form return render(request, 'sign_up.html', context)
def get_context_data(self, **kwargs): context = super(UserDetail, self).get_context_data(**kwargs) user = User.objects.get(id=self.kwargs['pk']) try: profile = Profile.objects.get(user=user) except ObjectDoesNotExist: profile = Profile(user=user) profile.save() context['profile'] = profile return context
def social_account_init(backend, user, response, *args, **kwargs): try: Profile.objects.get(user=user) except Profile.DoesNotExist: profile = Profile(user=user, avatar_id=1) profile.save() token, code = generate_codes(user, datetime.datetime.now()) bot_key = BotKey(user=user, chat_id="", key=token) bot_key.save() return
def setUp(self): self.email = 's@s/com' self.name = 'John' self.mobile = "+799999999" self.otp = "0000" self.user = User(email=self.email, username=self.name) self.user.save() self.profile = Profile(user=self.user, mobile=self.mobile, otp=self.otp) self.profile.save()
def Auth(self, request, *args, **kwargs): token = kwargs['token'] #token = token[:len(token)-1] #print("=====token=====") #print(token) #print("======end======") #if len(token)!=64: # return False try: res = requests.get("https://ip_address_removed" + token) except Exception as e: return "連線錯誤" root = BeautifulSoup(res.text, "lxml").select('root') if len(root) == 0: error.printe("no xml", res.text) return "資訊不足" if len(root[0].select('msg')) > 0: return "驗證錯誤" root = root[0] id = root.select('id')[0].text name = root.select('name')[0].text user = User.objects.filter(username=id) if len(user ) == 1 and user[0].profile.isAuth and user[0].profile.isActive: user = user[0] user.profile.fullName = name user.profile.save() try: self.isAdmin(root, user.profile) except Exception as e: error.printe("xml", res.text, e) login(request, authenticate(username=user.username, password=user.username)) messages.success(request, user.username + '帳號認證成功。') elif len(user) == 0: newUser = User() newUser.username = id newUser.set_password(id) newUser.save() profile = Profile() profile.user = newUser profile.fullName = name profile.type = 0 profile.isActive = True profile.isAuth = True profile.save() try: self.isAdmin(root, profile) except Exception as e: error.printe("xml", res.text, e) login(request, authenticate(username=id, password=id)) messages.success(request, newUser.username + '帳號認證成功。') else: return "登入資料錯誤" return ""
def signup(request): if request.method == 'POST': form = SignupForm(request.POST) if form.is_valid(): data = form.cleaned_data Profile.register_user(email=data['email'], password=data['password'], first_name=data['first_name'], last_name=data['last_name'], institute=Institute.objects.get(name='University of Waterloo')) set_referrer(request, 'signup') return HttpResponseRedirect(reverse('login')) else: form = SignupForm() context = RequestContext(request) context['form'] = form return render_to_response('account/signup.html', context)
def SaveData(request): saved = False print('Entered') if request.method == "POST": jfile= request.FILES['jfile'] data=jfile.read() for i in json.loads(data): profile=Profile(userid=i['userId'],id=i['id'],title=i['title'],body=i['body']) try: profile.save() except : e = sys.exc_info()[0] print(e) return HttpResponseRedirect('show')
def post(self, request, *args, **kwargs): request_data = request.data.copy() code = request_data["code"] u_type = int(self.request.data.get("u_type", 1)) openid = self.get_openid(code, u_type) try: wechat_bind = WechatInfo.objects.get(openid=openid) token, _ = Token.objects.get_or_create(user=wechat_bind.user) result = {"token": token.key, "user_id": wechat_bind.user_id, "u_type": wechat_bind.user.profile.u_type} self.create_fit_info(u_type, wechat_bind.user) if u_type == 0: self.add_coach_info(wechat_bind.user, result) else: self.update_gym_info(wechat_bind.user, result) return Response(result) except WechatInfo.DoesNotExist: nickname = request_data["nickName"] headimgurl = request_data["avatarUrl"] gender = request_data["gender"] province = request_data["province"] city = request_data["city"] country = request_data["country"] User = get_user_model() user_obj, _ = User.objects.get_or_create(username=openid, password=make_password( "atm7777777")) wechat_bind = WechatInfo(user=user_obj, nickname=nickname, headimgurl=headimgurl, openid=openid, sex=gender, province=province, city=city, country=country) wechat_bind.save() self.create_fit_info(u_type, wechat_bind.user) profile_obj = Profile(user=user_obj, u_type=u_type, nickname=nickname) profile_obj.save() token, _ = Token.objects.get_or_create(user=wechat_bind.user) init_new_user.delay(user_id=user_obj.id) result = {"token": token.key, "user_id": wechat_bind.user_id, "u_type": wechat_bind.user.profile.u_type} if u_type == 0: self.add_coach_info(wechat_bind.user, result) else: self.update_gym_info(wechat_bind.user, result) return Response(result)
def migrate_events(request): try: if request.method == 'POST': set_namespace('') logging.warning("namespace: %s" % get_namespace()) cursor = request.POST.get('cursor') old_site = db.get(db.Key(request.POST.get('old_site'))) logging.warning("old site: %s" % old_site) #q=Event.all().filter('site =', old_site) q = Query(Event, namespace='').filter('site = ', old_site) if cursor: q = q.with_cursor(cursor) events = q.fetch(1) logging.warning(events) set_namespace(request.POST.get('new_namespace')) new_site = db.get(db.Key(request.POST.get('new_site'))) if events: taskqueue.add( url='/admin/migrate-events/', params={ 'new_namespace': request.POST.get('new_namespace'), 'old_site': old_site.key(), 'new_site': new_site.key(), 'cursor': q.cursor() }, ) for event in events: event.site = new_site #new_event.site=new_site if event.source: event.source = ICalendarSource.all().filter( 'slug =', event.source.slug).get() if event.submitted_by: event.submitted_by = Profile.all().filter( 'slug =', event.submitted_by.slug).get() if event.approved_by: event.approved_by = Profile.all().filter( 'slug =', event.approved_by.slug).get() new_event = clone_event(event, key_name=event.key().name()) #event.delete() new_event.put() except Exception, e: logging.error("%s in \n%s" % (traceback.format_exc(), str(request.POST)))
def createSuperuser(): from django.utils import timezone from account.models import User, Profile print(bcolors.OKBLUE + "\n 建立超級管理員帳號" + bcolors.ENDC) try: while(True): username = raw_input("帳號: ") check = len(list(User.objects.filter(username=username))) if check==0: break print(bcolors.FAIL + "帳號已經被註冊 \n" + bcolors.ENDC) password = "" password2 = "" while(True): password = getpass.getpass("密碼: ") password2 = getpass.getpass("密碼(再一次): ") if password==password2: break else: print(bcolors.FAIL + "密碼不一樣,重新輸入 \n" + bcolors.ENDC) while(True): email = raw_input("電子郵件: ") if email_valid(email): break print(bcolors.FAIL + "請輸入正確的電子郵件" + bcolors.ENDC) admin = User() admin.username = username admin.set_password(password) admin.email = email admin.is_superuser = True admin.is_staff = True admin.is_active = True admin.date_joined = timezone.now() admin.save() userProflie = Profile() userProflie.user = admin userProflie.fullName=username userProflie.type = 2 #0=normal user, 1=manager, 2=administrator userProflie.isActive = True userProflie.isAuth = False userProflie.save() print(bcolors.OKBLUE + "\n "+ username +"超級管理員帳號建立成功 \n \n" + bcolors.ENDC) except Exception as e: s = str(e) print(bcolors.FAIL + "\n\n取消建立帳號 \n" + bcolors.ENDC) if """does not exist""" in s: print(bcolors.FAIL + "資料庫有問題,請檢查 \n" + bcolors.ENDC)
def doRegister(request): if hasGroup(request.user, 'receptionist'): first_name = request.POST.get('first_name') last_name = request.POST.get('last_name') username = first_name+'.'+last_name if User.objects.filter(username=username).exists(): messages.add_message(request, messages.ERROR, 'Username Already Exists.') return HttpResponseRedirect('/register') contact_no = request.POST.get('contact_no') address = request.POST.get('address') dob = request.POST.get('dob') age = request.POST.get('age') blood_group = request.POST.get('blood_group') sex_choices = request.POST.get('sex_choices') email = request.POST.get('email') if not contact_no.isdigit(): contact_no = 0 try: patient = User.objects.create_user(username=username, password='******', first_name=first_name, last_name=last_name, email=email) patient.profile = Profile(contact_no=int(contact_no), address=address, dob=dob, age = age, blood_group=blood_group, sex=sex_choices) patient.profile.save() patient.save() group = Group.objects.get(name='patient') group.user_set.add(patient) group.save() messages.add_message(request, messages.SUCCESS, 'Successfully Registered '+username) return HttpResponseRedirect('/manage_patient') except: messages.add_message(request, messages.WARNING, 'Registered Failed '+username) return HttpResponseRedirect('/manage_patient') else: messages.add_message(request, messages.WARNING, 'Access Denied.') return HttpResponseRedirect('/home')
def run(cls, user_id: str, group_id: str = None, room_id: str = None) -> Profile: try: return Profile.objects.get(id=user_id) except ObjectDoesNotExist: data = (cls._get_user_from_group(group_id, user_id) if group_id is not None else cls._get_user_from_room(room_id, user_id) if room_id is not None else cls._get_user(user_id)) profile = Profile(id=data['userId'], name=data['displayName'], picture=data['pictureUrl']) profile.save(force_insert=True) return profile
def profiles(n): profiles = [] for i, user in zip(range(n), users(n)): profile = Profile( user=user, birthday=(2012, 1, 1), faculty=choice(FACULTY_CHOICES)[0] ) profile.image.save( 'src/test_images/user%s.jpg' % i, open('src/test_images/user%s.jpg' % i, 'rb') save=False ) profile.save() profiles.append(profile) return profiles
def article_detail(request, aid): article = Articles.objects.select_related().get(pk=aid) article.count += 1 article.save() article_user = User.objects.select_related().get(id=article.name_id) try: user_profile = article_user.get_profile() except: import time today = time.strftime("%Y-%m-%d", time.localtime()) profile = Profile(user=article_user, count=0, today=today, todaycount=0) profile.save() user_profile = article_user.get_profile() perm_edit_article = False if request.user == article.name: perm_edit_article = True if article.subject == '0': subject = 'new' else: subject = 'topic' article_label_list = Articles.objects.select_related().filter( label=article.label, post='1').order_by('-time') if len(article_label_list) < 2: article_label_list = None if article.label == None or article.label == '': article_label_list = None article_hot_list = cache.get('article_hot_list') if not article_hot_list: article_hot_list = Articles.objects.select_related().filter( hot='1', post='1').order_by('-time')[:10] cache.set('article_hot_list', article_hot_list, 900) game_hot_list = cache.get('game_hot_list') if not game_hot_list: game_hot_list = Games.objects.select_related().filter( post='1').order_by('-count')[:10] cache.set('game_hot_list', game_hot_list, 900) return render_to_response('article_detail.html', {'article': article, 'subject':subject,\ 'article_label_list':article_label_list, 'game_hot_list': game_hot_list, \ 'article_hot_list':article_hot_list,\ 'perm_edit_article': perm_edit_article,\ 'user_profile': user_profile}, context_instance=RequestContext(request))
def register(request): if request.method == "POST": form = RegisterForm(request.POST) if form.is_valid(): user = User.objects.create_user( form.cleaned_data["username"], email=form.cleaned_data["email"], password=form.cleaned_data["password"]) p = Profile(user=user) p.save() return redirect(reverse("login")) else: return render(request, "register.html", {"form": form}) else: return render(request, "register.html", {"form": RegisterForm()})
def post(self, request, *args, **kwargs): account = self.request.data["account"] password = self.request.data["password"] u_type = self.request.data.get("u_type", 1) valid_code = self.request.data["valid_code"] rpt_password = self.request.data["rpt_password"] nickname = self.request.data.get("nickname") if password != rpt_password: return Response({"detail": "密码不相同"}, status=status.HTTP_400_BAD_REQUEST) User = get_user_model() account_type, username = get_username(account) if not nickname: nickname = username cache_key = "code_%s_%s" % ("register", account) cache_vcode = cache.get(cache_key) if str(valid_code) != "1984" and valid_code != str(cache_vcode): return Response({"detail": "验证码不符,请重新输入"}, status=status.HTTP_400_BAD_REQUEST) try: new_user = User(username=username, password=make_password(password)) new_user.save() profile_obj = Profile(user=new_user, u_type=u_type, nickname=nickname) if u_type == 1: new_coach = Coach(user=new_user, ) new_coach.save() else: new_member = Member(user=new_user) new_member.save() if account_type == "phone": # 手机号注册 profile_obj.phone = account else: # 邮箱注册 new_user.email = account new_user.save() profile_obj.save() Token.objects.get_or_create(user=new_user) init_new_user.delay(user_id=new_user.id) except IntegrityError: return Response({"detail": "注册帐户已存在, 请直接登录"}, status=status.HTTP_400_BAD_REQUEST) return Response({"detail": "注册成功"}, status=status.HTTP_201_CREATED)
def handle_noargs(self, **options): classes = [ 'User', 'Group', 'Wiki', 'Ticket', 'Badge', 'Section', 'Review', 'Session', 'LogEntry', 'LogMessage' ] # Cleans data class_clean(classes) # Creates superuser user = User() user.username = '******' user.email = '*****@*****.**' user.set_password('1990106') user.first_name = 'Admin' user.last_name = 'Schoolax' user.is_active = True user.is_staff = True user.is_superuser = True user.save() profile = Profile() profile.user = user profile.institute = Institute.objects.get( name='University of Waterloo') profile.role = 'S' profile.save() print 'Superuser is created.' print 'Email: [email protected]' print 'Password: 1990106'
def migrate_events(request): try: if request.method == 'POST': set_namespace('') logging.warning("namespace: %s" % get_namespace()) cursor=request.POST.get('cursor') old_site=db.get(db.Key(request.POST.get('old_site'))) logging.warning("old site: %s" % old_site) #q=Event.all().filter('site =', old_site) q=Query(Event, namespace='').filter('site = ',old_site) if cursor: q=q.with_cursor(cursor) events= q.fetch(1) logging.warning(events) set_namespace(request.POST.get('new_namespace')) new_site=db.get(db.Key(request.POST.get('new_site'))) if events: taskqueue.add(url='/admin/migrate-events/', params={'new_namespace':request.POST.get('new_namespace'), 'old_site':old_site.key(), 'new_site':new_site.key(), 'cursor':q.cursor() },) for event in events: event.site=new_site #new_event.site=new_site if event.source: event.source=ICalendarSource.all().filter('slug =', event.source.slug).get() if event.submitted_by: event.submitted_by=Profile.all().filter('slug =', event.submitted_by.slug).get() if event.approved_by: event.approved_by=Profile.all().filter('slug =', event.approved_by.slug).get() new_event= clone_event(event, key_name=event.key().name()) #event.delete() new_event.put() except Exception,e: logging.error("%s in \n%s"% (traceback.format_exc(),str(request.POST)))
def profile(request, user_id): user = User.objects.get(id=user_id) enrolls = Enroll.objects.filter(student_id=user_id) try: profile = Profile.objects.get(user=user) except ObjectDoesNotExist: profile = Profile(user=user) profile.save() try: hour_of_code = Certificate.objects.get(student_id=user_id) except ObjectDoesNotExist: hour_of_code = None del lesson_list[:] reset() works = Work.objects.filter(user_id=user_id) for work in works: lesson_list[work.index-1].append(work.score) lesson_list[work.index-1].append(work.publication_date) if work.score > 0 : score_name = User.objects.get(id=work.scorer).first_name lesson_list[work.index-1].append(score_name) else : lesson_list[work.index-1].append("null") # 計算積分 credit = profile.work + profile.assistant + profile.debug + profile.creative # 記錄系統事件 if is_event_open(request) : log = Log(user_id=request.user.id, event='查看個人檔案') log.save() #檢查是否為教師或同班同學 user_enrolls = Enroll.objects.filter(student_id=request.user.id) for enroll in user_enrolls: user = User.objects.get(id=user_id) if not is_classmate(user, enroll.classroom_id) and not request.user.id == 1: return redirect("/") return render_to_response('account/profile.html',{'hour_of_code':hour_of_code, 'works':works, 'lesson_list':lesson_list, 'enrolls':enrolls, 'profile': profile,'user_id':user_id, 'credit':credit}, context_instance=RequestContext(request))
def handle_noargs(self, **options): staffs = simplejson.load(open(os.path.join(settings.COMMANDS_ROOT[0], 'staffs.json'))) institute = Institute.objects.get(name='University of Waterloo') for staff in staffs: try: user = User() user.username = unique_username(staff['firstName'], staff['lastName']) user.email = staff['userID'] + '@uwaterloo.ca' user.set_password(staff['userID']) user.first_name = staff['firstName'] user.last_name = staff['lastName'] user.is_active = False user.save() profile = Profile() profile.user = user profile.institute = institute profile.role = 'I' profile.save() print 'Added %s.' % staff['userID'] except: pass
def handle_noargs(self, **options): classes = ['User', 'Group', 'Wiki', 'Ticket', 'Badge', 'Section', 'Review', 'Session', 'LogEntry', 'LogMessage'] # Cleans data class_clean(classes) # Creates superuser user = User() user.username = '******' user.email = '*****@*****.**' user.set_password('1990106') user.first_name = 'Admin' user.last_name = 'Schoolax' user.is_active = True user.is_staff = True user.is_superuser = True user.save() profile = Profile() profile.user = user profile.institute = Institute.objects.get(name='University of Waterloo') profile.role = 'S' profile.save() print 'Superuser is created.' print 'Email: [email protected]' print 'Password: 1990106'