Esempio n. 1
0
    def importData(self, start=1, end=0):
        """
        Import data from line 'start' to line 'end'
        """
        splitter = queryAdapter(self, IImportSplitter)

        config = configparser.ConfigParser()
        config.read(
            os.path.join(os.getcwd(), 'var/urban.dataimport', 'utils.cfg'))
        commit_range = config.get("transaction-commit", "range")

        for dataline in self.datasource.iterdata():
            if end and self.current_line > end:
                break
            elif start <= self.current_line and splitter.allow(dataline):

                self.importDataLine(dataline)
                date = DateTime()
                with open("processing.csv", "a") as file:
                    file.write(
                        date.strftime('%Y/%m/%d') + ":" + date.Time() + "," +
                        "Folder current_line commit : " + "," +
                        str(self.current_line) + "\n")

            self.current_line += 1
            if not commit_range == '0' and self.current_line % int(
                    commit_range) == 0:
                transaction.commit()

        self.register_import_transaction(start, self.current_line - 1)
        self.reporting_mail("%s : line %s to %s" %
                            (self.name, start, self.current_line - 1))
Esempio n. 2
0
    def register_import_transaction(self, start, end):
        """
        Store the import transaction on an annotation so we can undo it later
        """
        historic = api.portal.get().__urbandataimport__
        import_transaction = transaction.get()
        import_transaction.note(self.name)
        date = DateTime()
        import_transaction.note(
            u'line {start} to {end}       date: {date} - {time}'.format(
                start=start,
                end=end,
                date=date.strftime('%d/%m/%Y'),
                time=date.Time(),
            ))

        historic_id = 'imio.urban.dataimport.import_historic:%s' % self.name
        import_value = import_transaction.description
        import_key = date.micros()
        if historic_id not in historic:
            import_historic = historic[historic_id] = {}
        else:
            import_historic = historic[historic_id]
        import_historic[import_key] = import_value
        historic[historic_id] = dict(import_historic)
Esempio n. 3
0
class message(Folder):
    """
    The chat message, stores a chat line

    @param date_time: date and time posted
    @param user: the user id who sent this message
    @param msg: the submitted text message
    """
    id = ''
    title = ''
    date_time = None
    user = ''
    msg = ''

    #Class metadata
    #Zope
    meta_type = CHATTER_MESSAGE_META_TYPE
    security = ClassSecurityInfo()
    all_meta_types = {}

    def __init__(self, id, title, user, msg):
        self.id = id
        self.title = title
        self.date_time = DateTime()
        self.user = user
        self.msg = msg

    security.declareProtected(CHATTER_VIEW_ROOM_PERMISSION, 'get_posting_user')

    def get_posting_user(self):
        """ Returns the posting user id """
        return self.user

    security.declareProtected(CHATTER_VIEW_ROOM_PERMISSION, 'get_posting_time')

    def get_posting_time(self):
        """ Returns the time at whitch the message was posted """
        return self.date_time

    security.declareProtected(CHATTER_VIEW_ROOM_PERMISSION, 'get_msg')

    def get_msg(self):
        """ Returns the posted message"""
        msg = ut.utXmlEncode(self.msg)
        msg = self.linkifyURLS(msg)
        return msg

    security.declareProtected(CHATTER_VIEW_ROOM_PERMISSION, 'get_date')

    def get_date(self):
        """ """
        return self.date_time.Date()

    security.declareProtected(CHATTER_VIEW_ROOM_PERMISSION, 'get_time')

    def get_time(self):
        """ """
        return self.date_time.Time()
Esempio n. 4
0
def scadenza_bando(object, **kw):
    datetime_scadenza_bando = getattr(object, "scadenza_bando", None)
    if not datetime_scadenza_bando:
        return DateTime("2100/12/31")
    zope_dt_scadenza_bando = DateTime(datetime_scadenza_bando)
    if zope_dt_scadenza_bando.Time() == "00:00:00":
        return zope_dt_scadenza_bando + 1
    else:
        return zope_dt_scadenza_bando
Esempio n. 5
0
def getScadenza_bando(object, **kw):
    datetime_scadenza_bando = getattr(object, 'scadenza_bando', None)
    if not datetime_scadenza_bando:
        return DateTime('2100/12/31')
    zope_dt_scadenza_bando = DateTime(datetime_scadenza_bando)
    if zope_dt_scadenza_bando.Time() == '00:00:00':
        return zope_dt_scadenza_bando + 1
    else:
        return zope_dt_scadenza_bando
Esempio n. 6
0
    def dict_from_item(item):
        if hasPloneAppEvent and (IEvent.providedBy(item)
                                 or IOccurrence.providedBy(item)):
            # plone.app.event DX or AT Event
            is_occurrence = IOccurrence.providedBy(item)
            acc = IEventAccessor(item)

            return {
                "status":
                "ok",
                "id":
                "UID_%s" % (acc.uid),
                "title":
                acc.title,
                "description":
                acc.description,
                "start":
                acc.start.isoformat(),
                "end":
                acc.end.isoformat(),
                "url":
                acc.url,
                "editable":
                editable,
                "allDay":
                acc.whole_day,
                "className":
                "contextualContentMenuEnabled %s %s %s %s" %
                (state and "state-%s" % str(state)
                 or "", editable and "editable" or "", css and css
                 or "", is_occurrence and "occurrence" or ""),
                "color":
                color
            }
        elif IATEvent.providedBy(item):
            # Products.ATContentTypes ATEvent
            allday = (item.end() - item.start()) > 1.0
            adapted = interfaces.ISFBaseEventFields(item, None)
            if adapted:
                allday = adapted.allDay
            return {
                "status":
                "ok",
                "id":
                "UID_%s" % (item.UID()),
                "title":
                item.Title(),
                "description":
                item.Description(),
                "start":
                item.start().ISO8601(),
                "end":
                item.end().ISO8601(),
                "url":
                item.absolute_url(),
                "editable":
                editable,
                "allDay":
                allday,
                "className":
                "contextualContentMenuEnabled %s %s %s" %
                (state and "state-%s" % str(state)
                 or "", editable and "editable" or "", css and css or ""),
                "color":
                color
            }
        elif ICatalogBrain.providedBy(item):
            # Event catalog brain
            if type(item.end) != DateTime:
                brainend = DateTime(item.end)
                brainstart = DateTime(item.start)
            else:
                brainend = item.end
                brainstart = item.start

            allday = (brainend - brainstart) > 1.0

            if getattr(item, 'SFAllDay', None) in [False, True]:
                allday = item.SFAllDay

            # Set Mexico City Time
            brainstart = DateTime(' '.join(
                (brainstart.Date(), brainstart.Time(), 'America/Mexico_City')))
            brainend = DateTime(' '.join(
                (brainend.Date(), brainend.Time(), 'America/Mexico_City')))

            return {
                "status":
                "ok",
                "id":
                "UID_%s" % (item.UID),
                "title":
                item.Title,
                "description":
                item.Description,
                "start":
                brainstart.ISO8601(),
                "end":
                brainend.ISO8601(),
                "url":
                item.getURL(),
                "editable":
                editable,
                "allDay":
                allday,
                "className":
                "contextualContentMenuEnabled %s %s %s" %
                (state and "state-%s" % str(state)
                 or "", editable and "editable" or "", css and css or ""),
                "color":
                color
            }
        else:
            raise ValueError('item type not supported for: %s' % repr(item))
Esempio n. 7
0
def toTime(date):
    """get time part of a date
    """
    if isinstance(date, datetime.datetime):
        date = DateTime(date)
    return date.Time()
Esempio n. 8
0
def getDateStr(date):
    """Expects date-object, returns a string like: '2016/12/24 21:39:12'."""
    return str(DateTime.Date(date)) + ' ' + str(DateTime.Time(date))