Changeset 561719 in indico
- Timestamp:
- 10/21/11 16:39:27 (19 months ago)
- Branches:
- master, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, d9941f8582b36b24821a11ea5ba16fda6a457fb1
- Children:
- ff053c
- Parents:
- c7f5d2
- git-author:
- Adrian Moennich <jerome.ernst.monnich@…> (09/28/11 15:27:07)
- git-committer:
- Jose Benito <jose.benito.gonzalez@…> (10/21/11 16:39:27)
- File:
-
- 1 edited
-
indico/MaKaC/plugins/Collaboration/http_api.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
indico/MaKaC/plugins/Collaboration/http_api.py
refb1b9 r561719 25 25 from MaKaC.webinterface.rh.collaboration import RCCollaborationAdmin 26 26 from MaKaC.plugins.Collaboration.RecordingManager.common import createIndicoLink 27 from MaKaC.plugins.Collaboration.pages import WElectronicAgreement 28 from MaKaC.plugins.Collaboration.collaborationTools import CollaborationTools 29 from MaKaC.conference import ConferenceHolder 30 from MaKaC.plugins.Collaboration.base import SpeakerStatusEnum 27 31 28 32 29 globalHTTPAPIHooks = ['CollaborationAPIHook' ]33 globalHTTPAPIHooks = ['CollaborationAPIHook', 'CollaborationExportHook'] 30 34 31 35 class CollaborationAPIHook(HTTPAPIHook): … … 52 56 success = createIndicoLink(self._indicoID, self._cdsID) 53 57 return {'success': success} 58 59 60 class CollaborationExportHook(HTTPAPIHook): 61 TYPES = ('eAgreements',) 62 RE = r'(?P<confId>\w+)' 63 GUEST_ALLOWED = False 64 VALID_FORMATS = ('json', 'jsonp', 'xml') 65 66 def _hasAccess(self, aw): 67 return RCCollaborationAdmin.hasRights(user=aw.getUser()) 68 69 def _getParams(self): 70 super(CollaborationExportHook, self)._getParams() 71 self._conf = ConferenceHolder().getById(self._pathParams['confId'], True) 72 if not self._conf: 73 raise HTTPAPIError('Conference does not exist.', apache.HTTP_BAD_REQUEST) 74 75 def export_eAgreements(self, aw): 76 manager = self._conf.getCSBookingManager() 77 requestType = CollaborationTools.getRequestTypeUserCanManage(self._conf, aw.getUser()) 78 contributions = manager.getContributionSpeakerByType(requestType) 79 for cont, speakers in contributions.items(): 80 for spk in speakers: 81 sw = manager.getSpeakerWrapperByUniqueId('%s.%s' % (cont, spk.getId())) 82 status = sw.getStatus() if sw else None 83 signed = None 84 if status in (SpeakerStatusEnum.FROMFILE, SpeakerStatusEnum.SIGNED): 85 signed = True 86 elif status == SpeakerStatusEnum.REFUSED: 87 signed = False 88 yield { 89 'type': sw and sw.getRequestType(), 90 'status': status, 91 'signed': signed, 92 'contrib': cont, 93 'speaker': { 94 'id': spk.getId(), 95 'name': spk.getFullName(), 96 'email': spk.getEmail() 97 } 98 }
Note: See TracChangeset
for help on using the changeset viewer.
