コード例 #1
0
    def create_vacancy(self, partners, categories):
        """
        Create a new random vacancy

        :param partners: the partners to choose a partner from
        :param categories: the categories to choose this vacancy from
        """
        vacancy = Vacancy()

        vacancy.title = _faker.job()
        vacancy.description = _faker.paragraph(nb_sentences=10)
        vacancy.link = _faker.uri()

        if random.random() < 0.75:
            vacancy.partner = random.choice(partners)
        else:
            vacancy.company_name = "{} {}".format(_faker.company(),
                                                  _faker.company_suffix())
            igen = IconGenerator(5, 5)  # 5x5 blocks
            icon = igen.generate(
                vacancy.company_name,
                480,
                480,
                padding=(10, 10, 10, 10),
                output_format="jpeg",
            )  # 620x620 pixels, with 10 pixels padding on each side
            vacancy.company_logo.save(vacancy.company_name + ".jpeg",
                                      ContentFile(icon))

        vacancy.save()

        vacancy.categories.set(
            random.sample(list(categories), random.randint(0, 3)))
コード例 #2
0
    def create_partner(self):
        """Create a new random partner"""
        partner = Partner()

        partner.is_active = random.random() < 0.75
        partner.name = "{} {}".format(_faker.company(),
                                      _faker.company_suffix())
        partner.slug = _faker.slug()
        partner.link = _faker.uri()

        igen = IconGenerator(5, 5)  # 5x5 blocks
        icon = igen.generate(
            partner.name,
            480,
            480,
            padding=(10, 10, 10, 10),
            output_format="jpeg",
        )  # 620x620 pixels, with 10 pixels padding on each side
        partner.logo.save(partner.name + ".jpeg", ContentFile(icon))

        partner.address = _faker.street_address()
        partner.zip_code = _faker.postcode()
        partner.city = _faker.city()

        partner.save()
コード例 #3
0
    def create_member_group(self, group_model):
        """
        Create a MemberGroup
        """
        members = Member.objects.all()
        if len(members) < 6:
            self.stdout.write("Your database does not contain 6 users.")
            self.stdout.write(f"Creating {6 - len(members)} more users.")
            for __ in range(6 - len(members)):
                self.create_user()
            members = Member.objects.all()

        member_group = group_model()

        member_group.name_nl = _generate_title()
        member_group.name_en = member_group.name_nl
        member_group.description_nl = _faker.paragraph()
        member_group.description_en = _faker.paragraph()

        igen = IconGenerator(5, 5)  # 5x5 blocks
        icon = igen.generate(
            member_group.name_nl,
            480,
            480,
            padding=(10, 10, 10, 10),
            output_format="jpeg",
        )  # 620x620 pixels, with 10 pixels padding on each side
        member_group.photo.save(member_group.name_nl + ".jpeg",
                                ContentFile(icon))

        member_group.since = _faker.date_time_between("-10y", "+30d")

        if random.random() < 0.1:
            now = date.today()
            month = timedelta(days=30)
            member_group.until = _faker.date_time_between_dates(
                member_group.since, now + 2 * month).date()

        member_group.active = random.random() < 0.9
        member_group.contact_email = _faker.safe_email()

        member_group.save()

        # Add members
        committee_members = random.sample(list(members), random.randint(2, 6))
        for member in committee_members:
            self.create_member_group_membership(member, member_group)

        # Make one member the chair
        chair = random.choice(member_group.membergroupmembership_set.all())
        chair.until = None
        chair.chair = True
        chair.save()
コード例 #4
0
    def create_board(self, lecture_year):
        """
        Create a new board

        :param int lecture_year: the  lecture year this board was active
        """
        self.stdout.write("Creating a board")
        members = Member.objects.all()
        if len(members) < 6:
            self.stdout.write("Your database does not contain 6 users.")
            self.stdout.write(f"Creating {6 - len(members)} more users.")
            for __ in range(6 - len(members)):
                self.create_user()

        board = Board()

        board.name = "Board {}-{}".format(lecture_year, lecture_year + 1)
        while Board.objects.filter(name=board.name).exists():
            lecture_year = lecture_year - 1
            board.name = "Board {}-{}".format(lecture_year, lecture_year + 1)

        board.description = _faker.paragraph()

        igen = IconGenerator(5, 5)  # 5x5 blocks
        icon = igen.generate(
            board.name,
            480,
            480,
            padding=(10, 10, 10, 10),
            output_format="jpeg"
        )  # 620x620 pixels, with 10 pixels padding on each side
        board.photo.save(f"{board.name}.jpeg", ContentFile(icon))

        board.since = date(year=lecture_year, month=9, day=1)
        board.until = date(year=lecture_year + 1, month=8, day=31)
        board.active = True
        board.contact_email = _faker.safe_email()

        board.save()

        # Add members
        board_members = random.sample(list(members), random.randint(5, 6))
        for member in board_members:
            self.create_member_group_membership(member, board)

        # Make one member the chair
        chair = random.choice(board.membergroupmembership_set.all())
        chair.until = None
        chair.chair = True
        chair.save()
コード例 #5
0
    def create_user(self):
        """Create a new random user"""
        self.stdout.write("Creating a user")

        fakeprofile = _faker.profile()
        fakeprofile["password"] = "".join(
            random.choice(string.ascii_uppercase + string.digits)
            for _ in range(16))
        user = get_user_model().objects.create_user(fakeprofile["username"],
                                                    fakeprofile["mail"],
                                                    fakeprofile["password"])
        user.first_name = fakeprofile["name"].split()[0]
        user.last_name = " ".join(fakeprofile["name"].split()[1:])

        profile = _ProfileFactory()
        profile.user_id = user.id
        profile.birthday = fakeprofile["birthdate"]
        profile.website = fakeprofile["website"][0]

        igen = IconGenerator(5, 5)  # 5x5 blocks
        icon = igen.generate(
            user.username,
            480,
            480,
            padding=(10, 10, 10, 10),
            output_format="jpeg",
        )  # 620x620 pixels, with 10 pixels padding on each side
        profile.photo.save(fakeprofile["username"] + ".jpeg",
                           ContentFile(icon))

        membership = Membership()
        membership.user_id = user.id
        membership.since = _faker.date_time_between(start_date="-4y",
                                                    end_date="now",
                                                    tzinfo=None)
        membership.until = random.choice([
            _faker.date_time_between(start_date=membership.since,
                                     end_date="+2y",
                                     tzinfo=None),
            None,
        ])
        membership.type = random.choice(
            [t[0] for t in Membership.MEMBERSHIP_TYPES])

        user.save()
        profile.save()
        membership.save()
コード例 #6
0
    def create_photo(self, album):
        photo = Photo()

        photo.album = album

        name = _generate_title()

        igen = IconGenerator(5, 5)  # 5x5 blocks
        icon = igen.generate(
            name,
            480,
            480,
            padding=(10, 10, 10, 10),
            output_format="jpeg",
        )  # 620x620 pixels, with 10 pixels padding on each side
        photo.file.save(f"{name}.jpeg", ContentFile(icon))

        photo.save()