Ejemplo n.º 1
0
 def get_dates(self, dt: datetime.date):
     # Returns a set of days covered by the object.
     if self.kind == "easter":
         return set([easter_date(dt.year)])
     elif self.kind == "month":
         first_monthday = datetime.date(self.year or dt.year, self.month, 1)
         last_monthday = datetime.date(
             self.year or dt.year, self.month,
             self.safe_monthrange(self.year or dt.year, self.month)[1])
         dates = []
         for i in range((last_monthday - first_monthday).days + 1):
             dates.append(first_monthday + datetime.timedelta(i))
         return set(dates)
     elif self.kind == "monthday-day":
         first_day = datetime.date(self.year or dt.year, self.month,
                                   self.monthday)
         last_day = datetime.date(self.year or dt.year, self.month,
                                  self.monthday_to)
         dates = []
         for i in range((last_day - first_day).days + 1):
             dates.append(first_day + datetime.timedelta(i))
         return set(dates)
     else:  # self.kind == "monthday"
         return set([
             datetime.date(self.year or dt.year, self.month, self.monthday)
         ])
Ejemplo n.º 2
0
def olx_links(city='wroclaw', rooms='two'):
    links, dates, titles = [], [], []
    rooms = 'two'
    city = 'wroclaw'
    for page in range(0, 3):
        olx = f"https://www.olx.pl/nieruchomosci/mieszkania/wynajem/{city}/?search%5Bfilter_enum_rooms%5D%5B0%5D={rooms}&page={page}"
        res = requests.get(olx, headers=headers)
        soup = BS(res.text, 'html.parser')
        apartments_cont = soup.find_all('div', class_='space rel')
        for i in apartments_cont:
            try:
                link = i.find('a')['href']
                links.append(link)
            except:
                pass
            try:
                title = i.find('a').text.strip()
                titles.append(title)
            except:
                pass
            try:
                date = i.find_all('span')[1].text.strip().split()[0]
                dates.append(date)
            except:
                pass
    return links
Ejemplo n.º 3
0
 def _get_dates(self):
     start = self.date_start
     end = self.date_end
     if end < start:
         return []
     dates = [start]
     while start != end:
         start += relativedelta(days=1)
         dates.append(start)
     return dates
Ejemplo n.º 4
0
 def _get_dates(self):
     start = self.week_from.date_start
     end = self.week_to.date_start
     if end < start:
         return []
     dates = [start]
     while start != end:
         start += relativedelta(days=7)
         dates.append(start)
     return dates
Ejemplo n.º 5
0
 def _get_dates(self):
     start = self.date_start
     end = self.date_end
     if end < start:
         return []
     # time_period = end - start
     # number_of_days = time_period/timedelta(days=1)
     dates = [start]
     while start != end:
         start += relativedelta(days=1)
         dates.append(start)
     return dates
Ejemplo n.º 6
0
    def _prepare_calendar(self, event, event_track_ids):
        local_tz = pytz.timezone(event.date_tz or 'UTC')
        lang_code = request.env.context.get('lang')
        locations = {}  # { location: [track, start_date, end_date, rowspan]}
        dates = []  # [ (date, {}) ]
        for track in event_track_ids:
            locations.setdefault(track.location_id or False, [])

        forcetr = True
        for track in event_track_ids:
            start_date = fields.Datetime.from_string(
                track.date).replace(tzinfo=pytz.utc).astimezone(local_tz)
            end_date = start_date + datetime.timedelta(
                hours=(track.duration or 0.5))
            location = track.location_id or False
            locations.setdefault(location, [])

            # New TR, align all events
            if forcetr or (start_date > dates[-1][0]) or not location:
                formatted_time = self._get_locale_time(start_date, lang_code)
                dates.append((start_date, {}, bool(location), formatted_time))
                for loc in list(locations):
                    if locations[loc] and (locations[loc][-1][2] > start_date):
                        locations[loc][-1][3] += 1
                    elif not locations[
                            loc] or locations[loc][-1][2] <= start_date:
                        locations[loc].append([
                            False, locations[loc] and locations[loc][-1][2]
                            or dates[0][0], start_date, 1
                        ])
                        dates[-1][1][loc] = locations[loc][-1]
                forcetr = not bool(location)

            # Add event
            if locations[location] and locations[location][-1][1] > start_date:
                locations[location][-1][3] -= 1
            locations[location].append([track, start_date, end_date, 1])
            dates[-1][1][location] = locations[location][-1]
            locations = collections.OrderedDict(
                sorted(locations.items(), key=lambda t: t[0].id
                       if t[0] else 0))
        return {'locations': locations, 'dates': dates}