Exemplo n.º 1
0
def update_setting(name, value, valuex=None):
    session = DBSession()
    session.query(Setting).filter(Setting.name == name).update({
        Setting.value:
        value,
        Setting.valuex:
        valuex
    })
Exemplo n.º 2
0
def update_user(id, name, email, vote_weight):
    session = DBSession()
    session.query(User).filter(User.id == id).update({
        User.name:
        name,
        User.email:
        email,
        User.vote_weight:
        vote_weight
    })
Exemplo n.º 3
0
    def test_update_user(self):
        from motionman.services.user import update_user

        #prepare data
        session = DBSession()

        user_1 = copy.deepcopy(self.user_orig)

        try:
            session.add(user_1)
            session.flush()
        except IntegrityError:
            transaction.abort()

        update_user(user_1.id, u'newname', u'newemail', 888)

        user_load = session.query(User).filter(User.id == user_1.id).first()
        self.assertEqual(user_load.name, u'newname')
        self.assertEqual(user_load.email, u'newemail')
        self.assertEqual(user_load.vote_weight, 888)
        self.assertEqual(user_load.status, 1)

        session.delete(user_load)
        session.flush()
        transaction.commit()
Exemplo n.º 4
0
def add_motion(title, desc, options, users):
    session = DBSession()
    all_users = session.query(User).filter(User.status==1).all()
    
    transaction.begin()
    try:
        motion = Motion()
        motion.title = title
        motion.desc = desc
        
        session.add(motion)
        session.flush()
        
        for opt in options:
            option = MotionOption()
            option.motion_id = motion.id
            option.value = opt
            option.result = 0
            session.add(option)
            
        for user in all_users:
            if user.id in users:
                participant = MotionParticipant()
                participant.motion_id = motion.id
                participant.user_id = user.id
                chips = '_'.join([''.join(random.sample(CHIP_PATTERN, 5)) 
                                  for _ in range(user.vote_weight)])
                participant.chip_list = chips
                session.add(participant)

        session.flush()
        transaction.commit()
    except Exception:
        transaction.abort()
Exemplo n.º 5
0
    def test_user_model(self):
        from motionman.models import User

        user_orig = User()
        user_orig.id = 888
        user_orig.email = u"*****@*****.**"
        user_orig.name = u"test1"
        user_orig.vote_weight = 1
        user_orig.created_time = datetime.datetime.now()
        user_orig.created_user = 3
        user_orig.last_modified_time = datetime.datetime.now()
        user_orig.last_modified_user = 3
        user_orig.status = 2
        
        user_new = copy.deepcopy(user_orig)

        session = DBSession()
        session.add(user_new)
        session.flush()
        transaction.commit()

        user_load = session.query(User).filter(User.id==888).first()
        
        self.assertEqual(user_load.email, user_orig.email)
        self.assertEqual(user_load.name, user_orig.name)
        self.assertEqual(user_load.vote_weight, user_orig.vote_weight)
        self.assertEqual(user_load.created_time, user_orig.created_time)
        self.assertEqual(user_load.created_user, user_orig.created_user)
        self.assertEqual(user_load.last_modified_time, user_orig.last_modified_time)
        self.assertEqual(user_load.last_modified_user, user_orig.last_modified_user)
        self.assertEqual(user_load.status, user_orig.status)
        
        session.delete(user_load)
        session.flush()
        transaction.commit()            
Exemplo n.º 6
0
    def test_update_user(self):
        from motionman.services.user import update_user
        
        #prepare data
        session = DBSession()

        user_1 = copy.deepcopy(self.user_orig)

        try:
            session.add(user_1)
            session.flush()
        except IntegrityError:
            transaction.abort()
        
        update_user(user_1.id, u'newname', u'newemail', 888)

        user_load = session.query(User).filter(User.id==user_1.id).first()
        self.assertEqual(user_load.name, u'newname')
        self.assertEqual(user_load.email, u'newemail')
        self.assertEqual(user_load.vote_weight, 888)
        self.assertEqual(user_load.status, 1)
        
        session.delete(user_load)
        session.flush()
        transaction.commit()
Exemplo n.º 7
0
    def test_setting_model(self):
        from motionman.models import Setting

        setting_orig = Setting()
        setting_orig.id = 888
        setting_orig.name = u"setting1"
        setting_orig.value = u"setting value"
        setting_orig.valuex = u"long setting value"
        setting_orig.created_time = datetime.datetime.now()
        setting_orig.created_user = 3
        setting_orig.last_modified_time = datetime.datetime.now()
        setting_orig.last_modified_user = 3
        setting_orig.status = 2
        
        setting_new = copy.deepcopy(setting_orig)

        session = DBSession()
        session.add(setting_new)
        session.flush()
        transaction.commit()

        setting_load = session.query(Setting).filter(Setting.id==888).first()
        
        self.assertEqual(setting_load.name, setting_orig.name)
        self.assertEqual(setting_load.value, setting_orig.value)
        self.assertEqual(setting_load.valuex, setting_orig.valuex)
        self.assertEqual(setting_load.created_time, setting_orig.created_time)
        self.assertEqual(setting_load.created_user, setting_orig.created_user)
        self.assertEqual(setting_load.last_modified_time, setting_orig.last_modified_time)
        self.assertEqual(setting_load.last_modified_user, setting_orig.last_modified_user)
        self.assertEqual(setting_load.status, setting_orig.status)
        
        session.delete(setting_load)
        session.flush()
        transaction.commit()            
Exemplo n.º 8
0
def get_config_by_name(name):
    session = DBSession()
    setting = session.query(Setting).filter(Setting.name == name).first()
    if setting:
        return (setting.value, setting.valuex)
    else:
        log.error(u"Can't %s from configuration" % name)
        raise MissConfiguration()
Exemplo n.º 9
0
def get_config_by_name(name):
    session = DBSession()
    setting = session.query(Setting).filter(Setting.name==name).first()
    if setting:
        return (setting.value, setting.valuex)
    else:
        log.error(u"Can't %s from configuration" % name)
        raise MissConfiguration()
Exemplo n.º 10
0
def save_vote_result(motion_id, option_id, chips):
    session = DBSession()
    vote_weight = len(chips.split('_'))
    
    transaction.begin()
    try:
        session.query(MotionParticipant).filter(and_(MotionParticipant.motion_id==motion_id,
                                                     MotionParticipant.chip_list==chips)) \
                                        .update({MotionParticipant.status:2})
                                        
        session.query(MotionOption).filter(and_(MotionOption.motion_id==motion_id,
                                                MotionOption.id==option_id)) \
                                   .update({MotionOption.result:MotionOption.result+vote_weight})

        session.flush()
        transaction.commit()
    except Exception:
        transaction.abort()                                                     
Exemplo n.º 11
0
    def test_get_motion_id_prefix(self):
        from motionman.services.setting import get_motion_id_prefix, update_setting

        session = DBSession()

        setting_load = session.query(Setting).filter(
            Setting.name == u'motion_id_prefix').first()
        update_setting(setting_load.id, u"newtestofidprefix")
        self.assertEqual(get_motion_id_prefix(), u"newtestofidprefix")
Exemplo n.º 12
0
    def test_get_user_password(self):
        from motionman.services.setting import get_user_password, update_setting

        session = DBSession()

        setting_load = session.query(Setting).filter(
            Setting.name == u'user_password').first()
        update_setting(setting_load.id, u"newtestofuserpassword")
        self.assertEqual(get_user_password(), u"newtestofuserpassword")
Exemplo n.º 13
0
    def test_get_mail_template(self):
        from motionman.services.setting import get_mail_template, update_setting

        session = DBSession()

        setting_load = session.query(Setting).filter(
            Setting.name == u'mail_template').first()
        update_setting(setting_load.id, u"", u"newtestofmailtemplate")
        self.assertEqual(get_mail_template(), u"newtestofmailtemplate")
Exemplo n.º 14
0
def save_vote_result(motion_id, option_id, chips):
    session = DBSession()
    vote_weight = len(chips.split('_'))

    transaction.begin()
    try:
        session.query(MotionParticipant).filter(and_(MotionParticipant.motion_id==motion_id,
                                                     MotionParticipant.chip_list==chips)) \
                                        .update({MotionParticipant.status:2})

        session.query(MotionOption).filter(and_(MotionOption.motion_id==motion_id,
                                                MotionOption.id==option_id)) \
                                   .update({MotionOption.result:MotionOption.result+vote_weight})

        session.flush()
        transaction.commit()
    except Exception:
        transaction.abort()
Exemplo n.º 15
0
def load_motions(offset, limit):
    session = DBSession()
    
    motion_list = session.query(Motion).filter(Motion.status<>0).order_by(desc(Motion.create_time))

    if offset:
        motion_list = motion_list.offset(offset)
    if limit:
        motion_list = motion_list.limit(limit)
    
    return motion_list.all()
Exemplo n.º 16
0
def load_motions(offset, limit):
    session = DBSession()

    motion_list = session.query(Motion).filter(Motion.status <> 0).order_by(
        desc(Motion.create_time))

    if offset:
        motion_list = motion_list.offset(offset)
    if limit:
        motion_list = motion_list.limit(limit)

    return motion_list.all()
Exemplo n.º 17
0
    def test_delete_user(self):
        from motionman.services.user import delete_user
        from sqlalchemy import and_
        
        #prepare data
        session = DBSession()

        user_1 = copy.deepcopy(self.user_orig)

        try:
            session.add(user_1)
            session.flush()
        except IntegrityError:
            transaction.abort()
        
        delete_user(user_1.id)

        user_load = session.query(User).filter(and_(User.id==user_1.id, User.status==1)).first()
        self.assertEqual(user_load, None)

        user_load = session.query(User).filter(User.id==user_1.id).first()
        self.assertEqual(user_load.status, 0)
Exemplo n.º 18
0
    def test_delete_user(self):
        from motionman.services.user import delete_user
        from sqlalchemy import and_

        #prepare data
        session = DBSession()

        user_1 = copy.deepcopy(self.user_orig)

        try:
            session.add(user_1)
            session.flush()
        except IntegrityError:
            transaction.abort()

        delete_user(user_1.id)

        user_load = session.query(User).filter(
            and_(User.id == user_1.id, User.status == 1)).first()
        self.assertEqual(user_load, None)

        user_load = session.query(User).filter(User.id == user_1.id).first()
        self.assertEqual(user_load.status, 0)
Exemplo n.º 19
0
    def test_get_value_by_name(self):
        from motionman.services.setting import get_value_by_name, update_setting

        session = DBSession()

        setting_load = session.query(Setting).filter(
            Setting.name == u'motion_id_prefix').first()
        update_setting(setting_load.id, u"newtestofidprefix",
                       u"newtestvaluexofidprefix")
        self.assertEqual(
            get_value_by_name(u'motion_id_prefix')[0], u"newtestofidprefix")
        self.assertEqual(
            get_value_by_name(u'motion_id_prefix')[1],
            u"newtestvaluexofidprefix")

        setting_load = get_value_by_name(u'srwerslf3sfsofdfs')
        self.assertEqual(setting_load, None)
Exemplo n.º 20
0
    def test_get_config_by_name(self):
        from motionman.services.setting import get_config_by_name, update_setting, MissConfiguration

        session = DBSession()

        setting_load = session.query(Setting).filter(
            Setting.name == u'motion_id_prefix').first()
        update_setting(setting_load.id, u"newtestofidprefix",
                       u"newtestvaluexofidprefix")
        self.assertEqual(
            get_config_by_name(u'motion_id_prefix')[0], u"newtestofidprefix")
        self.assertEqual(
            get_config_by_name(u'motion_id_prefix')[1],
            u"newtestvaluexofidprefix")

        self.assertRaises(MissConfiguration, get_config_by_name,
                          u"srwerslf3sfsofdfs")
Exemplo n.º 21
0
 def test_add_user(self):
     from motionman.services.user import add_user, DuplicatedName, DuplicatedEmail
     add_user(u"testname", u"testemail", 88)
     
     session = DBSession()
     user_load = session.query(User).filter(User.name==u'testname').first()
     
     self.assertEqual(user_load.name, u'testname')
     self.assertEqual(user_load.email, u'testemail')
     self.assertEqual(user_load.vote_weight, 88)
     self.assertEqual(user_load.status, 1)
     
     self.assertRaises(DuplicatedName, add_user, u"testname", u"different email", 88)
     self.assertRaises(DuplicatedEmail, add_user, u"different name", u"testemail", 88)
     
     session.delete(user_load)
     session.flush()
     transaction.commit()
Exemplo n.º 22
0
    def test_add_user(self):
        from motionman.services.user import add_user, DuplicatedName, DuplicatedEmail
        add_user(u"testname", u"testemail", 88)

        session = DBSession()
        user_load = session.query(User).filter(
            User.name == u'testname').first()

        self.assertEqual(user_load.name, u'testname')
        self.assertEqual(user_load.email, u'testemail')
        self.assertEqual(user_load.vote_weight, 88)
        self.assertEqual(user_load.status, 1)

        self.assertRaises(DuplicatedName, add_user, u"testname",
                          u"different email", 88)
        self.assertRaises(DuplicatedEmail, add_user, u"different name",
                          u"testemail", 88)

        session.delete(user_load)
        session.flush()
        transaction.commit()
Exemplo n.º 23
0
    def test_update_setting(self):
        from motionman.services.setting import update_setting

        session = DBSession()

        setting_1 = copy.deepcopy(self.setting_orig)

        try:
            session.add(setting_1)
            session.flush()
        except IntegrityError:
            transaction.abort()

        session.refresh(setting_1)

        update_setting(setting_1.id, u"new value", u"new valuex")

        setting_load = session.query(Setting).filter(
            Setting.id == setting_1.id).first()

        self.assertEqual(setting_load.value, u"new value")
        self.assertEqual(setting_load.valuex, u"new valuex")
Exemplo n.º 24
0
def add_user(name, email, vote_weight):
    session = DBSession()
    
    dup_check = session.query(User).filter(and_(User.status==1,or_(User.name==name, User.email==email))).all()
    if len(dup_check) != 0:
        for i in dup_check:
            if i.name == name:
                raise DuplicatedName()
            if i.email == email:
                raise DuplicatedEmail()

    user = User()
    user.email = email
    user.name = name
    user.vote_weight = vote_weight
    
    try:
        session.add(user)
        session.flush()
        transaction.commit()
    except IntegrityError:
        transaction.abort()
Exemplo n.º 25
0
    def test_user_model(self):
        from motionman.models import User

        user_orig = User()
        user_orig.id = 888
        user_orig.email = u"*****@*****.**"
        user_orig.name = u"test1"
        user_orig.vote_weight = 1
        user_orig.created_time = datetime.datetime.now()
        user_orig.created_user = 3
        user_orig.last_modified_time = datetime.datetime.now()
        user_orig.last_modified_user = 3
        user_orig.status = 2

        user_new = copy.deepcopy(user_orig)

        session = DBSession()
        session.add(user_new)
        session.flush()
        transaction.commit()

        user_load = session.query(User).filter(User.id == 888).first()

        self.assertEqual(user_load.email, user_orig.email)
        self.assertEqual(user_load.name, user_orig.name)
        self.assertEqual(user_load.vote_weight, user_orig.vote_weight)
        self.assertEqual(user_load.created_time, user_orig.created_time)
        self.assertEqual(user_load.created_user, user_orig.created_user)
        self.assertEqual(user_load.last_modified_time,
                         user_orig.last_modified_time)
        self.assertEqual(user_load.last_modified_user,
                         user_orig.last_modified_user)
        self.assertEqual(user_load.status, user_orig.status)

        session.delete(user_load)
        session.flush()
        transaction.commit()
Exemplo n.º 26
0
    def test_setting_model(self):
        from motionman.models import Setting

        setting_orig = Setting()
        setting_orig.id = 888
        setting_orig.name = u"setting1"
        setting_orig.value = u"setting value"
        setting_orig.valuex = u"long setting value"
        setting_orig.created_time = datetime.datetime.now()
        setting_orig.created_user = 3
        setting_orig.last_modified_time = datetime.datetime.now()
        setting_orig.last_modified_user = 3
        setting_orig.status = 2

        setting_new = copy.deepcopy(setting_orig)

        session = DBSession()
        session.add(setting_new)
        session.flush()
        transaction.commit()

        setting_load = session.query(Setting).filter(Setting.id == 888).first()

        self.assertEqual(setting_load.name, setting_orig.name)
        self.assertEqual(setting_load.value, setting_orig.value)
        self.assertEqual(setting_load.valuex, setting_orig.valuex)
        self.assertEqual(setting_load.created_time, setting_orig.created_time)
        self.assertEqual(setting_load.created_user, setting_orig.created_user)
        self.assertEqual(setting_load.last_modified_time,
                         setting_orig.last_modified_time)
        self.assertEqual(setting_load.last_modified_user,
                         setting_orig.last_modified_user)
        self.assertEqual(setting_load.status, setting_orig.status)

        session.delete(setting_load)
        session.flush()
        transaction.commit()
Exemplo n.º 27
0
def add_user(name, email, vote_weight):
    session = DBSession()

    dup_check = session.query(User).filter(
        and_(User.status == 1, or_(User.name == name,
                                   User.email == email))).all()
    if len(dup_check) != 0:
        for i in dup_check:
            if i.name == name:
                raise DuplicatedName()
            if i.email == email:
                raise DuplicatedEmail()

    user = User()
    user.email = email
    user.name = name
    user.vote_weight = vote_weight

    try:
        session.add(user)
        session.flush()
        transaction.commit()
    except IntegrityError:
        transaction.abort()
Exemplo n.º 28
0
def add_motion(title, desc, options, users):
    session = DBSession()
    all_users = session.query(User).filter(User.status == 1).all()

    transaction.begin()
    try:
        motion = Motion()
        motion.title = title
        motion.desc = desc

        session.add(motion)
        session.flush()

        for opt in options:
            option = MotionOption()
            option.motion_id = motion.id
            option.value = opt
            option.result = 0
            session.add(option)

        for user in all_users:
            if user.id in users:
                participant = MotionParticipant()
                participant.motion_id = motion.id
                participant.user_id = user.id
                chips = '_'.join([
                    ''.join(random.sample(CHIP_PATTERN, 5))
                    for _ in range(user.vote_weight)
                ])
                participant.chip_list = chips
                session.add(participant)

        session.flush()
        transaction.commit()
    except Exception:
        transaction.abort()
Exemplo n.º 29
0
def get_value_by_name(name):
    session = DBSession()
    setting = session.query(Setting).filter(Setting.name == name).first()
    if setting:
        return (setting.value, setting.valuex)
Exemplo n.º 30
0
def delete_user(id):
    session = DBSession()
    session.query(User).filter(User.id == id).update({User.status: 0})
Exemplo n.º 31
0
def load_users():
    session = DBSession()
    return session.query(User).filter(User.status==1).all()
Exemplo n.º 32
0
def get_motion_participant_by_chips(motion_id, chips):
    session = DBSession()
    return session.query(MotionParticipant).filter(and_(MotionParticipant.motion_id==motion_id,
                                                        MotionParticipant.chip_list==chips)).first()
Exemplo n.º 33
0
def load_settings():
    session = DBSession()
    return session.query(Setting).filter(Setting.status == 1).all()
Exemplo n.º 34
0
def load_user(id):
    session = DBSession()
    return session.query(User).filter(User.id==id).first()
Exemplo n.º 35
0
def update_user(id, name, email, vote_weight):
    session = DBSession()
    session.query(User).filter(User.id==id).update({User.name:name,
                                                    User.email:email,
                                                    User.vote_weight:vote_weight})
Exemplo n.º 36
0
def load_motion(motion_id):
    session = DBSession()
    return session.query(Motion).filter(Motion.id==motion_id).first()
Exemplo n.º 37
0
def delete_user(id):
    session = DBSession()
    session.query(User).filter(User.id==id).update({User.status:0})
Exemplo n.º 38
0
def get_motions_count():
    session = DBSession()

    return session.query(Motion).filter(Motion.status <> 0).count()
Exemplo n.º 39
0
def load_motion(motion_id):
    session = DBSession()
    return session.query(Motion).filter(Motion.id == motion_id).first()
Exemplo n.º 40
0
def get_value_by_name(name):
    session = DBSession()
    setting = session.query(Setting).filter(Setting.name==name).first()
    if setting:
        return (setting.value, setting.valuex)
Exemplo n.º 41
0
def get_motion_participant_by_chips(motion_id, chips):
    session = DBSession()
    return session.query(MotionParticipant).filter(
        and_(MotionParticipant.motion_id == motion_id,
             MotionParticipant.chip_list == chips)).first()
Exemplo n.º 42
0
def get_motions_count():
    session = DBSession()
    
    return session.query(Motion).filter(Motion.status<>0).count()    
Exemplo n.º 43
0
def load_user(id):
    session = DBSession()
    return session.query(User).filter(User.id == id).first()
Exemplo n.º 44
0
def update_setting(name, value, valuex = None):
    session = DBSession()
    session.query(Setting).filter(Setting.name==name).update({Setting.value:value,Setting.valuex:valuex})
Exemplo n.º 45
0
def load_settings():
    session = DBSession()
    return session.query(Setting).filter(Setting.status==1).all()
Exemplo n.º 46
0
def load_users():
    session = DBSession()
    return session.query(User).filter(User.status == 1).all()