- Partner model additions

- menu changes to allow for partners
- partner views and forms now in partner_forms.py and partner_views.py
- Introduction of services layer
- Allow all configuration to handle partner configurations, and adaptation of caching to allow for this
This commit is contained in:
Josako
2025-05-02 13:10:59 +02:00
parent 9652d0bff9
commit 6ef025363d
72 changed files with 1342 additions and 228 deletions

View File

@@ -0,0 +1,46 @@
from flask import current_app
from flask_wtf import FlaskForm
from wtforms.fields.choices import SelectField
from wtforms.fields.simple import SubmitField, StringField, BooleanField, TextAreaField
from wtforms.validators import DataRequired, Optional, Length
from common.extensions import cache_manager
from common.utils.form_assistants import validate_json
from eveai_app.views.dynamic_form_base import DynamicFormBase
class TriggerActionForm(FlaskForm):
submit = SubmitField('Submit')
class EditPartnerForm(FlaskForm):
tenant = StringField('Tenant', validators=[DataRequired()], render_kw={'readonly': True})
code = StringField('Code', description="Referral Code", validators=[DataRequired()], render_kw={'readonly': True})
logo_url = StringField('Logo URL', validators=[Optional(), Length(max=255)])
active = BooleanField('Active', validators=[Optional()], default=True)
class PartnerServiceForm(FlaskForm):
name = StringField('Name', validators=[DataRequired(), Length(max=50)])
description = TextAreaField('Description', validators=[Optional()])
type = SelectField('Partner Service Type', validators=[DataRequired()])
active = BooleanField('Active', validators=[Optional()], default=True)
user_metadata = TextAreaField('User Metadata', validators=[Optional(), validate_json])
system_metadata = TextAreaField('System Metadata', validators=[Optional(), validate_json])
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Dynamically populate the 'type' field
types_dict = cache_manager.partner_services_types_cache.get_types()
self.type.choices = [(key, value['name']) for key, value in types_dict.items()]
class EditPartnerServiceForm(DynamicFormBase):
name = StringField('Name', validators=[DataRequired(), Length(max=50)])
description = TextAreaField('Description', validators=[Optional()])
type = StringField('Partner Service Type', validators=[DataRequired()], render_kw={'readonly': True})
active = BooleanField('Active', validators=[Optional()], default=True)
user_metadata = TextAreaField('User Metadata', validators=[Optional(), validate_json])
system_metadata = TextAreaField('System Metadata', validators=[Optional(), validate_json])