コード例 #1
0
ファイル: forms.py プロジェクト: FriwiDev/pycroft
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 UserAddGroupMembership(Form):
    group_id = QuerySelectField(u"Gruppe",get_label='name',query_factory=group_query)
    begin_date = DateField(
        u"Beginn", [Required()], default=datetime.now, today_btn=True,
        today_highlight=True)
    unlimited = BooleanField(u"Unbegrenzte Dauer", default=False)
    end_date = DateField(u"Ende", today_btn=True, today_highlight=True)
コード例 #3
0
ファイル: test_fields.py プロジェクト: agdsn/pycroft
    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("%%%%"), "%%")
コード例 #4
0
ファイル: forms.py プロジェクト: sgeisler/pycroft
class SemesterCreateForm(Form):
    name = TextField(u"Semestername", validators=[DataRequired()])
    registration_fee = IntegerField(
        u"Anmeldegebühr", validators=[DataRequired(),
                                      NumberRange(min=1)])
    regular_semester_contribution = IntegerField(
        u"Regulärer Semesterbeitrag",
        validators=[DataRequired(), NumberRange(min=1)])
    reduced_semester_contribution = IntegerField(
        u"Ermäßigter Semesterbeitrag",
        validators=[DataRequired(), NumberRange(min=1)])
    overdue_fine = IntegerField(
        u"Versäumnisgebühr", validators=[DataRequired(),
                                         NumberRange(min=1)])
    premature_begin_date = DateField(u"Vorzeitiger Anfang",
                                     validators=[DataRequired()],
                                     today_btn=True,
                                     today_highlight=True)
    begin_date = DateField(u"Anfang",
                           validators=[DataRequired()],
                           today_btn=True,
                           today_highlight=True)
    end_date = DateField(u"Ende",
                         validators=[DataRequired()],
                         today_btn=True,
                         today_highlight=True)
    belated_end_date = DateField(u"Verspätetes Ende",
                                 validators=[DataRequired()],
                                 today_btn=True,
                                 today_highlight=True)
コード例 #5
0
ファイル: test_fields.py プロジェクト: sgeisler/pycroft
    def test_0010_convert_format_string(self):
        for directive, replacement in DateField.supported_directives.iteritems():
            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 = filter(
            lambda c: not (c in DateField.supported_directives.keys() or
                           c in DateField.unsupported_directives),
            string.ascii_letters)
        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("%%%%"), "%%")
コード例 #6
0
ファイル: forms.py プロジェクト: FriwiDev/pycroft
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"))
コード例 #7
0
ファイル: forms.py プロジェクト: sgeisler/pycroft
class JournalEntryEditForm(Form):
    finance_account = TypeaheadField(u"Gegenkonto")
    finance_account_id = HiddenField(validators=[DataRequired()])
    journal_name = static(StringField(u"Bankkonto"))
    amount = static(IntegerField(u"Wert"))
    description = StringField(u"Beschreibung")
    original_description = static(StringField(u"Ursprüngliche Beschreibung"))
    other_account_number = static(StringField(u"Kontonummer"))
    other_routing_number = static(StringField(u"Bankleitzahl (BLZ)"))
    other_name = static(StringField(u"Name"))
    valid_date = static(DateField(u"Valutadatum"))
    transaction_date = static(DateField(u"Buchungsdatum"))
コード例 #8
0
ファイル: forms.py プロジェクト: JuKu/pycroft
class BankAccountActivityEditForm(Form):
    account = TypeaheadField(u"Gegenkonto",
                             render_kw={'data_toggle': 'account-typeahead'})
    account_id = HiddenField(validators=[DataRequired()])
    bank_account_name = static(StringField(u"Bankkonto"))
    amount = disabled(MoneyField(u"Wert"))
    description = StringField(u"Beschreibung")
    original_reference = static(StringField(u"Ursprüngliche Verwendung"))
    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"))
コード例 #9
0
ファイル: forms.py プロジェクト: FriwiDev/pycroft
class UserCreateForm(SelectRoomFormOptional):
    name = TextField(u"Name", [DataRequired(message=u"Name wird benötigt!")])

    login = TextField(u"Login", [
        DataRequired(message=u"Login wird benötigt!"),
        Regexp(regex=User.login_regex_ci, message=u"Login ist ungültig!"),
        validate_unique_login
    ],
                      filters=[to_lowercase])
    email = TextField(u"E-Mail",
                      [Email(message=u"E-Mail ist ungueltig!"),
                       Optional()],
                      filters=[empty_to_none])
    birthdate = DateField(u"Geburtsdatum", [OptionalIf('mac', invert=True)])
    mac = MacField(u"MAC",
                   [MacAddress(message=u"MAC ist ungültig!"),
                    Optional()])
    property_groups = QuerySelectMultipleField(
        u"Gruppen",
        get_label='name',
        query_factory=property_group_user_create_query)
    annex = BooleanField(u"Host annektieren", [Optional()])
    force = BooleanField(u"* Hinweise ignorieren", [Optional()])

    _order = ("name", "building", "level", "room_number")
コード例 #10
0
ファイル: forms.py プロジェクト: JuKu/pycroft
class UserMoveInForm(UserMoveForm):
    mac = TextField(u"MAC",
                    [Regexp(regex=mac_regex, message=u"MAC ist ungültig!")])
    birthdate = DateField(
        u"Geburtsdatum",
        [DataRequired(message=u"Geburtsdatum wird benötigt!")])
    begin_membership = BooleanField(u"Mitgliedschaft beginnen", [Optional()])
コード例 #11
0
ファイル: forms.py プロジェクト: FriwiDev/pycroft
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)
コード例 #12
0
ファイル: forms.py プロジェクト: JuKu/pycroft
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

    grace_period = IntegerField(
        u"Kulanzfrist (Tage)",
        description=u"Ist ein Nutzer weniger oder gleich viele Tage innerhalb "
        u"des Zeitraums Mitglied, so entfällt jegliche "
        u"Gebühr.",
        validators=[InputRequired(), NumberRange(min=0)])

    payment_deadline = IntegerField(
        u"Zahlungsfrist (Tage)",
        description=u"Bleibt ein Mitglied mehr Tage als hier angegeben eine "
        u"Zahlung schuldig, so fällt die Versäumnisgebühr an. "
        u"Der Nutzer wird zudem 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 die 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)
コード例 #13
0
ファイル: forms.py プロジェクト: JuKu/pycroft
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.")
コード例 #14
0
ファイル: forms.py プロジェクト: JuKu/pycroft
class UserCreateForm(UserMoveForm):
    name = TextField(u"Name", [DataRequired(message=u"Name wird benötigt!")])
    login = TextField(u"Login", [
        DataRequired(message=u"Login wird benötigt!"),
        Regexp(regex=User.login_regex, message=u"Login ist ungültig!"),
        validate_unique_login
    ])
    email = TextField(u"E-Mail",
                      [Email(message=u"E-Mail ist ungueltig!"),
                       Optional()],
                      filters=[empty_to_none])
    mac = TextField(u"MAC", [
        OptionalIf('room_number', invert=True),
        Regexp(regex=mac_regex, message=u"MAC ist ungültig!")
    ])
    birthdate = DateField(
        u"Geburtsdatum",
        [DataRequired(message=u"Geburtsdatum wird benötigt!")])
    property_group = QuerySelectField(u"Gruppe",
                                      get_label='name',
                                      query_factory=property_group_query)

    annex = BooleanField(u"Host annektieren", [Optional()])
    force = BooleanField(u"* Hinweise ignorieren", [Optional()])
コード例 #15
0
ファイル: forms.py プロジェクト: FriwiDev/pycroft
class OptionallyDirectBeginDateForm(Form):
    now = BooleanField(u"Sofort", default=False)
    date = DateField(u"Beginn", [OptionalIf("now")])
コード例 #16
0
ファイル: forms.py プロジェクト: JuKu/pycroft
class UserEditBirthdateForm(Form):
    birthdate = DateField(u"Birthdate", [Optional()], format="%d.%m.%Y")
コード例 #17
0
ファイル: forms.py プロジェクト: JuKu/pycroft
class UserAddGroupMembership(Form):
    group = QuerySelectField(u"Gruppe",
                             get_label='name',
                             query_factory=group_query)
    begins_at = DateField(u"Beginn", [DataRequired()])
    ends_at = FormField(OptionallyUnlimitedEndDateForm)
コード例 #18
0
class UserBlockForm(Form):
    unlimited = BooleanField(u"Unbegrenzte Sperrung", default=False)
    date = DateField(
        u"Gesperrt bis", default=datetime.now, today_btn=True,
        today_highlight=True)
    reason = TextAreaField(u"Grund")
コード例 #19
0
class UserEditGroupMembership(Form):
    begin_date = DateField(
        u"Beginn", [Required()], default=datetime.now, today_btn=True,
        today_highlight=True)
    unlimited = BooleanField(u"Unbegrenzte Mitgliedschaft", default=False)
    end_date = DateField(u"Ende", today_btn=True, today_highlight=True)
コード例 #20
0
ファイル: forms.py プロジェクト: FriwiDev/pycroft
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()])
コード例 #21
0
class UserMoveOutForm(Form):
    date = DateField(
        u"Auszug am", [Required()], default=datetime.now, today_btn=True,
        today_highlight=True)
    comment = TextAreaField(u"Kommentar")
コード例 #22
0
ファイル: forms.py プロジェクト: FriwiDev/pycroft
class UserMoveForm(SelectRoomForm):
    now = BooleanField(u"Sofort", default=False)
    when = DateField(u"Umzug am", [OptionalIf("now")])

    pass
コード例 #23
0
ファイル: forms.py プロジェクト: FriwiDev/pycroft
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!")])
    birthdate = DateField(u"Geburtsdatum", [Optional()])
コード例 #24
0
ファイル: forms.py プロジェクト: FriwiDev/pycroft
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()])
コード例 #25
0
ファイル: forms.py プロジェクト: FriwiDev/pycroft
class UserEditGroupMembership(Form):
    begins_at = DateField(u"Beginn", [DataRequired()])
    ends_at = FormField(OptionallyUnlimitedEndDateForm)
コード例 #26
0
ファイル: forms.py プロジェクト: FriwiDev/pycroft
class OptionallyUnlimitedEndDateForm(Form):
    unlimited = BooleanField(u"Unbegrenzte Dauer", default=False)
    date = DateField(u"Ende", [OptionalIf("unlimited")])