def build_boxes(self): intervals = Intervals() intervals.interval_type = self.interval_type intervals.x = self.x intervals.start = self.start intervals.finish = self.finish intervals.resolution = self.resolution intervals.week_start = self.week_start box = Rectangle() box.y = self.y box.height = self.height box.border_rounding = self.box_rounding box.border_color = self.box_border_color box.border_width = self.box_border_width boxes = str() for i in intervals.get_intervals(): box.x = i[0] box.width = i[1] if i[4] is False: box.fill_color = self.ends else: box.fill_color = self.box_fill boxes += box.svg return boxes
def build_grid(self): intervals = Intervals() intervals.interval_type = self.interval_type intervals.x = self.x intervals.start = self.start intervals.finish = self.finish intervals.resolution = self.resolution intervals.week_start = self.week_start line = Line() line.y = self.y line.dy = self.y + self.height line.stroke_color = self.line_color line.stroke_width = self.line_width line.stroke_dasharray = self.line_dashing lines = str() for i in intervals.get_intervals(): line.x = i[0] line.dx = line.x lines += line.svg last_line = self.x + ((self.finish - self.start) * self.resolution) line.x = last_line line.dx = last_line lines += line.svg return lines
def build_labels(self): intervals = Intervals() intervals.interval_type = self.interval_type intervals.x = self.x intervals.start = self.start intervals.finish = self.finish intervals.resolution = self.resolution intervals.week_start = self.week_start date = Date() date.week_start = self.week_start date.separator = self.separator date.date_format = self.date_format label = Text() label.text_y = self.y label.text_translate_y = self.text_y label.text_translate_x = self.text_x label.font_fill_color = self.font_fill label.font_size = self.font_size label.font_weight = self.font_weight label.font_family = self.font_family label.font_style = self.font_style labels = str() if self.label_type == 'hidden': label.text_visibility = 'hidden' for i in intervals.get_intervals(): label.text_x = i[0] if i[1] < self.min_label_width: label.text = str( ) # you could set visibility to hidden but more verbose elif self.label_type == 'count' and i[3] == 0: label.text = str( ) # you could set visibility to hidden but more verbose elif self.label_type == 'date': date.ordinal_date = i[2] label.text = date.get_date() else: label.text = i[3] # references count in intervals entry labels += label.svg return labels