예제 #1
0
class BankAccountActivitiesImportForm(Form):
    account = SelectField(u"Bankkonto", coerce=int)
    user = StringField(u"Loginname", validators=[DataRequired()])
    pin = PasswordField(u"PIN", validators=[DataRequired()])
    start_date = DateField(u"Startdatum")
    end_date = DateField(u"Enddatum")
    do_import = BooleanField(u"Import durchführen", default=False)
예제 #2
0
class BankAccountActivityReadForm(Form):
    bank_account_name = static(StringField(u"Bankkonto"))
    amount = disabled(MoneyField(u"Wert"))
    reference = static(StringField(u"Verwendungszweck"))
    other_account_number = static(StringField(u"Kontonummer"))
    other_routing_number = static(StringField(u"Bankleitzahl (BLZ)"))
    other_name = static(StringField(u"Name"))
    valid_on = static(DateField(u"Valutadatum"))
    posted_on = static(DateField(u"Buchungsdatum"))
예제 #3
0
class PreMemberEditForm(UserBaseDataForm, SelectRoomForm):
    # overrides `email` from UserBaseDataForm
    email = TextField("E-Mail", [DataRequired("Mitgliedschaftsanfragen benötigen E-Mail"),
                                 Email(message="E-Mail ist ungueltig!")], filters=[empty_to_none])
    birthdate = DateField(u"Geburtsdatum", [DataRequired("Das Geburtsdatum wird benötigt!")])
    move_in_date = DateField("Einzugsdatum", [Optional()])
    person_id = IntegerField("Debitorennummer", [Optional()], filters=[empty_to_none])

    force = ConfirmCheckboxField("* Hinweise ignorieren")

    _order = ("name", "building", "level", "room_number")
예제 #4
0
class UserEditForm(Form):
    name = TextField(u"Name", [DataRequired(message=u"Name wird benötigt!")])
    email = TextField(u"E-Mail",
                      [Optional(), Email(u"E-Mail-Adresse ist ungültig!")])
    email_forwarded = BooleanField("E-Mail Weiterleitung", default=True)
    birthdate = DateField(u"Geburtsdatum", [Optional()])
    person_id = IntegerField("Debitorennummer", [Optional()],
                             filters=[empty_to_none])
예제 #5
0
class RescheduleTaskForm(BaseForm):
    when = DateField("Neues Datum")
    when_time = TimeField("Genaue Zeit", [Optional()],
                          description="Optional. In UTC angeben.",
                          render_kw={'placeholder': 'hh:mm'})

    @property
    def full_datetime(self) -> DateTimeTz:
        return combine_or_midnight(self.when.data, self.when_time.data)
예제 #6
0
class MembershipFeeCreateForm(Form):
    name = TextField(u"Beitragsname", validators=[DataRequired()])
    regular_fee = MoneyField(u"Regulärer Beitrag",
                             validators=[InputRequired(),
                                         NumberRange(min=0)])

    # TODO Transform IntegerFields to IntervalFields

    booking_begin = IntegerField(
        u"Buchungsbeginn (Tage)",
        description=u"Ab diesem Tag im Zeitraum wird ein Mitglied "
        u"als zahlungspflichtig angesehen.",
        validators=[InputRequired(), NumberRange(min=1)])

    booking_end = IntegerField(
        u"Buchungsende (Tage)",
        description=u"Bis zu diesem Tag im Zeitraum wird ein neues Mitglied "
        u"als zahlungspflichtig angesehen.",
        validators=[InputRequired(), NumberRange(min=1)])

    payment_deadline = IntegerField(
        u"Zahlungsfrist (Tage)",
        description=u"Bleibt ein Mitglied mehr Tage als hier angegeben eine "
        u"Zahlung schuldig, so wird es Mitglied in der "
        u"Zahlungsrückstands-Gruppe.",
        validators=[InputRequired(), NumberRange(min=0)])

    payment_deadline_final = IntegerField(
        u"Endgültige Zahlungsfrist (Tage)",
        description=u"Bleibt ein Mitglied mehr Tage als hier angegeben eine "
        u"Zahlung schuldig, so wird seine Mitgliedschaft beendet.",
        validators=[InputRequired(), NumberRange(min=0)])

    begins_on = DateField(u"Anfang",
                          validators=[DataRequired()],
                          today_btn=True,
                          today_highlight=True)
    ends_on = DateField(u"Ende",
                        validators=[DataRequired()],
                        today_btn=True,
                        today_highlight=True)
예제 #7
0
class UserCreateForm(UserBaseDataForm, SelectRoomForm):
    birthdate = DateField(u"Geburtsdatum",
                          [OptionalIf('mac', invert=True)])
    mac = MacField(u"MAC",
                   [Optional(), MacAddress(message=u"MAC ist ungültig!"), UniqueMac()])
    property_groups = QuerySelectMultipleField(u"Gruppen",
                                      get_label='name',
                                      query_factory=property_group_user_create_query)
    annex = ConfirmCheckboxField(u"Host annektieren")
    force = ConfirmCheckboxField("* Hinweise ignorieren")

    _order = ("name", "building", "level", "room_number")
예제 #8
0
    def test_0010_convert_format_string(self):
        for directive, replacement in DateField.supported_directives.items():
            self.assertEqual(DateField.convert_format_string("%" + directive),
                             replacement)
            self.assertEqual(DateField.convert_format_string("%%" + directive),
                             "%" + directive)
        for directive in DateField.unsupported_directives:
            self.assertRaises(ValueError, DateField.convert_format_string,
                              "%" + directive)
            self.assertEqual(DateField.convert_format_string("%%" + directive),
                             "%" + directive)
        unknown_directives = set(string.ascii_letters).difference(
            set(DateField.supported_directives.keys()),
            set(DateField.unsupported_directives))
        for directive in unknown_directives:
            self.assertRaises(ValueError, DateField.convert_format_string,
                              "%" + directive)

        self.assertEqual("", "")
        self.assertEqual(DateField.convert_format_string("%%"), "%")
        self.assertEqual(DateField.convert_format_string("%%%%"), "%%")
예제 #9
0
파일: forms.py 프로젝트: agdsn/pycroft
class NonResidentUserCreateForm(UserBaseDataForm, CreateAddressForm):
    """User creation form for non-resident folks.

    Does not contain mac, since created hosts would not have a room set, anyway.
    If necessary, a device can be created afterwards.
    """
    birthdate = DateField("Geburtsdatum")
    property_groups = QuerySelectMultipleField(
        "Gruppen",
        get_label='name',
        query_factory=property_group_user_create_query)

    _order = ('name', 'login',
              *iter_prefixed_field_names(CreateAddressForm, 'address_'),
              'email', 'birthdate', 'property_groups')
예제 #10
0
class TransactionCreateForm(Form):
    description = TextField(u"Beschreibung", validators=[DataRequired()])
    valid_on = DateField(u"Gültig ab",
                         validators=[Optional()],
                         today_btn=True,
                         today_highlight=True,
                         default=datetime.date.today())
    splits = FieldList(FormField(SplitCreateForm),
                       validators=[DataRequired()],
                       min_entries=2)

    def validate_splits(self, field):
        balance = sum(split_form['amount'].data for split_form in field
                      if split_form['amount'].data is not None)
        if balance != 0:
            raise ValidationError(u"Buchung ist nicht ausgeglichen.")
예제 #11
0
def test_date_field_format_strings():
    for directive, replacement in DateField.supported_directives.items():
        assert DateField.convert_format_string("%" + directive) == replacement
        assert DateField.convert_format_string("%%" +
                                               directive) == "%" + directive

    for directive in DateField.unsupported_directives:
        with pytest.raises(ValueError):
            DateField.convert_format_string("%" + directive)
        assert DateField.convert_format_string("%%" +
                                               directive) == "%" + directive

    unknown_directives = set(string.ascii_letters).difference(
        set(DateField.supported_directives.keys()),
        set(DateField.unsupported_directives))

    for directive in unknown_directives:
        with pytest.raises(ValueError):
            DateField.convert_format_string("%" + directive)

    assert DateField.convert_format_string("%%") == "%"
    assert DateField.convert_format_string("%%%%") == "%%"
예제 #12
0
파일: forms.py 프로젝트: agdsn/pycroft
class UserMoveForm(SelectRoomForm):
    comment = TextAreaField(
        "Kommentar",
        description='Wenn gegeben Referenz zum Ticket',
        render_kw={
            'placeholder': 'ticket#<TicketNr> / <TicketNr> / ticket:<ticketId>'
        })
    now = BooleanField("Sofort", default=False)
    when = DateField("Umzug am", [OptionalIf("now")])
    when_time = TimeField("Genaue Zeit", [Optional()],
                          description="Optional. In UTC angeben.",
                          render_kw={'placeholder': 'hh:mm'})

    def get_execution_time(self, now: datetime) -> datetime:
        if self.now.data:
            return now
        assert self.when.data, "`now` checkbox deselected but no date given!"
        return utc.combine_or_midnight(self.when.data, self.when_time.data)
예제 #13
0
class UserMoveOutForm(Form):
    now = BooleanField(u"Sofort", default=False)
    when = DateField(u"Auszug am", [OptionalIf("now")])
    comment = TextAreaField(u"Kommentar")
    end_membership = BooleanField(u"Mitgliedschaft/Extern beenden", [Optional()])
예제 #14
0
class UserEditGroupMembership(Form):
    begins_at = DateField(u"Beginn", [DataRequired()])
    ends_at = FormField(OptionallyUnlimitedEndDateForm)
예제 #15
0
class OptionallyUnlimitedEndDateForm(Form):
    unlimited = BooleanField(u"Unbegrenzte Dauer", default=False)
    date = DateField(u"Ende", [OptionalIf("unlimited")])
예제 #16
0
class OptionallyDirectBeginDateForm(Form):
    now = BooleanField(u"Sofort", default=False)
    date = DateField(u"Beginn", [OptionalIf("now")])
예제 #17
0
class UserMoveInForm(UserMoveForm):
    now = BooleanField(u"Sofort", default=False)
    when = DateField(u"Einzug am", [OptionalIf("now")])
    birthdate = DateField(u"Geburtsdatum", [OptionalIf('mac', invert=True)])
    mac = MacField(u"MAC", [Optional()])
    begin_membership = BooleanField(u"Mitgliedschaft beginnen", [Optional()])
예제 #18
0
class UserMoveForm(SelectRoomForm):
    now = BooleanField(u"Sofort", default=False)
    when = DateField(u"Umzug am", [OptionalIf("now")])