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()
class PiwikReport(PiwikReportBase): fossilizes(IPiwikReportFossil) _defaultReportInterval = 14 def __init__(self, startDate, endDate, confId, contribId=None): """ Builds the map of generators to fill this object's variables before fossilization. """ PiwikReportBase.__init__(self) report = BaseReportGenerator self._conf = ConferenceHolder().getById(confId) self._confId = confId self._contribId = contribId self._buildDateRange(startDate, endDate) self._contributions = [] params = { 'startDate': self._startDate, 'endDate': self._endDate, 'confId': confId } if contribId: params['contribId'] = contribId # This report only has need for images and values, not for widgets. self._reportGenerators = { 'values': { 'visits': report(pq.PiwikQueryMetricConferenceVisits, params), 'uniqueVisits': report(pq.PiwikQueryMetricConferenceUniqueVisits, params), 'visitLength': report(pq.PiwikQueryMetricConferenceVisitLength, params), 'referrers': report(pq.PiwikQueryMetricConferenceReferrers, params), 'peakDate': report(pq.PiwikQueryMetricConferencePeakDateAndVisitors, params) } } self._buildReports() self._buildConferenceContributions() def _buildDateRange(self, startDate, endDate): """ If the default values are passed through, computes the appropriate date range based on whether today is before or after the conference end date. If after, end of period is set as conference end date. Start date is then calculated by the _defaultReportInterval difference. """ def getStartDate(): interval = datetime.timedelta(days=self._defaultReportInterval) adjustedStartDate = self._endDateTime - interval return str(adjustedStartDate.date()) def getEndDate(): today = nowutc() confEndDate = self._conf.getEndDate() self._endDateTime = confEndDate if today > confEndDate else today return str(self._endDateTime.date()) self._endDate = endDate if endDate else getEndDate() self._startDate = startDate if startDate else getStartDate() def _buildConferenceContributions(self): """ As this implementation permits the viewing of individual contributions, we make a list of tuples associating the uniqueId with the title (and start time) to be fossilized. """ contributions = self._conf.getContributionList() if contributions: self._contributions.append( ('None', str(_('Conference: ') + self._conf.getTitle()))) for ctrb in contributions: if not ctrb.isScheduled(): continue ctrbTime = str(ctrb.getStartDate().hour) + ':' + str( ctrb.getStartDate().minute) ctrbInfo = _( 'Contribution: ') + ctrb.getTitle() + ' (' + ctrbTime + ')' value = (ctrb.getUniqueId(), ctrbInfo) self._contributions.append(value) else: self._contributions = False def _getContributions(self): return self._contributions def getConferenceId(self): return self._confId def getContributionId(self): return self._contribId
from MaKaC.common import DBMgr from MaKaC.conference import ConferenceHolder CONFID='XXXXX' # Replace XXXX with the ID of your conference. DBMgr.getInstance().startRequest() c=ConferenceHolder().getById(CONFID) for contrib in c.getContributionList(): contrib._submittersEmail=map(lambda x: x.lower(),contrib.getSubmitterEmailList()) DBMgr.getInstance().commit() DBMgr.getInstance().sync() for contrib in c.getContributionList(): for email in contrib.getSubmitterEmailList(): email=email.lower() res=AvatarHolder().match({'email':email}) if len(res)==1: contrib.grantSubmission(res[0]) contrib.revokeSubmissionEmail(email) DBMgr.getInstance().commit() DBMgr.getInstance().endRequest()
class PiwikReport(PiwikReportBase): fossilizes(IPiwikReportFossil) _defaultReportInterval = 14 def __init__(self, startDate, endDate, confId, contribId=None): """ Builds the map of generators to fill this object's variables before fossilization. """ PiwikReportBase.__init__(self) report = BaseReportGenerator self._conf = ConferenceHolder().getById(confId) self._confId = confId self._contribId = contribId self._buildDateRange(startDate, endDate) self._contributions = [] params = {'startDate': self._startDate, 'endDate': self._endDate, 'confId': confId} if contribId: params['contribId'] = contribId # This report only has need for images and values, not for widgets. self._reportGenerators = { 'values': {'visits': report(pq.PiwikQueryMetricConferenceVisits, params), 'uniqueVisits': report(pq.PiwikQueryMetricConferenceUniqueVisits, params), 'visitLength': report(pq.PiwikQueryMetricConferenceVisitLength, params), 'referrers': report(pq.PiwikQueryMetricConferenceReferrers, params), 'peakDate': report(pq.PiwikQueryMetricConferencePeakDateAndVisitors, params)} } self._buildReports() self._buildConferenceContributions() def _buildDateRange(self, startDate, endDate): """ If the default values are passed through, computes the appropriate date range based on whether today is before or after the conference end date. If after, end of period is set as conference end date. Start date is then calculated by the _defaultReportInterval difference. """ def getStartDate(): interval = datetime.timedelta(days=self._defaultReportInterval) adjustedStartDate = self._endDateTime - interval return str(adjustedStartDate.date()) def getEndDate(): today = nowutc() confEndDate = self._conf.getEndDate() self._endDateTime = confEndDate if today > confEndDate else today return str(self._endDateTime.date()) self._endDate = endDate if endDate else getEndDate() self._startDate = startDate if startDate else getStartDate() def _buildConferenceContributions(self): """ As this implementation permits the viewing of individual contributions, we make a list of tuples associating the uniqueId with the title (and start time) to be fossilized. """ contributions = self._conf.getContributionList() if contributions: self._contributions.append(('None', str(_('Conference: ') + self._conf.getTitle()))) for ctrb in contributions: if not ctrb.isScheduled(): continue ctrbTime = str(ctrb.getStartDate().hour) + ':' + str(ctrb.getStartDate().minute) ctrbInfo = _('Contribution: ') + ctrb.getTitle() + ' (' + ctrbTime + ')' value = (ctrb.getUniqueId(), ctrbInfo) self._contributions.append(value) else: self._contributions = False def _getContributions(self): return self._contributions def getConferenceId(self): return self._confId def getContributionId(self): return self._contribId
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Indico;if not, see <http://www.gnu.org/licenses/>. from MaKaC.common import DBMgr from MaKaC.conference import ConferenceHolder CONFID='XXXXX' # Replace XXXX with the ID of your conference. DBMgr.getInstance().startRequest() c=ConferenceHolder().getById(CONFID) for contrib in c.getContributionList(): contrib._submittersEmail=map(lambda x: x.lower(),contrib.getSubmitterEmailList()) DBMgr.getInstance().commit() DBMgr.getInstance().sync() for contrib in c.getContributionList(): for email in contrib.getSubmitterEmailList(): email=email.lower() res=AvatarHolder().match({'email':email}) if len(res)==1: contrib.grantSubmission(res[0]) contrib.revokeSubmissionEmail(email) DBMgr.getInstance().commit()
def main(argv): category = -1 meeting = -1 show = 0 try: opts, args = getopt.getopt(argv, "hm:c:s", ["help","meeting=","category=", "show"]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ("-s","--show"): show = 1 elif opt in ("-m","--meeting"): meeting = arg elif opt in ("-c","--category"): category = arg # Create database instance and open trashcan manager object DBMgr.getInstance().startRequest() t=TrashCanManager() conf = None if(show): for i in t.getList(): if isinstance(i, Conference): if meeting != -1 and i.getId() == meeting: print "[%s]%s"%(i.getId(),i.getTitle()) elif meeting == -1: print "[%s]%s"%(i.getId(),i.getTitle()) sys.exit() if(meeting != -1 and category != -1): print "Meeting:%s"%meeting print "Category:%s" % category for i in t.getList(): if isinstance(i,Conference): if i.getId() == meeting: conf = i break if conf: DBMgr.getInstance().sync() with RequestListenerContext(): # Remove meeting from the TrashCanManager t.remove(conf) # Attach meeting to desired category cat = CategoryManager().getById(category) ConferenceHolder().add(conf) cat._addConference(conf) # Add Evaluation c = ConferenceHolder().getById(meeting) from MaKaC.evaluation import Evaluation c.setEvaluations([Evaluation(c)]) # indexes c._notify('created', cat) for contrib in c.getContributionList(): contrib._notify('created', c) else: print "not found!" DBMgr.getInstance().endRequest() ContextManager.destroy()
sys.path.append("c:/development/indico/code/code") from MaKaC.common import DBMgr DBMgr.getInstance().startRequest() from MaKaC.conference import ConferenceHolder, Contribution from MaKaC.conference import ContributionParticipation from MaKaC.schedule import LinkedTimeSchEntry c = ConferenceHolder().getById("2") sch = [] for entry in c.getSchedule().getEntries(): sch.append(entry) if isinstance(entry,LinkedTimeSchEntry) and \ isinstance(entry.getOwner(),Contribution): for spk in entry.getOwner().speakers: p = ContributionParticipation() p.setFirstName(spk.getName()) p.setFamilyName(spk.getSurName()) p.setTitle(spk.getTitle()) p.setEmail(spk.getEmail()) p.setAffiliation(spk.getOrganisation()) p.setAffiliation(spk.getOrganisation()) entry.getOwner().addPrimaryAuthor(p) entry.getOwner().addSpeaker(p) entry.getOwner().speakers = None c._setSchedule() for entry in sch: c.getSchedule().addEntry(entry) c = ConferenceHolder().getById("1") while len(c.getContributionList()) > 0: c.removeContribution(c.getContributionList()[0]) DBMgr.getInstance().endRequest()
def main(argv): category = -1 meeting = -1 show = 0 ContextManager.create() try: opts, args = getopt.getopt(argv, "hm:c:s", ["help", "meeting=", "category=", "show"]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ("-s", "--show"): show = 1 elif opt in ("-m", "--meeting"): meeting = arg elif opt in ("-c", "--category"): category = arg # Create database instance and open trashcan manager object DBMgr.getInstance().startRequest() t = TrashCanManager() conf = None if (show): for i in t.getList(): if isinstance(i, Conference): if meeting != -1 and i.getId() == meeting: print "[%s]%s" % (i.getId(), i.getTitle()) elif meeting == -1: print "[%s]%s" % (i.getId(), i.getTitle()) sys.exit() if (meeting != -1 and category != -1): print "Meeting:%s" % meeting print "Category:%s" % category for i in t.getList(): if isinstance(i, Conference): if i.getId() == meeting: conf = i break if conf: DBMgr.getInstance().sync() with RequestListenerContext(): # Remove meeting from the TrashCanManager t.remove(conf) # Attach meeting to desired category cat = CategoryManager().getById(category) ConferenceHolder().add(conf) cat._addConference(conf) # Add Evaluation c = ConferenceHolder().getById(meeting) from MaKaC.evaluation import Evaluation c.setEvaluations([Evaluation(c)]) # indexes c.indexConf() c._notify('created', cat) for contrib in c.getContributionList(): contrib._notify('created', c) else: print "not found!" DBMgr.getInstance().endRequest() ContextManager.destroy()
sys.path.append("c:/development/indico/code/code") from indico.core.db import DBMgr DBMgr.getInstance().startRequest() from MaKaC.conference import ConferenceHolder,Contribution from MaKaC.conference import ContributionParticipation from MaKaC.schedule import LinkedTimeSchEntry c=ConferenceHolder().getById("2") sch=[] for entry in c.getSchedule().getEntries(): sch.append(entry) if isinstance(entry,LinkedTimeSchEntry) and \ isinstance(entry.getOwner(),Contribution): for spk in entry.getOwner().speakers: p=ContributionParticipation() p.setFirstName(spk.getName()) p.setFamilyName(spk.getSurName()) p.setTitle(spk.getTitle()) p.setEmail(spk.getEmail()) p.setAffiliation(spk.getOrganisation()) p.setAffiliation(spk.getOrganisation()) entry.getOwner().addPrimaryAuthor(p) entry.getOwner().addSpeaker(p) entry.getOwner().speakers=None c._setSchedule() for entry in sch: c.getSchedule().addEntry(entry) c=ConferenceHolder().getById("1") while len(c.getContributionList())>0: c.removeContribution(c.getContributionList()[0]) DBMgr.getInstance().endRequest()