예제 #1
0
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
예제 #3
0
 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)
예제 #4
0
파일: views.py 프로젝트: mxa5473/HealthNet
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)
예제 #5
0
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)))
예제 #6
0
파일: views.py 프로젝트: mxa5473/HealthNet
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('/')
예제 #7
0
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,
        })
예제 #8
0
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')
예제 #9
0
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("/")
예제 #10
0
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)
예제 #11
0
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))
예제 #12
0
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
    })
예제 #13
0
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')
예제 #14
0
 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)
예제 #15
0
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})
예제 #16
0
파일: views.py 프로젝트: peap/djarzeit
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)
예제 #17
0
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
예제 #18
0
 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()
예제 #19
0
 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
예제 #20
0
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)
예제 #21
0
 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
예제 #22
0
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
예제 #23
0
    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()
예제 #24
0
    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 ""
예제 #25
0
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)
예제 #26
0
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')
예제 #27
0
 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)
예제 #28
0
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)))
예제 #29
0
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)
예제 #30
0
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')
예제 #31
0
    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
예제 #32
0
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
예제 #33
0
파일: views.py 프로젝트: plutokamin/pujia8
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))
예제 #34
0
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()})
예제 #35
0
 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)
예제 #36
0
 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'
예제 #37
0
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)))
예제 #38
0
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))	
예제 #39
0
 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
예제 #40
0
 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'