Ejemplo n.º 1
0
class VoterController(TGController):
    
    allow_only = in_any_group('voter', 'managers', msg=l_('Only for people with the "manage" permission'))
    #has_any_permission('manage','creator', msg=l_('Only for people with the "manage" permission'))
    
    def __init__(self, models, session, config_type=None, translations=None):
        print "call VoterController(managepoll)"
        
        self.utility = Utility()           
        self.model = models       
        
        
    @expose('managepoll.templates.voter.index')
    def index(self):    
        return dict(page = 'index',idproject=None)
    
    
    @expose('managepoll.templates.voter.voter')
    def voters(self,*args,**kw):
        reload(sys).setdefaultencoding('utf8')   
        
        voterObject = VoterObject()        
        print kw
        
        if('idvoter' in kw):
            print kw
            print "Edit voter"
            voter = self.model.Voter.getId(kw['idvoter'])
            voterObject.setVoter(voter)
            #employment = model.EmploymentDetail.getId(kw['idvoter'])
            
        print "voters : lang"
        
        self.lang = self.model.Languages.getAll()
        print self.lang
        self.marriageStatus = self.model.MarriageStatus.getAll(act=1)
        self.gender = self.model.Gender.getAll(act=1)
        self.tel = self.model.TelephoneType.getAll(act=1)
        self.religion = self.model.ReligionType.getAll(act=1)
        self.national = self.model.NationalityType.getAll(act=1)
        self.race = self.model.RaceType.getAll(act=1)
        self.condition = self.model.LivingConditionType.getAll(act=1)
        self.employmentstatus = self.model.EmploymentType.getAll(act=1)
        self.listConutry = self.model.FixCountry.getAll(active=1)
        self.telephone = self.model.TelephoneType.getAll(act=1)
        self.education = self.model.EducationType.getAll(act=1)
        self.addresstype = self.model.AddressType.getAll(act=1)
            
        
        return dict(page = 'voters',
                    lang = self.lang,
                    marriageStatus = self.marriageStatus,
                    gender = self.gender,
                    tel = self.tel,
                    religion = self.religion,
                    national = self.national,
                    race = self.race,
                    condition = self.condition,
                    employmentstatus = self.employmentstatus,
                    listConutry = self.listConutry,
                    telephone = self.telephone,
                    education = self.education,
                    addresstype = self.addresstype,
                    
                    voter = voterObject,
                    idproject=None)
        
     
    @expose()   
    def savevoter(self,**kw):
        print kw
       
        user =  request.identity['user'];
        print "********************"
        print kw['id_voter']
        print kw['id_voter_map_type']
        print kw['id_telephone']
        print kw['id_address']
        print kw['id_employment']
        print "********************"   
        
        voter = self.model.Voter.getId(kw['id_voter'])
        
        if voter is None : 
            print "voter is none"
            voter = self.model.Voter()
                        
        
        voter.email = kw['email']
        voter.prefix = kw['prefix']
        voter.firstname = kw['firstname']
        voter.lastname = kw['lastname']          
       
        voter.id_marriage_status  = kw['id_marriage_status']
        
        #voter.birthdate = kw['birthdate'] 
            
        voter.birthdate = self.utility.convertToDateTime(kw['birthdate'], '%d/%m/%Y') 
        
        voter.id_gender = kw['id_gender']
           
        voter.id_living_condition = kw['id_living_condition']                                                        
        voter.size_family = kw['size_family']  
        voter.id_language = kw['id_language']
        voter.id_religion = kw['id_religion']
        voter.id_nationality = kw['id_nationality']
        voter.id_race = kw['id_race']
        voter.salary = kw['salary']
        voter.id_education = kw['id_education']
        voter.user_id_owner = user.user_id
        
        print "va %s" % (str( len(kw['id_voter'])))
        if (len(kw['id_voter']) == 0) :            
            voter.save()
         
         
        print "Voter id : %s" %voter.id_voter

        votermaptype =  self.model.VoterMapType.getId(kw['id_voter_map_type'])
        if votermaptype is None : 
            votermaptype = self.model.VoterMapType()
        
        votermaptype.id_voter = voter.id_voter
        votermaptype.id_voter_type = 5
                
        if (len(kw['id_voter_map_type'] ) == 0):
            votermaptype.save() 
        
        print "voter map type id : %s" %votermaptype.id_voter_map_type
        
        votertelephone = self.model.Telephone.getId(kw['id_telephone'])
        if votertelephone is None:
            votertelephone = self.model.Telephone()
        
         
        votertelephone.id_telephone_type = kw['id_telephone_type']
        votertelephone.description = kw['telephone']
        votertelephone.id_voter = voter.id_voter
        
        
        if (len(kw['id_telephone'] ) == 0):
            votertelephone.save()
        
        print "telephone : %s" %votertelephone.id_telephone
        
        voteraddress = self.model.Address.getId(kw['id_address'])
        if voteraddress is None:
            voteraddress = self.model.Address()
        
        voteraddress.id_address_type = kw['id_address_type']
        voteraddress.id_voter = voter.id_voter
        voteraddress.country = kw['id_country']
        voteraddress.province = kw['province']
        voteraddress.city = kw['city']
        voteraddress.county = kw['county']
        
        if (len(kw['id_address'] ) == 0):
            voteraddress.save()
        
          
        voteremployment = self.model.EmploymentDetail.getId(kw['id_employment'])
        if voteremployment is None:
            voteremployment = self.model.EmploymentDetail()
         
        
        voteremployment.id_voter = voter.id_voter
        voteremployment.id_employment_status_type = kw['id_employment_status_type']
        voteremployment.intructry_type = kw['intructry_type']
        voteremployment.job_catagory = kw['job_catagory']
         
        if (len(kw['id_employment'] ) == 0):
            voteremployment.save()
    
             
        redirect('/managepoll/voter/indextest')
        
    @expose('managepoll.templates.voter.indextest')
    def indextest(self):    
        return dict(page = 'voter',idproject=None)
    
    
    @expose('managepoll.templates.voter.votertest')
    def votertest(self,*args,**kw):
        print kw
        reload(sys).setdefaultencoding('utf8')   
        
        voterObject = VoterObject()        
        print kw
        
        if('idvoter' in kw):
            print kw
            print "Edit voter"
            voter = self.model.Voter.getId(kw['idvoter'])
            voterObject.setVoter(voter)
            #employment = model.EmploymentDetail.getId(kw['idvoter'])
            
        print "voters : lang"
        
        self.lang = self.model.Languages.getAll()
        
        print self.lang
        
        self.marriageStatus = self.model.MarriageStatus.getAll(act=1)        
        self.gender = self.model.Gender.getAll(act=1)        
        self.tel = self.model.TelephoneType.getAll(act=1)
        self.religion = self.model.ReligionType.getAll(act=1)
        self.national = self.model.NationalityType.getAll(act=1)
        self.race = self.model.RaceType.getAll(act=1)
        self.condition = self.model.LivingConditionType.getAll(act=1)
        self.employmentstatus = self.model.EmploymentType.getAll(act=1)
        self.listConutry = self.model.FixCountry.getAll(active=1)
        self.telephone = self.model.TelephoneType.getAll(act=1)
        self.education = self.model.EducationType.getAll(act=1)
        self.addresstype = self.model.AddressType.getAll(act=1)
        print "***************"
       
        print voterObject.birthdate
            
        
        return dict(page = 'votertest',
                    lang = self.lang,
                    marriageStatus = self.marriageStatus,
                    gender = self.gender,
                    tel = self.tel,
                    religion = self.religion,
                    national = self.national,
                    race = self.race,
                    condition = self.condition,
                    employmentstatus = self.employmentstatus,
                    listConutry = self.listConutry,
                    telephone = self.telephone,
                    education = self.education,
                    addresstype = self.addresstype,
                    
                    voter = voterObject,
                    idproject=None)

 
    @expose()
    def deletevoter(self,**kw):  
        print kw  
        self.model.Invitation.deleteById(kw['idinvitation'])
       
        redirect('/managepoll/invitation/indextest')        
Ejemplo n.º 2
0
class AccountController(BaseController):
    def __init__(self):
        self.utility = Utility()
        self.registerService = RegisterService()
        dh = LogDBHandler(config=config, request=request)
        log.addHandler(dh)

        self.__getMasterData()

    def _before(self, *args, **kw):
        tmpl_context.project_name = "pollandsurvey"

    def __getMasterData(self):
        self.serviceType = model.SocialType.getAll(1)

    @expose("pollandsurvey.templates.account.index")
    @require(predicates.not_anonymous())
    def index(self, *args, **kw):

        userService = model.UserService()
        if request.identity:
            user = request.identity["user"]
            userService = model.UserService.getById(user.user_id)
            if userService is None:
                userService = model.UserService()

        listConutry = []
        self.country = model.FixCountry.getAll("1")
        for lang in self.country:
            listConutry.append(lang.to_json())

        listGender = model.Gender.getAll(1)
        listLanguage = []

        self.language = model.FixLanguage.getAll("1")
        for lang in self.language:
            listLanguage.append(lang.to_json())

        return dict(
            page="index",
            userService=userService,
            listConutry=listConutry,
            listGender=listGender,
            listLanguage=listLanguage,
        )

    @expose("pollandsurvey.templates.account.changepassword")
    @require(predicates.not_anonymous())
    def changepass(self, *args, **kw):
        """Handle the front-page."""
        return dict(page="changepassword")

    @expose("pollandsurvey.templates.account.socialmedia")
    @require(predicates.not_anonymous())
    def socialmedia(self, *args, **kw):
        user = request.identity["user"]
        self.userSocialNetwork = model.UserSocialNetwork.getSocialByUserId(user.user_id)
        return dict(page="socialmedia", userSocialNetwork=self.userSocialNetwork, socialType=self.serviceType)

    @expose("pollandsurvey.templates.account.cancellation")
    @require(predicates.not_anonymous())
    def cancellation(self, *args, **kw):
        """Handle the front-page."""
        return dict(page="cancellation")

    @expose()
    @require(predicates.not_anonymous())
    def deactivate(self):
        self.user = request.identity["user"]
        self.user.active = 0
        # user.deactivate()

        self.urlServer = model.SystemEnvironment.getServerUrl()
        self.userGenCode = self.registerService.deActivateUserGenCode(self.user)

        self.emailValues = {}
        self.emailValues["user_name"] = self.user.display_name
        self.emailValues["email"] = self.user.email_address
        self.emailValues["deactivate_url"] = (
            request.scheme + "://" + self.urlServer + "/activate/canceldeactive/" + str(self.userGenCode.code)
        )
        # request.application_url

        self.sendMailService = SendMailService()
        self.sendMailService.senddeActivate(self.emailValues)
        self.sendMailService.start()

        # model.User.deactivate()
        flash(_(LanguageObject.getdata("msg_thank_you")), "warning")
        redirect("/logout_handler")

    @expose()
    @require(predicates.not_anonymous())
    def updateprofile(self, *args, **kw):

        if request.identity:

            self.user = request.identity["user"]
            self.userService = model.UserService.getById(self.user.user_id)
            if self.userService is None:
                self.userService = model.UserService()
            self.userService.updateByValue(**kw)
            self.userService.accept_tnc = 1
            self.userService.user_id = self.user.user_id
            self.userService.birthdate = self.utility.convertToDateTime(self.userService.birthdate, "%d/%m/%Y")
            self.userService.updateall()

            flash(_(LanguageObject.getdata("msg_save_success")), "warning")
        else:

            log.warning("user cannot login, redirect to login")
            flash(_(LanguageObject.getdata("msg_not_login")), "warning")

        redirect("/account")

    @expose()
    # @expose('json')
    # @expose('json',content_type="text/plain"  )
    @require(predicates.not_anonymous())
    def rechangepass(self, *args, **kw):

        self.success = False
        self.message = ""
        if request.identity:
            self.current_password = kw.get("password")
            self.new_password = kw.get("newpassword")
            self.re_new_password = kw.get("rnewpassword")
            user = request.identity["user"]

            if user.validate_password(self.current_password):
                if str(self.new_password) == str(self.re_new_password):
                    user._set_password(self.new_password)
                    self.success = True
                    self.message = LanguageObject.getdata("msg_password_changed")
                else:
                    self.message = LanguageObject.getdata("msg_password_not_match")

            else:
                log.warning("user %s password not match : %s", user.user_name, self.current_password)
                self.message = LanguageObject.getdata("msg_password_not_match")
        else:
            self.message = LanguageObject.getdata("msg_not_login")
            log.warning("user cannot login, redirect to login")

        flash(_(self.message), "warning")
        # return dict(success=self.success, message = self.message);

        redirect("/account/changepass")