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()
예제 #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()
예제 #3
0
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
예제 #4
0
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()

예제 #5
0
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
예제 #6
0
## 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()
예제 #7
0
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()
예제 #8
0
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()
예제 #9
0
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()
예제 #10
0
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()