Example #1
0
    def create(self, event: Event):
        self.object = event

        wks = self.create_worksheet(title=str(self.object)[0:100], cols=self.columns)

        wks.adjust_column_width(1, None, 300)
        wks.adjust_column_width(2, None, 200)

        self.past_header(str(event.title), self.zeroCell)
        nextRow = self.current_row + 1

        volonteers = Boec.objects.filter(
            event_participation__worth=1, event_participation__event=event
        )
        organizers = Boec.objects.filter(
            event_participation__worth=2, event_participation__event=event
        )
        participants = Boec.objects.filter(
            event_participation__worth=0, event_participation__event=event
        )

        info_values = [
            [["Штаб-организатор"], [event.shtab.title if event.shtab else "Без штаба"]],
            [["Волонтеров"], [volonteers.count()]],
            [["Организаторов"], [organizers.count()]],
            [["Блок"], [event.get_worth_display()]],
        ]
        self.past_info_cells(nextRow, info_values)
        nextRow = self.current_row + 2

        if len(organizers) > 0:
            self.past_header("Организаторы", (nextRow, self.zeroCell[1]))
            nextRow = self.current_row + 1
            self.past_boec(nextRow, organizers, Participant.WorthEnum.ORGANIZER)
            nextRow = self.current_row + 2

        if len(volonteers) > 0:
            self.past_header("Волонтеры", (nextRow, self.zeroCell[1]))
            nextRow = self.current_row + 1
            self.past_boec(nextRow, volonteers, Participant.WorthEnum.VOLONTEER)
            nextRow = self.current_row + 2

        if len(participants) > 0:
            self.past_header("Участники", (nextRow, self.zeroCell[1]))
            nextRow = self.current_row + 1
            self.past_boec(nextRow, participants, Participant.WorthEnum.DEFAULT)

        self.wks.rows = self.current_row

        url = self.get_wks_url()
        return url