예제 #1
0
 def _wrapper(handler, *args, **kw):
     logging.info("IN login_required1 is_admin:%s"%users.is_current_user_admin())
     if not users.is_current_user_admin():
         current_user = users.get_current_user()
         admin_user = AdminUser.all().filter('user ='******'gmail_id =', current_user.email()).get()
         logging.info("admin_user step 2: %s"%admin_user)
         if not admin_user:
             logging.info("Redirecting ...")
             handler.redirect(users.create_login_url(handler.request.uri))
             return
     return func(handler, *args, **kw)       
예제 #2
0
def add_user():
    if current_user.email != 'developer':
        return json.dumps({'code': 1, 'msg': 'Access denied for user.'})
    email = request.form.get('email', '')
    password = request.form.get('password', '')
    group_id = request.form.get('group_id', -1)
    if not (email and password):
        email = request.args.get('email', '')
        password = request.args.get('password', '')
        group_id = request.args.get('group_id', -1)
    if not (email and password):
        return json.dumps({
            'code':
            1,
            'msg':
            'miss email or password. email= %s, password=%s' %
            (email, password)
        })
    user = AdminUser.query.filter_by(email=email).first()
    if not user:
        db.session.add(AdminUser(email, utils.hash_pwd(password), group_id))
        db.session.commit()
        return json.dumps({
            'code':
            0,
            'msg':
            'success. email= %s, password=%s' % (email, password)
        })
    else:
        return json.dumps({'code': 1, 'msg': 'user is exist.'})
예제 #3
0
def sign_in(request):
    if request.method == "GET":
        return render(request, 'signIn.html')
    if request.method == "POST":
        account = request.POST.get('account', None)
        password = request.POST.get('password', None)
        if not account or not password:
            return JsonResponse(resultMsg['NeedParameter'])
        try:
            admin_user = AdminUser.objects(account=account).get()
        except AdminUser.DoesNotExist:
            return JsonResponse(resultMsg['NotExistUser'])
        if admin_user.status != "admin":
            return JsonResponse(resultMsg['AdminAuthorityApplying'])
        if admin_user.password == password:
            request.session['currentAdmin'] = {
                'id': str(admin_user.id),
                'nickname': admin_user.nickname,
                'realName': admin_user.realName,
                'avatar': admin_user.avatar,
                'status': admin_user.status
            }
            return JsonResponse(resultMsg['SignInSuccess'])
        else:
            return JsonResponse(resultMsg['ErrorPassword'])
예제 #4
0
    def test_should_have_admin_user_as_addressable(self):
        """
        Prueba que una direccion pueda ser asociada
        a un usuario administrador
        """

        user = AdminUser(email="*****@*****.**", name="nada", last_name="mas")
        user.save()

        address = Address()
        address.street1 = "Cra 7 # 6-19"
        address.addressable_object = user
        address.save()

        address_from_db = Address.objects.get(id=address.id)
        self.assertEqual(address_from_db.addressable_type.name, 'admin user')
예제 #5
0
    def test_should_have_admin_user_as_addressable(self):
        """
        Prueba que una direccion pueda ser asociada
        a un usuario administrador
        """

        user = AdminUser(email="*****@*****.**",
                         name="nada",
                         last_name="mas")
        user.save()

        address = Address()
        address.street1 = "Cra 7 # 6-19"
        address.addressable_object = user
        address.save()

        address_from_db = Address.objects.get(id=address.id)
        self.assertEqual(address_from_db.addressable_type.name, 'admin user')
예제 #6
0
    def register_view(self):
        form = RegistrationForm(request.form)
        if admin_helpers.validate_form_on_submit(form):
            adminuser = AdminUser()

            form.populate_obj(adminuser)

            adminuser.password = generate_password_hash(form.password.data)

            db.session.add(adminuser)

            try:
                db.session.commit()
            except:
                db.session.rollback()

            login.login_user(adminuser)
            return redirect(url_for('.index'))
        return self.render("admin/register.html", form=form)
예제 #7
0
 def post(self):
     try:
         name = self.request.get('name')
         gmail_id = self.request.get('gmail_id')
         _id = self.request.get('id')
         logging.info(">>>>>> gmail_id  : %s"%gmail_id)
         if _id !='':
             adminuser = AdminUser.get_by_id(int(_id))
             adminuser.name = name
             adminuser.gmail_id = gmail_id
             adminuser.save()
         else:                            
             adminuser = AdminUser(name=name, gmail_id = gmail_id, user = None)
             adminuser.put()
         result_dict = {'success':True}
     except:
         result_dict = {'success':False} 
         raise       
     self.response.headers['Content-Type'] = 'application/json'
     self.response.out.write(json.dumps(result_dict))
예제 #8
0
    def get(self):

        try:
            adminUsers = AdminUser.all().order('-created')
            admin_users_array = []
            for admin in adminUsers:
                admin_users_array.append(admin.to_dict())            
            result_dict = {'success':True, 'adminUsers':admin_users_array}
        except:
            result_dict = {'success':False}            
        self.response.headers['Content-Type'] = 'application/json'
        self.response.out.write(json.dumps(result_dict))  
예제 #9
0
def sign_up(request):
    if request.method == "GET":
        return render(request, 'signUp.html')
    if request.method == "POST":
        account = request.POST.get('account', None)
        password = request.POST.get('password', None)
        real_name = request.POST.get('realName', None)
        nickname = request.POST.get('nickname', None)
        phone = request.POST.get('phone', None)
        if not account or not password or not real_name or not nickname or not phone:
            return JsonResponse(resultMsg['NeedParameter'])
        is_exist = AdminUser.objects(account=account).filter().count()
        if is_exist:
            return JsonResponse(resultMsg['ExistUser'])
        admin_user = AdminUser()
        admin_user.account = account
        admin_user.password = password
        admin_user.realName = real_name
        admin_user.nickname = nickname
        admin_user.phone = phone
        admin_user.save()
        print account + "||" + password + "||" + real_name
        return JsonResponse(resultMsg['SignUpSuccess'])
예제 #10
0
def rebuild_database():
    db.drop_all()
    db.create_all()
    admin_user = AdminUser(
        email='*****@*****.**',
        password='******',
        name='Alan Ballesteros',
        added_by_id=None,
        added_by_name=None,
        join_date=time.strftime("%B %d, %Y"),
        timestamp=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S:%f'))
    db.session.add(admin_user)
    db.session.commit()
    return jsonify(status='success'), 201
예제 #11
0
def create_admin(app, csrf):
    from models import db, User, Legislator, AdminUser, UserMessageInfo, Message, MessageLegislator, Topic
    from flask.ext.admin.menu import MenuLink

    admin = Admin(index_view=views.MyAdminIndexView(url=settings.BASE_PREFIX + '/admin'))
    admin.add_link(MenuLink('Logout', url=settings.BASE_PREFIX + '/admin/logout'))
    admin.add_view(User.ModelView(User, db.session))
    admin.add_view(Legislator.ModelView(Legislator, db.session))
    admin.add_view(AdminUser.ModelView(AdminUser, db.session))
    admin.add_view(UserMessageInfo.ModelView(UserMessageInfo, db.session))
    admin.add_view(Message.ModelView(Message, db.session))
    admin.add_view(MessageLegislator.ModelView(MessageLegislator, db.session))
    admin.add_view(Topic.ModelView(Topic, db.session))

    return admin
예제 #12
0
파일: views.py 프로젝트: cash2one/tstpthon
def profile(request):
    c = {}
    c.update(csrf(request))
    uid = request.session['uid']
    try:
        u = AdminUser.objects.get(pk=uid)
        if request.method == 'POST':
            u.email = request.POST["email"]
            u.mobile = request.POST["mobile"]
            u.realname = request.POST["realname"]
            try:
                u.save()
                messages.success(request, "success")
            except Exception, e:
                messages.warning(request, e.message)
    except ObjectDoesNotExist:
        u = AdminUser(username=request.session['username'])
    c['u'] = u
    return render_to_response("adminuser/profile.html", c, context_instance=RequestContext(request))
예제 #13
0
파일: views.py 프로젝트: cash2one/tstpthon
def add_adminuser(request):
    c = {}
    c.update(csrf(request))
    if request.method == 'POST':
        username = request.POST["username"]
        password = request.POST["password"]
        if username == "" or password == "":
            messages.warning(request, "please input you username and password")
        else:
            count = AdminUser.objects.filter(username=username).count()
            if count > 0:
                messages.warning(request, "username is exist")
            else:
                u = AdminUser()
                u.username = username
                u.email = request.POST["email"]
                u.make_password(password)
                u.realname = request.POST["realname"]
                u.mobile = request.POST["mobile"]
                u.isactive = 0
                u.save()
                ur = AdminUser.objects.get(pk=u.id)
                role_ids = request.POST.getlist("roleIds", [])
                if role_ids is not None:
                    for roleid in role_ids:
                        r = Role.objects.get(pk=roleid)
                        ur.role.add(r)
                return redirect("adminuser.list")
    c['roles'] = Role.objects.all()
    return render_to_response("adminuser/add_adminuser.html", c, context_instance=RequestContext(request))
예제 #14
0
def rebuild_database():
    db.drop_all()
    db.create_all()
    household = Household(
        name='Barcelona-001',
        number_of_members='5',
        region='Region IV-A',
        province='Quezon',
        city='Lucena',
        barangay='Ilayang Iyam',
        address='12 Zamora St. Ciudad Maharlika, Ilayang Iyam, Lucena City',
        cluster='2011334281',
        contact='09159484200',
        status='Green',
        remarks='')

    household1 = Household(name='Barcelona-002',
                           number_of_members=3,
                           region='Region IV-A',
                           province='Quezon',
                           city='Lucena',
                           barangay='Isabang',
                           address='Barcelona Compound, Lucena City',
                           cluster='2011334281',
                           contact='09159484200',
                           status='Green',
                           remarks='')

    household2 = Household(name='Armamento-001',
                           number_of_members=3,
                           region='Region IV-A',
                           province='Quezon',
                           city='Lucena',
                           barangay='Gulang Gulang',
                           address='Capistrano Subdivision, Lucena City',
                           cluster='2011334282',
                           contact='09159484200',
                           status='Green',
                           remarks='')

    image = HouseholdImage(
        household_id=1, path='../static/images/households/test_household.jpg')

    image1 = HouseholdImage(
        household_id=2, path='../static/images/households/test_household1.jpg')

    image2 = HouseholdImage(
        household_id=3, path='../static/images/households/test_household2.jpg')

    citizen1 = Citizen(last_name='Barcelona',
                       first_name='Jasper Oliver',
                       middle_name='Estrada',
                       gender='Male',
                       age=23,
                       birthday='June 11, 1994',
                       employment_status='Employed',
                       occupation='Chief Executive Officer',
                       company='Pisara',
                       email='*****@*****.**',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Single',
                       msisdn='09159484200',
                       household_id=1,
                       household_name='Barcelona-001',
                       position='Child',
                       status='Green',
                       remarks='')

    citizen2 = Citizen(last_name='Barcelona',
                       first_name='Flora',
                       middle_name='Estrada',
                       gender='Female',
                       age=63,
                       birthday='May 29, 1953',
                       employment_status='Retired',
                       occupation='Government Health Worker',
                       company='City Health Office',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Widowed',
                       msisdn='09159484200',
                       household_id=1,
                       household_name='Barcelona-001',
                       position='Head',
                       status='Green',
                       remarks='')

    citizen3 = Citizen(last_name='Barcelona',
                       first_name='Ma Angelica',
                       middle_name='Estrada',
                       gender='Female',
                       age=29,
                       birthday='December 18, 1988',
                       employment_status='Employed',
                       occupation='Web Content Developer',
                       company='Intercontinental Hotels Group',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Single',
                       msisdn='09159484200',
                       household_id=1,
                       household_name='Barcelona-001',
                       position='Child',
                       status='Green',
                       remarks='')

    citizen4 = Citizen(last_name='Barcelona',
                       first_name='Ma April Therese',
                       middle_name='Estrada',
                       gender='Female',
                       age=34,
                       birthday='April 26, 1986',
                       employment_status='Employed',
                       occupation='Technical Support',
                       company='Direct with Hotels',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Single',
                       msisdn='09159484200',
                       household_id=1,
                       household_name='Barcelona-001',
                       position='Child',
                       status='Green',
                       remarks='')

    citizen5 = Citizen(last_name='Sacristia',
                       first_name='Rolando',
                       middle_name='Dela Cruz',
                       gender='Male',
                       age=46,
                       birthday='Augyst 08, 1976',
                       employment_status='Employed',
                       occupation='House Helper',
                       company='N/A',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Single',
                       msisdn='09159484200',
                       household_id=1,
                       household_name='Barcelona-001',
                       position='Resident',
                       status='Green',
                       remarks='')

    citizen6 = Citizen(last_name='Barcelona',
                       first_name='Jadd Paolo Luigi',
                       middle_name='Ong',
                       gender='Male',
                       age=29,
                       birthday='April 14, 1986',
                       employment_status='Employed',
                       occupation='Chief Marketing Officer',
                       company='Pisara',
                       email='*****@*****.**',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Married',
                       msisdn='09159484200',
                       household_id=2,
                       household_name='Barcelona-002',
                       position='Head',
                       status='Green',
                       remarks='')

    citizen7 = Citizen(last_name='Barcelona',
                       first_name='Cyril Joy',
                       middle_name='Lucero',
                       gender='Female',
                       age=23,
                       birthday='April 25, 1986',
                       employment_status='Employed',
                       occupation='Dentist',
                       company='Lucero Dental Clinic',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Married',
                       msisdn='09159484200',
                       household_id=2,
                       household_name='Barcelona-002',
                       position='Spouse',
                       status='Green',
                       remarks='')

    citizen8 = Citizen(last_name='Barcelona',
                       first_name='Stephen Skylar',
                       middle_name='Lucero',
                       gender='Male',
                       age=1,
                       birthday='November 15, 2017',
                       employment_status='Unemployed',
                       occupation='N/A',
                       company='N/A',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Single',
                       msisdn='N/A',
                       household_id=2,
                       household_name='Barcelona-002',
                       position='Spouse',
                       status='Green',
                       remarks='')

    citizen9 = Citizen(last_name='Armamento',
                       first_name='Jan Paolo',
                       middle_name='Calzado',
                       gender='Male',
                       age=23,
                       birthday='January 23, 1994',
                       employment_status='Employed',
                       occupation='Chief Infrastructure Officer',
                       company='Pisara',
                       email='*****@*****.**',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Married',
                       msisdn='09159484200',
                       household_id=3,
                       household_name='Armamento-001',
                       position='Head',
                       status='Green',
                       remarks='')

    citizen10 = Citizen(last_name='Armamento',
                        first_name='Caithlin Lois',
                        middle_name='Nicolas',
                        gender='Female',
                        age=23,
                        birthday='January 23, 1994',
                        employment_status='Unemployed',
                        occupation='Student',
                        company='MSEUF',
                        email='N/A',
                        citizenship='Filipino',
                        religion='Roman Catholic',
                        civil_status='Married',
                        msisdn='09159484200',
                        household_id=3,
                        household_name='Armamento-001',
                        position='Spouse',
                        status='Green',
                        remarks='')

    citizen11 = Citizen(last_name='Armamento',
                        first_name='Coco',
                        middle_name='Nicolas',
                        gender='Female',
                        age=1,
                        birthday='January 23, 1994',
                        employment_status='Unemployed',
                        occupation='N/A',
                        company='N/A',
                        email='N/A',
                        citizenship='Filipino',
                        religion='Roman Catholic',
                        civil_status='Single',
                        msisdn='N/A',
                        household_id=3,
                        household_name='Armamento-001',
                        position='Child',
                        status='Green',
                        remarks='')

    admin_user = AdminUser(email='*****@*****.**',
                           password='******',
                           status='Active',
                           name="Jasper Barcelona")

    db.session.add(household)
    db.session.add(household1)
    db.session.add(household2)

    db.session.add(citizen1)
    db.session.add(citizen2)
    db.session.add(citizen3)
    db.session.add(citizen4)
    db.session.add(citizen5)
    db.session.add(citizen6)
    db.session.add(citizen7)
    db.session.add(citizen8)
    db.session.add(citizen9)
    db.session.add(citizen10)
    db.session.add(citizen11)

    db.session.add(image)
    db.session.add(image1)
    db.session.add(image2)

    db.session.add(admin_user)

    db.session.commit()

    return jsonify(status='success'), 201
예제 #15
0
def apply_admin_lists(request):
    apply_admins = AdminUser.objects(status="applyAdmin").only('id', 'nickname', 'realName', 'status', 'phone').all()
    apply_admins = json.loads(apply_admins.to_json())
    map(web_id_replace, apply_admins)
    return render(request, 'applyAdminLists.html', {'applyAdmins': apply_admins})
예제 #16
0
def create_rido_application(configfile=None):
    app = Flask(__name__)
    AdminLTE(app)

    current_user = AdminUser()

    @app.teardown_appcontext
    def shutdown_session(exception=None):
        db_session.remove()

    @app.before_first_request
    def setup():
        g_logger.info("First Time Creating Local DB")
        # Recreate database each time for demo
        Base.metadata.drop_all(bind=engine)
        Base.metadata.create_all(bind=engine)
        #db.session.add(SimulationTask('First'))
        #db.session.add(SimulationTask('Second'))
        db_session.commit()
        g_logger.info('DB Created ')

    @app.route('/')
    def index():
        sim = db_session.query(SimulationTask).first()
        g_logger.debug('---> {}'.format(sim))
        try:
            if not sim == None:
                if sim.status == 'DONE':
                    data = dict()
                    results = db_session.query(ResultsPerDay).all()
                    #We stored database per day
                    #inorder to get total we sum driver_cost, car_cost, customer_profit
                    sumdrv, sumcar, sumcus = db_session.query(
                        func.sum(ResultsPerDay.driver_cost),
                        func.sum(ResultsPerDay.car_cost),
                        func.sum(ResultsPerDay.customer_profit)).first()
                    data['investment'] = sim.total_investment
                    data['drivercost'] = "{0:.2f}".format(sumdrv)
                    data['carcost'] = "{0:.2f}".format(sumcar)
                    investment = sim.total_investment
                    profit = (investment + sumcus) - (sumdrv + sumcar)
                    g_logger.debug('--> Profit {} '.format(profit))
                    g_logger.debug(
                        '--> Total investment{} '.format(investment))
                    g_logger.debug('--> Customer income{}'.format(sumcus))
                    g_logger.debug('---> Driver Expense {}'.format(sumdrv))
                    g_logger.debug('---> Car Expense {}'.format(sumcar))

                    data['profit'] = "{0:.2f}".format(profit)
                    data['customer_income'] = "{0:.2f}".format(sumcus)

                    #prepare Chart Data
                    labels = []
                    dcost = []
                    ccost = []
                    for x in results:
                        labels += [int(x.id)]
                        dcost += [x.driver_cost]
                        ccost += [x.car_cost / 100]

                    cdata = [dcost, ccost]

                    g_logger.debug('----> {}'.format(labels))
                    g_logger.debug('----> {}'.format(cdata))
                    return render_template('index.html',
                                           current_user=current_user,
                                           results=data,
                                           chartlabel=labels,
                                           chartdata=cdata,
                                           profit=profit,
                                           carexpenses=sumcar,
                                           driverexpenses=sumdrv,
                                           nodays=sim.no_of_days)
                else:
                    return render_template('lockscreen.html',
                                           current_user=current_user)
            else:
                return render_template('lockscreen.html',
                                       current_user=current_user)
        except Exception as e:
            print_exception()
            return render_template('lockscreen.html',
                                   current_user=current_user)

    @app.route('/input')
    def input():
        return render_template('input.html', current_user=current_user)

    @app.route('/simulation', methods=['POST'])
    def simulation():
        global task_future
        if task_future == None or task_future.running() != True:
            if request.method == 'POST':
                try:
                    data = request.form  # a multidict containing POST data
                    task_future = executor.submit(run_long_task, data)
                    return jsonify(response=200, Status="success")
                except Exception as e:
                    print_exception()
                    return jsonify(response=400, Statis="exception")
        else:
            return jsonify(response=400, Status="reject")

    return app