Beispiel #1
0
class RoomForm(Form):
    number = TextField(u"Nummer")
    level = TextField(u"Etage")
    inhabitable = BooleanField(u"Bewohnbar")
    dormitory_id = QuerySelectField(u"Wohnheim",
                                    get_label='short_name',
                                    query_factory=dormitory_query)
Beispiel #2
0
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")
Beispiel #3
0
class UserCreateForm(UserEditNameForm, UserMoveForm):
    login = TextField(u"Login", [Required(message=u"Login?"),
                                 Regexp(regex=User.login_regex,
                                     message=u"Login ist ungültig!"),
                                 validate_unique_login])
    mac = TextField(u"MAC", [Regexp(regex=NetDevice.mac_regex,
        message=u"MAC ist ungültig!")])
    host = TextField(u"Host")
    email = TextField(u"E-Mail", [Regexp(regex=User.email_regex,
                                         message=u"E-Mail ist ungueltig!")])
    semester = QuerySelectField(u"aktuelles Semester", get_label="name",
        query_factory=semester_query)
Beispiel #4
0
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()])
Beispiel #5
0
class UserSearchForm(Form):
    id = TextField(u"Nutzer-ID")
    name = TextField(u"Name")
    login = TextField(u"Unix-Login")
    mac = MacField(u"MAC-Adresse")
    ip_address = TextField(u"IP-Adresse")
    property_group_id = QuerySelectField(u"Eigenschaftsgruppe",
                                         get_label='name',
                                         query_factory=property_group_query,
                                         allow_blank=True,
                                         blank_text=u"<Eigenschaftsgruppe>")
    building_id = QuerySelectField(u"Wohnheim",
                                   get_label='short_name',
                                   query_factory=building_query,
                                   allow_blank=True,
                                   blank_text=u"<Wohnheim>")
Beispiel #6
0
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)
Beispiel #7
0
class PropertyGroupForm(Form):
    name = TextField(u"Gruppenname", [
        DataRequired(u"Name?"),
        Regexp(u"^[a-zA-Z0-9äöüÄÖÜ ]{3,}$",
               message=u"Namen ohne Sonderzeichen und mindestens 3 Buchstaben"
               u" eingeben! (RegEx: ^[a-zA-Z0-9äöüÄÖÜ ]{3,}$)")
    ])
Beispiel #8
0
class HostForm(SelectRoomForm):
    owner_id = UserIDField(u"Besitzer-ID")
    name = TextField(
        u"Name",
        validators=[Optional()],
        description=u"z.B. TP-LINK WR841, FritzBox 4040 oder MacBook")

    _order = ("name", "owner_id")
Beispiel #9
0
class SwitchPortForm(Form):
    name = TextField(label="Name", validators=[DataRequired()], filters=[to_uppercase])
    patch_port = QuerySelectField(label="Patch-Port", get_label="name", allow_blank=True)
    default_vlans = QuerySelectMultipleField(label="Standard VLANs",
                                     get_label=lambda vlan: "{} ({})".format(vlan.name, vlan.vid),
                                     query_factory=vlan_query,
                                     allow_blank=True,
                                     render_kw={'size': 25})
Beispiel #10
0
class JournalCreateForm(Form):
    name = TextField(u"Name")
    bank = TextField(u"Bank")
    account_number = TextField(u"Kontonummer")
    routing_number = TextField(u"Bankleitzahl (BLZ)")
    iban = TextField(u"IBAN")
    bic = TextField(u"BIC")
    hbci_url = TextField(u"HBCI-URL")
Beispiel #11
0
class FinanceAccountCreateForm(Form):
    name = TextField(u"Name", validators=[DataRequired()])
    type = SelectField(u"Typ",
                       validators=[DataRequired()],
                       choices=[
                           ("ASSET", "Aktivkonto"),
                           ("LIABILITY", "Passivkonto"),
                           ("EXPENSE", "Aufwandskonto"),
                           ("REVENUE", "Ertragskonto"),
                       ])
Beispiel #12
0
class BankAccountCreateForm(Form):
    name = TextField(u"Name")
    bank = TextField(u"Bank")
    account_number = TextField(u"Kontonummer")
    routing_number = TextField(u"Bankleitzahl (BLZ)")
    iban = TextField(u"IBAN")
    bic = TextField(u"BIC")
    fints = TextField(u"FinTS-Endpunkt", default="https://mybank.com/…")

    def validate_iban(self, field):
        if BankAccount.q.filter_by(iban=field.data).first() is not None:
            raise ValidationError("Konto existiert bereits.")
Beispiel #13
0
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()])
Beispiel #14
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.")
Beispiel #15
0
class TrafficGroupForm(Form):
    name = TextField(u"Gruppenname", [
        DataRequired(u"Name?"),
        Regexp(u"^[a-zA-Z0-9äöüÄÖÜ ]{3,}$",
               message=u"Namen ohne Sonderzeichen und mindestens 3 Buchstaben"
               u" eingeben! (RegEx: ^[a-zA-Z0-9äöüÄÖÜ ]{3,}$)")
    ])
    credit_interval = IntervalField(u"Gutschritintervall")
    credit_amount = IntegerField(u"Gutschriftmenge (GiB)",
                                 [NumberRange(0, None, u"Muss positiv sein!")])
    credit_limit = IntegerField(u"Anspargrenze (GiB)", [
        DataRequired(u"Wie viel GB?"),
        NumberRange(0, None, u"Muss eine natürliche Zahl sein!")
    ])
    initial_credit = IntegerField(
        u"Initialer Credit (GiB)",
        [NumberRange(0, None, u"Muss positiv sein!")])
Beispiel #16
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)
Beispiel #17
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

    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)
Beispiel #18
0
class NetDeviceChangeMacForm(Form):
    mac = TextField(u"MAC", [Regexp(regex=NetDevice.mac_regex,
        message=u"MAC ist ungültig!")])
Beispiel #19
0
class UserSearchForm(Form):
    userid = TextField(u"Nutzerid")
    name = TextField(u"Name")
    login = TextField(u"Unix-Login")
Beispiel #20
0
class TrafficGroupForm(Form):
    name = TextField(u"Gruppenname", [Required(message=u"Name?")])
    traffic_limit = TextField(u"Traffic Limit (GB)", [
        Required(message=u"Wie viel GB?"),
        Regexp(regex=u"[0-9]+", message=u"Muss eine natürliche Zahl sein!")
    ])
Beispiel #21
0
class PropertyGroupForm(Form):
    name = TextField(u"Gruppenname", [Required(message=u"Name?")])
Beispiel #22
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!")])
    birthdate = DateField(u"Geburtsdatum", [Optional()])
Beispiel #23
0
class UserEditNameForm(Form):
    name = TextField(u"Name", [Required(message=u"Name wird benötigt!")])
Beispiel #24
0
class LoginForm(Form):
    login = TextField()
    password = PasswordField()
Beispiel #25
0
class UserEditEMailForm(Form):
    email = TextField(u"E-Mail", [Regexp(regex=User.email_regex,
                                  message=u"E-Mail-Adresse ist ungültig!")])
Beispiel #26
0
class CNAMERecordCreateForm(Form):
    name = TextField(u"Alias Name", [Required(message=u"Alias?")])
    record_for = QuerySelectField(u"für", get_label='name')
Beispiel #27
0
class CNAMERecordEditForm(Form):
    name = TextField(u"Alias Name", [Required(message=u"Alias?")])
    record_for = ReadonlyTextField(u"für")
Beispiel #28
0
class SwitchPortForm(Form):
    name = TextField(u"Port Name", [
        Required(message=u"Name?"),
        Regexp(regex=Port.name_regex, message=u"Richtig ist z.B. A2")
    ])
Beispiel #29
0
class DormitoryForm(Form):
    short_name = TextField(u"Kürzel")
    number = TextField(u"Nummer")
    street = TextField(u"Straße", validators=[Length(min=5)])
Beispiel #30
0
class hostCreateForm(Form):
    name = TextField(u"Name")