コード例 #1
0
    def render_preference_panel(self, req, panel):
        """"""
        userProfileData = {}
        userProfile = UserProfilesSystem(self.env).get_userProfile(
            req.session.sid)

        if req.method == 'POST':
            userProfile.name = req.args.get('tr_userProfile_name')
            userProfile.email = req.args.get('tr_userProfile_email')
            userProfile.bio = req.args.get('tr_userProfile_bio')
            userProfile.picture_href = TeamAdminPage(
                self.env)._do_uploadPicture(req, userProfile, {},
                                            'tr_userProfile_picture')
            userProfile.role = req.args.get('tr_userProfile_role')
            if userProfile.save():
                userProfileData['message'] = 'Profile updated'

        userProfileData['userProfile'] = userProfile
        add_stylesheet(req, 'tracteamroster/css/teamroster.css')

        # wiki toolbar
        add_script(req, 'common/js/wikitoolbar.js')
        add_stylesheet(req, 'common/css/wiki.css')

        return 'prefs_teamroster_user.html', {'teamRoster': userProfileData}
コード例 #2
0
ファイル: rpc.py プロジェクト: pombredanne/trachacks
 def getTeamRoster(self, req, listUserProfilesTemplate=[]):
     """Returns project's team roster.
     
     Usage:
         {{{ teamroster.getTeamRoster() # without arguments returns current active user profiles (with enabled='1') }}}
         {{{ teamroster.getTeamRoster([{role='developer', enabled='1'}]) # Returns all userProfiles with role='developer' and enabled='1' }}}
         {{{ teamroster.getTeamRoster([{name='%someName%'}]) # Returns all userProfiles with name like 'someName' }}}
     """
     if isinstance(listUserProfilesTemplate, list) and len(listUserProfilesTemplate)>0:    
         userProfileTemplates = []
         for listItem in listUserProfilesTemplate:
             if isinstance(listItem, dict):
                 userProfileTemplates.append(UserProfile(**listItem))
         
         userProfiles = UserProfilesSystem(self.env).search_userProfile(userProfileTemplates)
         return [dict(listItem) for listItem in userProfiles]
     else:
         return [dict(listItem) for listItem in UserProfilesSystem(self.env).get_active_userProfiles()]
コード例 #3
0
    def render_admin_panel( self, req, cat, page, path_info):
        #req.perm.assert_permission('TRAC_ADMIN')
        userProfile_id = path_info
        teamRosterData={}
        userProfilesSystem = UserProfilesSystem(self.env)
        
        if req.args.has_key('tr_cancel'):
            req.redirect(req.href.admin(cat, page))
        
        if userProfile_id:
            userProfile = userProfilesSystem.get_userProfile(userProfile_id)
            if userProfile.exists:
                if self._do_updateUserProfile(req, userProfile, teamRosterData):
                    req.redirect(req.href.admin(cat, page))
                
                teamRosterData['userProfile']=userProfile
                add_stylesheet(req, 'tracteamroster/css/teamroster.css')    
                
                # wiki toolbar
                add_script(req, 'common/js/wikitoolbar.js')
                add_stylesheet(req, 'common/css/wiki.css')

                return 'admin_teamroster_userProfile.html', {'teamRoster':teamRosterData}
            else:
                req.redirect(req.href.admin(cat, page))
        teamRosterData['lastUpdatedProfile']= UserProfile()
        
        # manage team
        if req.method=="POST":
            if req.args.has_key("tr_userProfile_update"):
                userProfile = userProfilesSystem.get_userProfile(req.args.get('tr_userProfile_id'))
                if userProfile.exists:
                    self._do_updateUserProfile(req, userProfile, teamRosterData)
                    teamRosterData['lastUpdatedProfile']=userProfile
                
            if req.args.has_key("tr_userProfile_search"):
                self._do_searchUserProfile(req, userProfilesSystem, teamRosterData)
            
            if req.args.has_key("tr_userProfile_add"):
                self._do_addUserProfile(req, userProfilesSystem, teamRosterData)
            
            if req.args.has_key("tr_userProfile_create"):
                self._do_createUserProfile(req, userProfilesSystem, teamRosterData)
            
            if req.args.has_key("tr_userProfile_remove"):
                self._do_removeUserProfile(req, userProfilesSystem, teamRosterData)
                
        self._do_listActiveProfiles(req, userProfilesSystem, cat, page, teamRosterData)
        
        add_script(req, 'tracteamroster/js/teamroster.js')
        add_stylesheet(req, 'tracteamroster/css/teamroster.css')    
        
        # wiki toolbar
        add_script(req, 'common/js/wikitoolbar.js')
        add_stylesheet(req, 'common/css/wiki.css')
        
        return 'admin_teamroster_team.html', {'teamRoster':teamRosterData}
コード例 #4
0
    def search_userProfile(self, userProfileTemplate=None):
        if self.masterUserProfilesStore == '':
            return []

        _masterEnv = open_environment(self.masterUserProfilesStore)

        def _changeStore(userProfile):
            userProfile.project_name = userProfile.store.env.project_name
            userProfile.store = self
            return userProfile

        return map(
            _changeStore,
            UserProfilesSystem(_masterEnv).search_userProfile(
                userProfileTemplate))
コード例 #5
0
ファイル: api.py プロジェクト: pombredanne/trachacks
 def setUp(self):
     self.basedir = os.path.realpath(tempfile.mkdtemp())
     self.env = EnvironmentStub(enable=['trac.*', 'tracteamroster.*'])
     self.env.path = os.path.join(self.basedir, 'trac-tempenv')
     os.mkdir(self.env.path)
     self.userProfilesSystem = UserProfilesSystem(self.env)
コード例 #6
0
    def expand_macro(self, formatter, name, content):

        teamRosterData = dict(userProfiles=[])
        rendered_result = ""
        contentArgs = {}
        layoutArgs = {}
        userProfileTemplates = []

        # collecting arguments
        if content:
            for i, macroArgs in enumerate(content.split('|')):
                if i == 0:
                    contentArgs = MacroArguments(macroArgs)
                    self.log.error(contentArgs)
                    continue
                if i == 1:
                    layoutArgs = MacroArguments(macroArgs)
                    break

            # extracting userProfile attrs
            if len(contentArgs) > 0:
                userProfileTemplates.append(UserProfile(**contentArgs))

            if len(contentArgs.getListArgs()) > 0:
                for listItem in contentArgs.getListArgs():
                    userProfileTemplates.append(
                        UserProfile(**MacroArguments(listItem[1:len(listItem) -
                                                              1])))

        # _fixes
        def _fixes(userProfile):
            userProfile.bio_html = wiki_to_html(userProfile.bio, self.env,
                                                formatter.req) or "[blank]"
            return userProfile

        # grabbing userProfiles
        if len(userProfileTemplates) > 0:
            teamRosterData['userProfiles'] = map(
                _fixes,
                UserProfilesSystem(
                    self.env).search_userProfile(userProfileTemplates))
        else:
            teamRosterData['userProfiles'] = map(
                _fixes,
                UserProfilesSystem(self.env).get_active_userProfiles())

        # add stylesheet&script
        add_stylesheet(formatter.req, 'tracteamroster/css/teamroster.css')
        add_script(formatter.req, 'tracteamroster/js/teamroster.js')

        # render template
        rendered_result = Chrome(self.env).render_template(
            formatter.req,
            'macro_teamroster_team.html', {'teamRoster': teamRosterData},
            fragment=True)

        # wrap everything
        if len(layoutArgs) > 0:
            rendered_result = html.div(rendered_result, **layoutArgs)

        return rendered_result
コード例 #7
0
 def get_userProfile(self, userProfile_id):
     _masterEnv = open_environment(self.masterUserProfilesStore)
     return UserProfilesSystem(_masterEnv).get_userProfile(userProfile_id)