def buildCache(ids):
    i = 1
    for id in ids:
        DBMgr.getInstance().startRequest()
        try:
            conf = ConferenceHolder().getById(id)
        except:
            print "conf %s not found"
            continue
        j = 1
        for cont in conf.getContributionList():
            print "conf %d:%s - contrib %d:%s"%(i, conf.getId(), j, cont.getId())
            og = outputGenerator(AccessWrapper())
            x = og.contribToXMLMarc21(cont, 1, overrideCache=True)
            for subCont in cont.getSubContributionList():
                print "conf %d:%s - contrib %d:%s - subContrib:%s"%(i, conf.getId(), j, cont.getId(), subCont.getId())
                y = og.subContribToXMLMarc21(subCont, 1, overrideCache=True)
            j += 1
        i += 1
        DBMgr.getInstance().endRequest()
Beispiel #2
0
def buildCache(ids):
    i = 1
    for id in ids:
        DBMgr.getInstance().startRequest()
        try:
            conf = ConferenceHolder().getById(id)
        except:
            print "conf %s not found"
            continue
        j = 1
        for cont in conf.getContributionList():
            print "conf %d:%s - contrib %d:%s"%(i, conf.getId(), j, cont.getId())
            og = outputGenerator(AccessWrapper())
            x = og.contribToXMLMarc21(cont, 1, overrideCache=True)
            for subCont in cont.getSubContributionList():
                print "conf %d:%s - contrib %d:%s - subContrib:%s"%(i, conf.getId(), j, cont.getId(), subCont.getId())
                y = og.subContribToXMLMarc21(subCont, 1, overrideCache=True)
            j += 1
        i += 1
        DBMgr.getInstance().endRequest()
Beispiel #3
0
def buildCache(ids):
    i = 1
    for id in ids:
        DBMgr.getInstance().startRequest()
        try:
            conf = ConferenceHolder().getById(id)
        except:
            print "conf %s not found"
            continue
        print i, ":", conf.getId()
        og = outputGenerator(AccessWrapper())
        x = og.confToXML(conf, 1, 1, 1, overrideCache=True)
        y = og.confToXMLMarc21(conf, 1, 1, 1, overrideCache=True)
        i += 1
        DBMgr.getInstance().endRequest()
def buildCache(ids):
    i = 1
    for id in ids:
        DBMgr.getInstance().startRequest()
        try:
            conf = ConferenceHolder().getById(id)
        except:
            print "conf %s not found"
            continue
        print i, ":", conf.getId()
        og = outputGenerator(AccessWrapper())
        x = og.confToXML(conf, 1, 1, 1, overrideCache=True)
        y = og.confToXMLMarc21(conf, 1, 1, 1, overrideCache=True)
        i += 1
        DBMgr.getInstance().endRequest()
Beispiel #5
0
class CollaborationExportHook(HTTPAPIHook):
    TYPES = ('eAgreements', )
    RE = r'(?P<confId>\w+)'
    GUEST_ALLOWED = False
    VALID_FORMATS = ('json', 'jsonp', 'xml')

    def _hasAccess(self, aw):
        return RCCollaborationAdmin.hasRights(user=aw.getUser())

    def _getParams(self):
        super(CollaborationExportHook, self)._getParams()
        self._conf = ConferenceHolder().getById(self._pathParams['confId'],
                                                True)
        if not self._conf:
            raise HTTPAPIError('Conference does not exist.', 400)

    def export_eAgreements(self, aw):
        manager = Catalog.getIdx("cs_bookingmanager_conference").get(
            self._conf.getId())
        requestType = CollaborationTools.getRequestTypeUserCanManage(
            self._conf, aw.getUser())
        contributions = manager.getContributionSpeakerByType(requestType)
        for cont, speakers in contributions.items():
            for spk in speakers:
                sw = manager.getSpeakerWrapperByUniqueId('%s.%s' %
                                                         (cont, spk.getId()))
                if not sw:
                    continue
                signed = None
                if sw.getStatus() in (SpeakerStatusEnum.FROMFILE,
                                      SpeakerStatusEnum.SIGNED):
                    signed = True
                elif sw.getStatus() == SpeakerStatusEnum.REFUSED:
                    signed = False
                yield {
                    'confId': sw.getConference().getId(),
                    'contrib': cont,
                    'type': sw.getRequestType(),
                    'status': sw.getStatus(),
                    'signed': signed,
                    'speaker': {
                        'id': spk.getId(),
                        'name': spk.getFullName(),
                        'email': spk.getEmail()
                    }
                }
Beispiel #6
0
class CollaborationExportHook(HTTPAPIHook):
    TYPES = ('eAgreements', )
    RE = r'(?P<confId>\w+)'
    GUEST_ALLOWED = False
    VALID_FORMATS = ('json', 'jsonp', 'xml')

    def _hasAccess(self, aw):
        return RCCollaborationAdmin.hasRights(user=aw.getUser())

    def _getParams(self):
        super(CollaborationExportHook, self)._getParams()
        self._conf = ConferenceHolder().getById(self._pathParams['confId'], True)
        if not self._conf:
            raise HTTPAPIError('Conference does not exist.', apache.HTTP_BAD_REQUEST)

    def export_eAgreements(self, aw):
        manager = Catalog.getIdx("cs_bookingmanager_conference").get(self._conf.getId())
        requestType = CollaborationTools.getRequestTypeUserCanManage(self._conf, aw.getUser())
        contributions = manager.getContributionSpeakerByType(requestType)
        for cont, speakers in contributions.items():
            for spk in speakers:
                sw = manager.getSpeakerWrapperByUniqueId('%s.%s' % (cont, spk.getId()))
                if not sw:
                    continue
                signed = None
                if sw.getStatus() in (SpeakerStatusEnum.FROMFILE, SpeakerStatusEnum.SIGNED):
                    signed = True
                elif sw.getStatus() == SpeakerStatusEnum.REFUSED:
                    signed = False
                yield {
                    'confId': sw.getConference().getId(),
                    'contrib': cont,
                    'type': sw.getRequestType(),
                    'status': sw.getStatus(),
                    'signed': signed,
                    'speaker': {
                        'id': spk.getId(),
                        'name': spk.getFullName(),
                        'email': spk.getEmail()
                    }
                }
Beispiel #7
0
class AgreementExportHook(HTTPAPIHook):
    TYPES = ('agreements',)
    RE = r'(?P<agreement_type>[^/]+)/(?P<event_id>\w+)'
    MAX_RECORDS = {}
    GUEST_ALLOWED = False
    VALID_FORMATS = ('json', 'jsonp', 'xml')

    def _getParams(self):
        super(AgreementExportHook, self)._getParams()
        type_ = self._pathParams['agreement_type']
        try:
            self._definition = get_agreement_definitions()[type_]
        except KeyError:
            raise HTTPAPIError('No such agreement type', 404)
        self._event = ConferenceHolder().getById(self._pathParams['event_id'], True)
        if self._event is None:
            raise HTTPAPIError('No such event', 404)

    def _hasAccess(self, aw):
        return self._definition.can_access_api(aw.getUser().user, self._event)

    def export_agreements(self, aw):
        sent_agreements = {a.identifier: a for a in Agreement.find(event_id=self._event.getId(),
                                                                   type=self._definition.name)}
        for person in islice(sorted(self._definition.get_people(self._event).itervalues(),
                                    key=attrgetter('name', 'identifier')),
                             self._offset, self._offset + self._limit):
            agreement = sent_agreements.get(person.identifier)
            data = {
                'event_id': int(self._event.id),
                'identifier': person.identifier,
                'sent': agreement is not None,
                'accepted': None if (not agreement or agreement.pending) else agreement.accepted,
            }
            self._definition.extend_api_data(self._event, person, agreement, data)
            yield data
Beispiel #8
0
class AgreementExportHook(HTTPAPIHook):
    TYPES = ('agreements',)
    RE = r'(?P<agreement_type>[^/]+)/(?P<event_id>\w+)'
    MAX_RECORDS = {}
    GUEST_ALLOWED = False
    VALID_FORMATS = ('json', 'jsonp', 'xml')

    def _getParams(self):
        super(AgreementExportHook, self)._getParams()
        type_ = self._pathParams['agreement_type']
        try:
            self._definition = get_agreement_definitions()[type_]
        except KeyError:
            raise HTTPAPIError('No such agreement type', 404)
        self._event = ConferenceHolder().getById(self._pathParams['event_id'], True)
        if self._event is None:
            raise HTTPAPIError('No such event', 404)

    def _hasAccess(self, aw):
        return self._definition.can_access_api(aw.getUser(), self._event)

    def export_agreements(self, aw):
        sent_agreements = {a.identifier: a for a in Agreement.find(event_id=self._event.getId(),
                                                                   type=self._definition.name)}
        for person in islice(sorted(self._definition.get_people(self._event).itervalues(),
                                    key=attrgetter('name', 'identifier')),
                             self._offset, self._offset + self._limit):
            agreement = sent_agreements.get(person.identifier)
            data = {
                'event_id': int(self._event.id),
                'identifier': person.identifier,
                'sent': agreement is not None,
                'accepted': None if (not agreement or agreement.pending) else agreement.accepted,
            }
            self._definition.extend_api_data(self._event, person, agreement, data)
            yield data