From 354260d2227a7e3a4bf1679cde2fae95d2dae11d Mon Sep 17 00:00:00 2001 From: Teddy Middleton-Smith Date: Sat, 2 Aug 2025 18:33:36 +0100 Subject: [PATCH] Feat: Apply for Founding Partner Program page hookup fixed and hooked up to rest of app through Home page. --- .../apply_founding_partner_form.py | 87 ++--- controllers/core/apply_founding_partner.py | 12 +- forms/project_hub/apply_founding_partner.py | 16 +- forms/project_hub/contact.py | 2 - models/model_view_base.py | 3 +- static/MySQL/00000_combined.sql | 348 +++++++----------- ...620_tbl_PH_Apply_Founding_Partner_Form.sql | 2 +- ...bl_PH_Apply_Founding_Partner_Form_Temp.sql | 2 +- ...620_tri_PH_Apply_Founding_Partner_Form.sql | 6 +- ..._p_ph_save_apply_founding_partner_form.sql | 85 +++-- .../css/pages/core/apply_founding_partner.css | 14 +- static/css/pages/core/contact.css | 6 + .../core_apply_founding_partner.bundle.css | 18 +- ...core_apply_founding_partner.bundle.css.map | 2 +- static/dist/css/core_contact.bundle.css | 6 + static/dist/css/core_contact.bundle.css.map | 2 +- .../pages/core/_apply_founding_partner.html | 8 +- templates/pages/core/_home.html | 2 +- 18 files changed, 292 insertions(+), 329 deletions(-) diff --git a/business_objects/project_hub/apply_founding_partner_form.py b/business_objects/project_hub/apply_founding_partner_form.py index ee7152c..7d0a984 100644 --- a/business_objects/project_hub/apply_founding_partner_form.py +++ b/business_objects/project_hub/apply_founding_partner_form.py @@ -10,6 +10,7 @@ Feature: Apply_Founding_Partner_Form Business Object # internal from business_objects.base import Base from business_objects.db_base import SQLAlchemy_ABC +from business_objects.project_hub.contact_form import Contact_Form import lib.argument_validation as av from extensions import db from helpers.helper_app import Helper_App @@ -23,10 +24,12 @@ class Apply_Founding_Partner_Form(SQLAlchemy_ABC, Base): FLAG_COMMITMENT_FREQUENCY: ClassVar[str] = 'id_commitment_frequency' FLAG_DOG_COUNT: ClassVar[str] = 'dog-count' FLAG_EXISTING_CHALLENGES: ClassVar[str] = 'existing_challenges' - FLAG_EXISTING_SYSTEM: ClassVar[str] = 'id_existing_system' + FLAG_EXISTING_SYSTEM: ClassVar[str] = 'ids_existing_system' FLAG_EXISTING_TIME_SINK_WEEKLY: ClassVar[str] = 'id_existing_time_sink_weekly' # FLAG_MOST_VALUABLE_FEATURE: ClassVar[str] = 'most_valuable_feature' - FLAG_SPECIALITY: ClassVar[str] = 'id_speciality' + FLAG_NAME_COMPANY: ClassVar[str] = Contact_Form.FLAG_NAME_COMPANY + FLAG_NAME_CONTACT: ClassVar[str] = Contact_Form.FLAG_NAME_CONTACT + FLAG_SPECIALITY: ClassVar[str] = 'ids_speciality' FLAG_YEARS_OF_EXPERIENCE: ClassVar[str] = 'id_years_of_experience' NAME_ATTR_OPTION_VALUE: ClassVar[str] = FLAG_APPLY_FOUNDING_PARTNER_FORM NAME_ATTR_OPTION_TEXT: ClassVar[str] = Base.FLAG_EMAIL @@ -44,7 +47,7 @@ class Apply_Founding_Partner_Form(SQLAlchemy_ABC, Base): id_years_of_experience = db.Column(db.Integer) ids_speciality = db.Column(db.String(255)) ids_existing_system = db.Column(db.String(255)) - id_existing_challenges = db.Column(db.Integer) + existing_challenges = db.Column(db.Integer) id_existing_time_sink_weekly = db.Column(db.Integer) id_commitment_frequency = db.Column(db.Integer) # most_valuable_feature = db.Column(db.Integer) @@ -71,7 +74,7 @@ class Apply_Founding_Partner_Form(SQLAlchemy_ABC, Base): form.id_years_of_experience = query_row[4] form.ids_speciality = query_row[2] form.ids_existing_system = query_row[3] - form.id_existing_challenges = query_row[4] + form.existing_challenges = query_row[4] form.id_existing_time_sink_weekly = query_row[2] form.id_commitment_frequency = query_row[3] # form.most_valuable_feature = query_row[4] @@ -92,12 +95,12 @@ class Apply_Founding_Partner_Form(SQLAlchemy_ABC, Base): form.name_contact = json[cls.FLAG_NAME_CONTACT] form.website = json[cls.FLAG_WEBSITE] form.dog_count = json[cls.FLAG_DOG_COUNT] - form.years_of_experience = json[cls.FLAG_YEARS_OF_EXPERIENCE] - form.speciality = json[cls.FLAG_SPECIALITY] - form.existing_system = json[cls.FLAG_EXISTING_SYSTEM] + form.id_years_of_experience = json[cls.FLAG_YEARS_OF_EXPERIENCE] + form.ids_speciality = json[cls.FLAG_SPECIALITY] + form.ids_existing_system = json[cls.FLAG_EXISTING_SYSTEM] form.existing_challenges = json[cls.FLAG_EXISTING_CHALLENGES] - form.existing_time_sink_weekly = json[cls.FLAG_EXISTING_TIME_SINK_WEEKLY] - form.commitment_frequency = json[cls.FLAG_COMMITMENT_FREQUENCY] + form.id_existing_time_sink_weekly = json[cls.FLAG_EXISTING_TIME_SINK_WEEKLY] + form.id_commitment_frequency = json[cls.FLAG_COMMITMENT_FREQUENCY] # form.most_valuable_feature = json[cls.FLAG_MOST_VALUABLE_FEATURE] form.notes = json[cls.FLAG_NOTES] form.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) @@ -107,18 +110,18 @@ class Apply_Founding_Partner_Form(SQLAlchemy_ABC, Base): def to_json(self): return { - Contact_Form.FLAG_NAME_CONTACT: self.contact_name + Contact_Form.FLAG_NAME_CONTACT: self.name_contact , Base.FLAG_EMAIL: self.email , Base.FLAG_PHONE_NUMBER: self.phone_number - , Contact_Form.FLAG_NAME_COMPANY: self.company_name + , Contact_Form.FLAG_NAME_COMPANY: self.name_company , Base.FLAG_WEBSITE: self.website , Apply_Founding_Partner_Form.FLAG_DOG_COUNT: self.dog_count - , Apply_Founding_Partner_Form.FLAG_YEARS_OF_EXPERIENCE: self.years_of_experience - , Apply_Founding_Partner_Form.FLAG_SPECIALITY: self.speciality - , Apply_Founding_Partner_Form.FLAG_EXISTING_SYSTEM: self.existing_system + , Apply_Founding_Partner_Form.FLAG_YEARS_OF_EXPERIENCE: self.id_years_of_experience + , Apply_Founding_Partner_Form.FLAG_SPECIALITY: self.ids_speciality + , Apply_Founding_Partner_Form.FLAG_EXISTING_SYSTEM: self.ids_existing_system , Apply_Founding_Partner_Form.FLAG_EXISTING_CHALLENGES: self.existing_challenges - , Apply_Founding_Partner_Form.FLAG_EXISTING_TIME_SINK_WEEKLY: self.existing_time_sink_weekly - , Apply_Founding_Partner_Form.FLAG_COMMITMENT_FREQUENCY: self.commitment_frequency + , Apply_Founding_Partner_Form.FLAG_EXISTING_TIME_SINK_WEEKLY: self.id_existing_time_sink_weekly + , Apply_Founding_Partner_Form.FLAG_COMMITMENT_FREQUENCY: self.id_commitment_frequency # , Apply_Founding_Partner_Form.FLAG_IMPLEMENTATION_TIMELINE: self.implementation_timeline # , Apply_Founding_Partner_Form.FLAG_MOST_VALUABLE_FEATURE: self.most_valuable_feature , Apply_Founding_Partner_Form.FLAG_NOTES: self.notes @@ -130,19 +133,19 @@ class Apply_Founding_Partner_Form(SQLAlchemy_ABC, Base): def __repr__(self): return f''' {self.__class__.__name__}( - {self.FLAG_CONTACT_FORM}: {self.id_apply_founding_partner_form} - {Contact_Form.FLAG_NAME_CONTACT}: {self.contact_name} + {self.FLAG_APPLY_FOUNDING_PARTNER_FORM}: {self.id_apply_founding_partner_form} + {Contact_Form.FLAG_NAME_CONTACT}: {self.name_contact} {Base.FLAG_EMAIL}: {self.email} {Base.FLAG_PHONE_NUMBER}: {self.phone_number} - {Contact_Form.FLAG_NAME_COMPANY}: {self.company_name} + {Contact_Form.FLAG_NAME_COMPANY}: {self.name_company} {Base.FLAG_WEBSITE}: {self.website} {Apply_Founding_Partner_Form.FLAG_DOG_COUNT}: {self.dog_count} - {Apply_Founding_Partner_Form.FLAG_YEARS_OF_EXPERIENCE}: {self.years_of_experience} - {Apply_Founding_Partner_Form.FLAG_SPECIALITY}: {self.speciality} - {Apply_Founding_Partner_Form.FLAG_EXISTING_SYSTEM}: {self.existing_system} + {Apply_Founding_Partner_Form.FLAG_YEARS_OF_EXPERIENCE}: {self.id_years_of_experience} + {Apply_Founding_Partner_Form.FLAG_SPECIALITY}: {self.ids_speciality} + {Apply_Founding_Partner_Form.FLAG_EXISTING_SYSTEM}: {self.ids_existing_system} {Apply_Founding_Partner_Form.FLAG_EXISTING_CHALLENGES}: {self.existing_challenges} - {Apply_Founding_Partner_Form.FLAG_EXISTING_TIME_SINK_WEEKLY}: {self.existing_time_sink_weekly} - {Apply_Founding_Partner_Form.FLAG_COMMITMENT_FREQUENCY}: {self.commitment_frequency} + {Apply_Founding_Partner_Form.FLAG_EXISTING_TIME_SINK_WEEKLY}: {self.id_existing_time_sink_weekly} + {Apply_Founding_Partner_Form.FLAG_COMMITMENT_FREQUENCY}: {self.id_commitment_frequency} {Apply_Founding_Partner_Form.FLAG_NOTES}: {self.notes} {Base.FLAG_ACTIVE}: {self.active} {Base.FLAG_CREATED_ON}: {self.created_on} @@ -163,7 +166,7 @@ class Apply_Founding_Partner_Form_Temp(db.Model, Base): id_years_of_experience = db.Column(db.Integer) ids_speciality = db.Column(db.String(255)) ids_existing_system = db.Column(db.String(255)) - id_existing_challenges = db.Column(db.Integer) + existing_challenges = db.Column(db.Integer) id_existing_time_sink_weekly = db.Column(db.Integer) id_commitment_frequency = db.Column(db.Integer) # most_valuable_feature = db.Column(db.Integer) @@ -176,23 +179,23 @@ class Apply_Founding_Partner_Form_Temp(db.Model, Base): super().__init__() @classmethod - def from_contact_form(cls, contact_form): - _m = f'{cls.__qualname__}.from_contact_form' + def from_apply_founding_partner_form(cls, contact_form): + _m = f'{cls.__qualname__}.from_apply_founding_partner_form' temp = cls() - temp.id_apply_founding_partner_form = contact_form.id_apply_founding_partner_form.data - temp.name_contact = contact_form.name_contact.data - temp.email = contact_form.email.data - temp.phone_number = contact_form.phone_number.data - temp.name_company = contact_form.name_company.data - temp.website = contact_form.website.data - temp.dog_count = contact_form.dog_count.data - temp.id_years_of_experience = contact_form.id_years_of_experience.data - temp.ids_speciality = contact_form.ids_speciality.data - temp.ids_existing_system = contact_form.ids_existing_system.data - temp.id_existing_challenges = contact_form.id_existing_challenges.data - temp.id_existing_time_sink_weekly = contact_form.id_existing_time_sink_weekly.data - temp.id_commitment_frequency = contact_form.id_commitment_frequency.data - # temp.most_valuable_feature = contact_form.most_valuable_feature.data - temp.notes = contact_form.notes.data + temp.id_apply_founding_partner_form = contact_form.id_apply_founding_partner_form + temp.name_contact = contact_form.name_contact + temp.email = contact_form.email + temp.phone_number = contact_form.phone_number + temp.name_company = contact_form.name_company + temp.website = contact_form.website + temp.dog_count = contact_form.dog_count + temp.id_years_of_experience = contact_form.id_years_of_experience + temp.ids_speciality = contact_form.ids_speciality + temp.ids_existing_system = contact_form.ids_existing_system + temp.existing_challenges = contact_form.existing_challenges + temp.id_existing_time_sink_weekly = contact_form.id_existing_time_sink_weekly + temp.id_commitment_frequency = contact_form.id_commitment_frequency + # temp.most_valuable_feature = contact_form.most_valuable_feature + temp.notes = contact_form.notes temp.active = True return temp \ No newline at end of file diff --git a/controllers/core/apply_founding_partner.py b/controllers/core/apply_founding_partner.py index a845035..627e033 100644 --- a/controllers/core/apply_founding_partner.py +++ b/controllers/core/apply_founding_partner.py @@ -63,24 +63,24 @@ def apply_founding_partner_post(): form = Form_Apply_Founding_Partner() if form.validate_on_submit(): try: - id_apply_founding_partner_form = form.id_apply_founding_partner_form.data + # id_apply_founding_partner_form = form.id_apply_founding_partner_form.data contact_name = form.contact_name.data email = form.email.data phone_number = form.phone_number.data - name_company = form.name_company.data + company_name = form.company_name.data website = form.website.data # most_valuable_feature = form.most_valuable_feature.data notes = form.notes.data active = True - receive_marketing_text = "I would like to receive marketing emails.\n" if receive_marketing else "" + # receive_marketing_text = "I would like to receive marketing emails.\n" if receive_marketing else "" # send email - mailItem = Message("Fetch Metrics Website Founding Partner Application", recipients=[current_app.config['MAIL_APPLY_FOUNDING_PARTNER_PUBLIC']]) + mailItem = Message("Fetch Metrics Website Founding Partner Application", recipients=[current_app.config['MAIL_CONTACT_PUBLIC']]) mailItem.body = '\n'.join([ "Dear Lord Edward Middleton-Smith" , "" , "I would like to be part of your Founding Partner Program." - , f"I currently work with {dog_count} dogs" + # , f"I currently work with {dog_count} dogs" # , f"I most desire the feature: {most_valuable_feature}" , f"Notes: {notes}" , "" @@ -97,7 +97,7 @@ def apply_founding_partner_post(): datastore = DataStore_Project_Hub_Contact_Form() apply_founding_partner_form = Apply_Founding_Partner_Form.from_json(form.to_json()) datastore.save_apply_founding_partner_forms( - comment = apply_founding_partner_form.message + comment = notes , apply_founding_partner_forms = [apply_founding_partner_form] ) return redirect(url_for(Model_View_Apply_Founding_Partner.ENDPOINT_PAGE_APPLY_FOUNDING_PARTNER_SUCCESS)) diff --git a/forms/project_hub/apply_founding_partner.py b/forms/project_hub/apply_founding_partner.py index 517bc57..9f6ab39 100644 --- a/forms/project_hub/apply_founding_partner.py +++ b/forms/project_hub/apply_founding_partner.py @@ -32,6 +32,10 @@ import json from altcha import verify_solution import base64 +def at_least_one_required(form, field): + """Validator that requires at least one checkbox to be selected""" + if not field.data or len(field.data) == 0: + raise ValidationError('Please select at least one option.') class MultiCheckboxField(SelectMultipleField): widget = ListWidget(prefix_label=False) @@ -73,7 +77,7 @@ class Form_Apply_Founding_Partner(FlaskForm): ] , validators = [DataRequired()] ) - id_speciality = MultiCheckboxField( # SelectMultipleField( + ids_speciality = MultiCheckboxField( # SelectMultipleField( 'What type(s) of training do you specialise in?' , choices = [ ( '1', 'Basic obedience' ) @@ -85,9 +89,9 @@ class Form_Apply_Founding_Partner(FlaskForm): , ( '7', 'One-on-one sessions' ) , ( '8', 'Other (specify below)' ) ] - , validators = [DataRequired()] + , validators = [at_least_one_required] ) - id_existing_system = MultiCheckboxField( # SelectMultipleField( + ids_existing_system = MultiCheckboxField( # SelectMultipleField( 'How do you currently manage client information and training records?' , choices = [ ( '1', 'Spreadsheets (Excel/Google Sheets)' ) @@ -97,7 +101,7 @@ class Form_Apply_Founding_Partner(FlaskForm): , ( '5', 'Mostly in my head/memory' ) , ( '6', 'Other (specify below)' ) ] - , validators = [DataRequired()] + , validators = [at_least_one_required] ) existing_challenges = TextAreaField( "What's your biggest frustration with your current system?" @@ -157,8 +161,8 @@ class Form_Apply_Founding_Partner(FlaskForm): , Base.FLAG_WEBSITE: self.website.data , Apply_Founding_Partner_Form.FLAG_DOG_COUNT: self.dog_count.data , Apply_Founding_Partner_Form.FLAG_YEARS_OF_EXPERIENCE: self.id_years_of_experience.data - , Apply_Founding_Partner_Form.FLAG_SPECIALITY: self.id_speciality.data - , Apply_Founding_Partner_Form.FLAG_EXISTING_SYSTEM: self.id_existing_system.data + , Apply_Founding_Partner_Form.FLAG_SPECIALITY: ','.join(self.ids_speciality.data) + , Apply_Founding_Partner_Form.FLAG_EXISTING_SYSTEM: ','.join(self.ids_existing_system.data) , Apply_Founding_Partner_Form.FLAG_EXISTING_CHALLENGES: self.existing_challenges.data , Apply_Founding_Partner_Form.FLAG_EXISTING_TIME_SINK_WEEKLY: self.id_existing_time_sink_weekly.data , Apply_Founding_Partner_Form.FLAG_COMMITMENT_FREQUENCY: self.id_commitment_frequency.data diff --git a/forms/project_hub/contact.py b/forms/project_hub/contact.py index 6103e82..610923e 100644 --- a/forms/project_hub/contact.py +++ b/forms/project_hub/contact.py @@ -36,8 +36,6 @@ class AltchaValidator: def __call__(self, form, field): altcha_data = field.data - return True - if not altcha_data: raise ValidationError(self.message) diff --git a/models/model_view_base.py b/models/model_view_base.py index 2515e97..65c7817 100644 --- a/models/model_view_base.py +++ b/models/model_view_base.py @@ -103,7 +103,8 @@ class Model_View_Base(BaseModel, ABC): ENDPOINT_GET_ALTCHA_CHALLENGE: ClassVar[str] = 'routes_core_contact.create_altcha_challenge' ENDPOINT_PAGE_ACCESSIBILITY_REPORT: ClassVar[str] = 'routes_legal.accessibility_report' ENDPOINT_PAGE_ACCESSIBILITY_STATEMENT: ClassVar[str] = 'routes_legal.accessibility_statement' - ENDPOINT_PAGE_APPLY_FOUNDING_PARTNER_SUCCESS: ClassVar[str] = 'routes_core_apply_founding_partner.apply_founding_partner' + ENDPOINT_PAGE_APPLY_FOUNDING_PARTNER: ClassVar[str] = 'routes_core_apply_founding_partner.apply_founding_partner' + ENDPOINT_PAGE_APPLY_FOUNDING_PARTNER_SUCCESS: ClassVar[str] = 'routes_core_apply_founding_partner.apply_founding_partner_success' ENDPOINT_PAGE_CONTACT: ClassVar[str] = 'routes_core_contact.contact' ENDPOINT_PAGE_CONTACT_SUCCESS: ClassVar[str] = 'routes_core_contact.contact_success' ENDPOINT_PAGE_DATA_RETENTION_SCHEDULE: ClassVar[str] = 'routes_legal.retention_schedule' diff --git a/static/MySQL/00000_combined.sql b/static/MySQL/00000_combined.sql index bc6adbd..ecdd3ea 100644 --- a/static/MySQL/00000_combined.sql +++ b/static/MySQL/00000_combined.sql @@ -1,194 +1,6 @@ USE demo; -SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning -FROM INFORMATION_SCHEMA.TABLES -WHERE - TABLE_SCHEMA = 'demo' - AND TABLE_NAME = 'PH_Apply_Founding_Partner_Form' -; - -CREATE TABLE IF NOT EXISTS demo.PH_Apply_Founding_Partner_Form ( - id_apply_founding_partner_form INT NOT NULL AUTO_INCREMENT PRIMARY KEY - , name_contact VARCHAR(255) NOT NULL - , email VARCHAR(255) NOT NULL - , phone_number VARCHAR(255) NOT NULL - , name_company VARCHAR(255) NOT NULL - , website VARCHAR(1000) NOT NULL - , dog_count INT NOT NULL - , id_years_of_experience INT NOT NULL - , ids_speciality VARCHAR(255) NOT NULL - , ids_existing_system VARCHAR(255) NOT NULL - , id_existing_challenges INT NOT NULL - , id_existing_time_sink_weekly INT NOT NULL - , id_commitment_frequency INT NOT NULL - -- , most_valuable_features TEXT NOT NULL - , notes TEXT - , active BIT NOT NULL DEFAULT 1 - , created_on DATETIME - , id_user_created_by INT - , CONSTRAINT FK_PH_Apply_Founding_Partner_Form_id_user_created_by - FOREIGN KEY (id_user_created_by) - REFERENCES demo.DOG_User(id_user) - , id_change_set INT - , CONSTRAINT FK_PH_Apply_Founding_Partner_Form_id_change_set - FOREIGN KEY (id_change_set) - REFERENCES demo.PH_Contact_Form_Change_Set(id_change_set) -); - - -USE demo; - -SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning -FROM INFORMATION_SCHEMA.TABLES -WHERE - TABLE_SCHEMA = 'demo' - AND TABLE_NAME = 'PH_Apply_Founding_Partner_Form_Audit' -; - -CREATE TABLE IF NOT EXISTS demo.PH_Apply_Founding_Partner_Form_Audit ( - id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY - , id_apply_founding_partner_form INT NOT NULL - , CONSTRAINT FK_PH_AFP_Form_Audit_id_apply_founding_partner_form - FOREIGN KEY (id_apply_founding_partner_form) - REFERENCES demo.PH_Apply_Founding_Partner_Form(id_apply_founding_partner_form) - , name_field VARCHAR(50) NOT NULL - , value_prev TEXT - , value_new TEXT - , id_change_set INT NOT NULL - , CONSTRAINT FK_PH_AFP_Form_Audit_id_change_set - FOREIGN KEY (id_change_set) - REFERENCES demo.PH_Contact_Form_Change_Set(id_change_set) -); - - - -USE demo; - -SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning -FROM INFORMATION_SCHEMA.TABLES -WHERE - TABLE_SCHEMA = 'demo' - AND TABLE_NAME = 'PH_Apply_Founding_Partner_Form_Temp' -; - -CREATE TABLE IF NOT EXISTS demo.PH_Apply_Founding_Partner_Form_Temp ( - id_temp INT NOT NULL AUTO_INCREMENT PRIMARY KEY - , id_apply_founding_partner_form INT NOT NULL - , name_contact VARCHAR(255) - , email VARCHAR(255) - , phone_number VARCHAR(255) - , name_company VARCHAR(255) - , website VARCHAR(1000) - , dog_count INT - , id_years_of_experience INT - , ids_speciality VARCHAR(255) - , ids_existing_system VARCHAR(255) - , id_existing_challenges INT - , id_existing_time_sink_weekly INT - , id_commitment_frequency INT - , most_valuable_features TEXT - , notes TEXT - , active BIT - , guid BINARY(36) -); - -USE demo; - -DROP TRIGGER IF EXISTS demo.before_insert_PH_Apply_Founding_Partner_Form; -DROP TRIGGER IF EXISTS demo.before_update_PH_Apply_Founding_Partner_Form; - -DELIMITER // -CREATE TRIGGER demo.before_insert_PH_Apply_Founding_Partner_Form -BEFORE INSERT ON demo.PH_Apply_Founding_Partner_Form -FOR EACH ROW -BEGIN - SET NEW.created_on := IFNULL(NEW.created_on, NOW()); -END // -DELIMITER ; - -DELIMITER // -CREATE TRIGGER demo.before_update_PH_Apply_Founding_Partner_Form -BEFORE UPDATE ON demo.PH_Apply_Founding_Partner_Form -FOR EACH ROW -BEGIN - IF OLD.id_change_set <=> NEW.id_change_set THEN - SIGNAL SQLSTATE '45000' - SET MESSAGE_TEXT = 'New Change Set ID must be provided.'; - END IF; - - INSERT INTO demo.PH_Apply_Founding_Partner_Form_Audit ( - id_Apply_Founding_Partner_Form, - name_field, - value_prev, - value_new, - id_change_set - ) - -- Changed name_contact - SELECT NEW.id_Apply_Founding_Partner_Form, 'name_contact', OLD.name_contact, NEW.name_contact, NEW.id_change_set - WHERE NOT OLD.name_contact <=> NEW.name_contact - UNION - -- Changed email - SELECT NEW.id_Apply_Founding_Partner_Form, 'email', OLD.email, NEW.email, NEW.id_change_set - WHERE NOT OLD.email <=> NEW.email - UNION - -- Changed phone_number - SELECT NEW.id_Apply_Founding_Partner_Form, 'phone_number', OLD.phone_number, NEW.phone_number, NEW.id_change_set - WHERE NOT OLD.phone_number <=> NEW.phone_number - UNION - -- Changed name_company - SELECT NEW.id_Apply_Founding_Partner_Form, 'name_company', OLD.name_company, NEW.name_company, NEW.id_change_set - WHERE NOT OLD.name_company <=> NEW.name_company - UNION - -- Changed website - SELECT NEW.id_Apply_Founding_Partner_Form, 'website', OLD.website, NEW.website, NEW.id_change_set - WHERE NOT OLD.website <=> NEW.website - UNION - -- Changed dog_count - SELECT NEW.id_Apply_Founding_Partner_Form, 'dog_count', CONVERT(OLD.dog_count, CHAR), CONVERT(NEW.dog_count, CHAR), NEW.id_change_set - WHERE NOT (OLD.dog_count <=> NEW.dog_count) - UNION - -- Changed id_years_of_experience - SELECT NEW.id_Apply_Founding_Partner_Form, 'id_years_of_experience', CONVERT(OLD.id_years_of_experience, CHAR), CONVERT(NEW.id_years_of_experience, CHAR), NEW.id_change_set - WHERE NOT (OLD.id_years_of_experience <=> NEW.id_years_of_experience) - UNION - -- Changed ids_speciality - SELECT NEW.id_Apply_Founding_Partner_Form, 'ids_speciality', OLD.ids_speciality, NEW.ids_speciality, NEW.id_change_set - WHERE NOT OLD.ids_speciality <=> NEW.ids_speciality - UNION - -- Changed ids_existing_system - SELECT NEW.id_Apply_Founding_Partner_Form, 'ids_existing_system', OLD.ids_existing_system, NEW.ids_existing_system, NEW.id_change_set - WHERE NOT OLD.ids_existing_system <=> NEW.ids_existing_system - UNION - -- Changed id_existing_challenges - SELECT NEW.id_Apply_Founding_Partner_Form, 'id_existing_challenges', CONVERT(OLD.id_existing_challenges, CHAR), CONVERT(NEW.id_existing_challenges, CHAR), NEW.id_change_set - WHERE NOT (OLD.id_existing_challenges <=> NEW.id_existing_challenges) - UNION - -- Changed id_existing_time_sink_weekly - SELECT NEW.id_Apply_Founding_Partner_Form, 'id_existing_time_sink_weekly', CONVERT(OLD.id_existing_time_sink_weekly, CHAR), CONVERT(NEW.id_existing_time_sink_weekly, CHAR), NEW.id_change_set - WHERE NOT (OLD.id_existing_time_sink_weekly <=> NEW.id_existing_time_sink_weekly) - UNION - -- Changed id_commitment_frequency - SELECT NEW.id_Apply_Founding_Partner_Form, 'id_commitment_frequency', CONVERT(OLD.id_commitment_frequency, CHAR), CONVERT(NEW.id_commitment_frequency, CHAR), NEW.id_change_set - WHERE NOT (OLD.id_commitment_frequency <=> NEW.id_commitment_frequency) - UNION - -- Changed most_valuable_features - SELECT NEW.id_Apply_Founding_Partner_Form, 'most_valuable_features', OLD.most_valuable_features, NEW.most_valuable_features, NEW.id_change_set - WHERE NOT OLD.most_valuable_features <=> NEW.most_valuable_features - UNION - -- Changed notes - SELECT NEW.id_Apply_Founding_Partner_Form, 'notes', OLD.notes, NEW.notes, NEW.id_change_set - WHERE NOT OLD.notes <=> NEW.notes - UNION - -- Changed active - SELECT NEW.id_Apply_Founding_Partner_Form, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set - WHERE NOT (OLD.active <=> NEW.active) - ; -END // -DELIMITER ; - -USE demo; - DROP PROCEDURE IF EXISTS demo.p_ph_save_apply_founding_partner_form; DELIMITER // @@ -267,10 +79,10 @@ BEGIN , id_years_of_experience INT , ids_speciality VARCHAR(255) , ids_existing_system VARCHAR(255) - , id_existing_challenges INT + , existing_challenges TEXT , id_existing_time_sink_weekly INT , id_commitment_frequency INT - , most_valuable_features TEXT + -- , most_valuable_features TEXT , notes TEXT , active BIT NOT NULL , name_error VARCHAR(255) @@ -297,10 +109,10 @@ BEGIN , id_years_of_experience , ids_speciality , ids_existing_system - , id_existing_challenges + , existing_challenges , id_existing_time_sink_weekly , id_commitment_frequency - , most_valuable_features + -- , most_valuable_features , notes , active , is_new @@ -316,10 +128,10 @@ BEGIN , IFNULL(AFPF_T.id_years_of_experience, AFPF.id_years_of_experience) AS id_years_of_experience , IFNULL(AFPF_T.ids_speciality, AFPF.ids_speciality) AS ids_speciality , IFNULL(AFPF_T.ids_existing_system, AFPF.ids_existing_system) AS ids_existing_system - , IFNULL(AFPF_T.id_existing_challenges, AFPF.id_existing_challenges) AS id_existing_challenges + , IFNULL(AFPF_T.existing_challenges, AFPF.existing_challenges) AS existing_challenges , IFNULL(AFPF_T.id_existing_time_sink_weekly, AFPF.id_existing_time_sink_weekly) AS id_existing_time_sink_weekly , IFNULL(AFPF_T.id_commitment_frequency, AFPF.id_commitment_frequency) AS id_commitment_frequency - , IFNULL(AFPF_T.most_valuable_features, AFPF.most_valuable_features) AS most_valuable_features + -- , IFNULL(AFPF_T.most_valuable_features, AFPF.most_valuable_features) AS most_valuable_features , IFNULL(AFPF_T.notes, AFPF.notes) AS notes , COALESCE(AFPF_T.active, AFPF.active, 1) AS active , CASE WHEN IFNULL(AFPF_T.id_apply_founding_partner_form, 0) < 1 THEN 1 ELSE 0 END AS is_new @@ -364,6 +176,7 @@ BEGIN WHERE ISNULL(t_AFPF.email) ; END IF; + /* -- phone_number IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.phone_number) LIMIT 1) THEN INSERT INTO tmp_Msg_Error ( @@ -379,6 +192,7 @@ BEGIN WHERE ISNULL(t_AFPF.phone_number) ; END IF; + */ -- name_company IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.name_company) LIMIT 1) THEN INSERT INTO tmp_Msg_Error ( @@ -394,6 +208,7 @@ BEGIN WHERE ISNULL(t_AFPF.name) ; END IF; + /* -- website IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.website) LIMIT 1) THEN INSERT INTO tmp_Msg_Error ( @@ -409,6 +224,7 @@ BEGIN WHERE ISNULL(t_AFPF.website) ; END IF; + */ -- dog_count IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.dog_count) LIMIT 1) THEN INSERT INTO tmp_Msg_Error ( @@ -469,8 +285,8 @@ BEGIN WHERE ISNULL(t_AFPF.ids_existing_system) ; END IF; - -- id_existing_challenges - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.id_existing_challenges) LIMIT 1) THEN + -- existing_challenges + IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.existing_challenges) LIMIT 1) THEN INSERT INTO tmp_Msg_Error ( id_type , code @@ -479,9 +295,9 @@ BEGIN SELECT v_id_type_error_bad_data , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Id_existing_challenges: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg + , CONCAT('The following Apply Founding Partner Form(s) do not have a existing_challenges: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.id_existing_challenges) + WHERE ISNULL(t_AFPF.existing_challenges) ; END IF; -- id_existing_time_sink_weekly @@ -514,6 +330,7 @@ BEGIN WHERE ISNULL(t_AFPF.id_commitment_frequency) ; END IF; + /* -- most_valuable_features IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.most_valuable_features) LIMIT 1) THEN INSERT INTO tmp_Msg_Error ( @@ -529,6 +346,7 @@ BEGIN WHERE ISNULL(t_AFPF.most_valuable_features) ; END IF; + */ -- Permissions IF a_debug = 1 THEN @@ -705,10 +523,10 @@ BEGIN , AFPF.id_years_of_experience = t_AFPF.id_years_of_experience , AFPF.ids_speciality = t_AFPF.ids_speciality , AFPF.ids_existing_system = t_AFPF.ids_existing_system - , AFPF.id_existing_challenges = t_AFPF.id_existing_challenges + , AFPF.existing_challenges = t_AFPF.existing_challenges , AFPF.id_existing_time_sink_weekly = t_AFPF.id_existing_time_sink_weekly , AFPF.id_commitment_frequency = t_AFPF.id_commitment_frequency - , AFPF.most_valuable_features = t_AFPF.most_valuable_features + -- , AFPF.most_valuable_features = t_AFPF.most_valuable_features , AFPF.notes = t_AFPF.notes , AFPF.active = t_AFPF.active , AFPF.id_change_set = v_id_change_set @@ -724,10 +542,10 @@ BEGIN , id_years_of_experience , ids_speciality , ids_existing_system - , id_existing_challenges + , existing_challenges , id_existing_time_sink_weekly , id_commitment_frequency - , most_valuable_features + -- , most_valuable_features , notes , active , id_user_created_by @@ -743,10 +561,10 @@ BEGIN , t_AFPF.id_years_of_experience , t_AFPF.ids_speciality , t_AFPF.ids_existing_system - , t_AFPF.id_existing_challenges + , t_AFPF.existing_challenges , t_AFPF.id_existing_time_sink_weekly , t_AFPF.id_commitment_frequency - , t_AFPF.most_valuable_features + -- , t_AFPF.most_valuable_features , t_AFPF.notes , t_AFPF.active , a_id_user @@ -788,12 +606,51 @@ END // DELIMITER ; /* -select - * - -- COUNT(*) --- delete -from demo.PH_Apply_Founding_Partner_Form_Temp -; + +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form; +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form_Temp; + + + +INSERT INTO demo.PH_Apply_Founding_Partner_Form_Temp ( + id_apply_founding_partner_form + ,name_contact + , email, + phone_number + ,name_company + ,website + ,dog_count + ,id_years_of_experience + ,ids_speciality + ,ids_existing_system + ,existing_challenges + ,id_existing_time_sink_weekly + ,id_commitment_frequency + ,notes + ,active + ,guid +) +SELECT + id_apply_founding_partner_form + ,name_contact + , email, + phone_number + ,name_company + ,website + ,dog_count + ,id_years_of_experience + ,ids_speciality + ,ids_existing_system + ,existing_challenges + ,id_existing_time_sink_weekly + ,id_commitment_frequency + ,notes + ,active + , '782c29e0-72e6-41e2-b543-4b0454041a57' + FROM demo.PH_Apply_Founding_Partner_Form_Temp + WHERE guid = '782c29e0-72e6-41e2-b543-4b0454041a56'; CALL demo.p_ph_save_apply_founding_partner_form ( @@ -803,11 +660,70 @@ CALL demo.p_ph_save_apply_founding_partner_form ( , 1 ); -select - * - -- COUNT(*) --- delete -from demo.PH_Apply_Founding_Partner_Form_Temp -; +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form; +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form_Temp; + + */ + +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form; +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form_Temp; + + + +INSERT INTO demo.PH_Apply_Founding_Partner_Form_Temp ( + id_apply_founding_partner_form + ,name_contact + , email, + phone_number + ,name_company + ,website + ,dog_count + ,id_years_of_experience + ,ids_speciality + ,ids_existing_system + ,existing_challenges + ,id_existing_time_sink_weekly + ,id_commitment_frequency + ,notes + ,active + ,guid +) +SELECT + id_apply_founding_partner_form + ,name_contact + , email, + phone_number + ,name_company + ,website + ,dog_count + ,id_years_of_experience + ,ids_speciality + ,ids_existing_system + ,existing_challenges + ,id_existing_time_sink_weekly + ,id_commitment_frequency + ,notes + ,active + , '782c29e0-72e6-41e2-b543-4b0454041a57' + FROM demo.PH_Apply_Founding_Partner_Form_Temp + WHERE guid = '782c29e0-72e6-41e2-b543-4b0454041a56'; + + +CALL demo.p_ph_save_apply_founding_partner_form ( + 'nipples' + , (SELECT GUID FROM demo.PH_Apply_Founding_Partner_Form_Temp ORDER BY id_temp DESC LIMIT 1) + , 1 + , 1 +); + +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form; +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form_Temp; + diff --git a/static/MySQL/11620_tbl_PH_Apply_Founding_Partner_Form.sql b/static/MySQL/11620_tbl_PH_Apply_Founding_Partner_Form.sql index 45b902b..514e53a 100644 --- a/static/MySQL/11620_tbl_PH_Apply_Founding_Partner_Form.sql +++ b/static/MySQL/11620_tbl_PH_Apply_Founding_Partner_Form.sql @@ -21,7 +21,7 @@ CREATE TABLE IF NOT EXISTS fetchmetrics.PH_Apply_Founding_Partner_Form ( , id_years_of_experience INT NOT NULL , ids_speciality VARCHAR(255) NOT NULL , ids_existing_system VARCHAR(255) NOT NULL - , id_existing_challenges INT NOT NULL + , existing_challenges TEXT NOT NULL , id_existing_time_sink_weekly INT NOT NULL , id_commitment_frequency INT NOT NULL -- , most_valuable_features TEXT NOT NULL diff --git a/static/MySQL/11622_tbl_PH_Apply_Founding_Partner_Form_Temp.sql b/static/MySQL/11622_tbl_PH_Apply_Founding_Partner_Form_Temp.sql index 8892cc0..a6beafb 100644 --- a/static/MySQL/11622_tbl_PH_Apply_Founding_Partner_Form_Temp.sql +++ b/static/MySQL/11622_tbl_PH_Apply_Founding_Partner_Form_Temp.sql @@ -22,7 +22,7 @@ CREATE TABLE IF NOT EXISTS fetchmetrics.PH_Apply_Founding_Partner_Form_Temp ( , id_years_of_experience INT , ids_speciality VARCHAR(255) , ids_existing_system VARCHAR(255) - , id_existing_challenges INT + , existing_challenges TEXT , id_existing_time_sink_weekly INT , id_commitment_frequency INT -- , most_valuable_features TEXT diff --git a/static/MySQL/31620_tri_PH_Apply_Founding_Partner_Form.sql b/static/MySQL/31620_tri_PH_Apply_Founding_Partner_Form.sql index 82e1cab..87feba4 100644 --- a/static/MySQL/31620_tri_PH_Apply_Founding_Partner_Form.sql +++ b/static/MySQL/31620_tri_PH_Apply_Founding_Partner_Form.sql @@ -66,9 +66,9 @@ BEGIN SELECT NEW.id_Apply_Founding_Partner_Form, 'ids_existing_system', OLD.ids_existing_system, NEW.ids_existing_system, NEW.id_change_set WHERE NOT OLD.ids_existing_system <=> NEW.ids_existing_system UNION - -- Changed id_existing_challenges - SELECT NEW.id_Apply_Founding_Partner_Form, 'id_existing_challenges', CONVERT(OLD.id_existing_challenges, CHAR), CONVERT(NEW.id_existing_challenges, CHAR), NEW.id_change_set - WHERE NOT (OLD.id_existing_challenges <=> NEW.id_existing_challenges) + -- Changed existing_challenges + SELECT NEW.id_Apply_Founding_Partner_Form, 'existing_challenges', CONVERT(OLD.existing_challenges, CHAR), CONVERT(NEW.existing_challenges, CHAR), NEW.id_change_set + WHERE NOT (OLD.existing_challenges <=> NEW.existing_challenges) UNION -- Changed id_existing_time_sink_weekly SELECT NEW.id_Apply_Founding_Partner_Form, 'id_existing_time_sink_weekly', CONVERT(OLD.id_existing_time_sink_weekly, CHAR), CONVERT(NEW.id_existing_time_sink_weekly, CHAR), NEW.id_change_set diff --git a/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql b/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql index 357f852..97f453e 100644 --- a/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql +++ b/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql @@ -79,7 +79,7 @@ BEGIN , id_years_of_experience INT , ids_speciality VARCHAR(255) , ids_existing_system VARCHAR(255) - , id_existing_challenges INT + , existing_challenges TEXT , id_existing_time_sink_weekly INT , id_commitment_frequency INT -- , most_valuable_features TEXT @@ -109,7 +109,7 @@ BEGIN , id_years_of_experience , ids_speciality , ids_existing_system - , id_existing_challenges + , existing_challenges , id_existing_time_sink_weekly , id_commitment_frequency -- , most_valuable_features @@ -128,7 +128,7 @@ BEGIN , IFNULL(AFPF_T.id_years_of_experience, AFPF.id_years_of_experience) AS id_years_of_experience , IFNULL(AFPF_T.ids_speciality, AFPF.ids_speciality) AS ids_speciality , IFNULL(AFPF_T.ids_existing_system, AFPF.ids_existing_system) AS ids_existing_system - , IFNULL(AFPF_T.id_existing_challenges, AFPF.id_existing_challenges) AS id_existing_challenges + , IFNULL(AFPF_T.existing_challenges, AFPF.existing_challenges) AS existing_challenges , IFNULL(AFPF_T.id_existing_time_sink_weekly, AFPF.id_existing_time_sink_weekly) AS id_existing_time_sink_weekly , IFNULL(AFPF_T.id_commitment_frequency, AFPF.id_commitment_frequency) AS id_commitment_frequency -- , IFNULL(AFPF_T.most_valuable_features, AFPF.most_valuable_features) AS most_valuable_features @@ -141,7 +141,7 @@ BEGIN ; UPDATE tmp_Apply_Founding_Partner_Form t_AFPF - SET name_error = COALESCE(t_AFPF.email, t_AFPF.name_company, t_AFPF.name_contact, t_AFPF.message, '(No Apply Founding Partner Form)') + SET name_error = COALESCE(t_AFPF.email, t_AFPF.name_company, t_AFPF.name_contact, t_AFPF.notes, '(No Apply Founding Partner Form)') ; -- Validation @@ -285,8 +285,8 @@ BEGIN WHERE ISNULL(t_AFPF.ids_existing_system) ; END IF; - -- id_existing_challenges - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.id_existing_challenges) LIMIT 1) THEN + -- existing_challenges + IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.existing_challenges) LIMIT 1) THEN INSERT INTO tmp_Msg_Error ( id_type , code @@ -295,9 +295,9 @@ BEGIN SELECT v_id_type_error_bad_data , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Id_existing_challenges: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg + , CONCAT('The following Apply Founding Partner Form(s) do not have a existing_challenges: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.id_existing_challenges) + WHERE ISNULL(t_AFPF.existing_challenges) ; END IF; -- id_existing_time_sink_weekly @@ -523,7 +523,7 @@ BEGIN , AFPF.id_years_of_experience = t_AFPF.id_years_of_experience , AFPF.ids_speciality = t_AFPF.ids_speciality , AFPF.ids_existing_system = t_AFPF.ids_existing_system - , AFPF.id_existing_challenges = t_AFPF.id_existing_challenges + , AFPF.existing_challenges = t_AFPF.existing_challenges , AFPF.id_existing_time_sink_weekly = t_AFPF.id_existing_time_sink_weekly , AFPF.id_commitment_frequency = t_AFPF.id_commitment_frequency -- , AFPF.most_valuable_features = t_AFPF.most_valuable_features @@ -542,7 +542,7 @@ BEGIN , id_years_of_experience , ids_speciality , ids_existing_system - , id_existing_challenges + , existing_challenges , id_existing_time_sink_weekly , id_commitment_frequency -- , most_valuable_features @@ -561,7 +561,7 @@ BEGIN , t_AFPF.id_years_of_experience , t_AFPF.ids_speciality , t_AFPF.ids_existing_system - , t_AFPF.id_existing_challenges + , t_AFPF.existing_challenges , t_AFPF.id_existing_time_sink_weekly , t_AFPF.id_commitment_frequency -- , t_AFPF.most_valuable_features @@ -606,12 +606,51 @@ END // DELIMITER ; /* -select - * - -- COUNT(*) --- delete -from fetchmetrics.PH_Apply_Founding_Partner_Form_Temp -; + +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form; +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form_Temp; + + + +INSERT INTO fetchmetrics.PH_Apply_Founding_Partner_Form_Temp ( + id_apply_founding_partner_form + ,name_contact + , email, + phone_number + ,name_company + ,website + ,dog_count + ,id_years_of_experience + ,ids_speciality + ,ids_existing_system + ,existing_challenges + ,id_existing_time_sink_weekly + ,id_commitment_frequency + ,notes + ,active + ,guid +) +SELECT + id_apply_founding_partner_form + ,name_contact + , email, + phone_number + ,name_company + ,website + ,dog_count + ,id_years_of_experience + ,ids_speciality + ,ids_existing_system + ,existing_challenges + ,id_existing_time_sink_weekly + ,id_commitment_frequency + ,notes + ,active + , '782c29e0-72e6-41e2-b543-4b0454041a57' + FROM fetchmetrics.PH_Apply_Founding_Partner_Form_Temp + WHERE guid = '782c29e0-72e6-41e2-b543-4b0454041a56'; CALL fetchmetrics.p_ph_save_apply_founding_partner_form ( @@ -621,11 +660,11 @@ CALL fetchmetrics.p_ph_save_apply_founding_partner_form ( , 1 ); -select - * - -- COUNT(*) --- delete -from fetchmetrics.PH_Apply_Founding_Partner_Form_Temp -; +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form; +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form_Temp; + + */ diff --git a/static/css/pages/core/apply_founding_partner.css b/static/css/pages/core/apply_founding_partner.css index 84488c1..7ef7dd0 100644 --- a/static/css/pages/core/apply_founding_partner.css +++ b/static/css/pages/core/apply_founding_partner.css @@ -18,8 +18,8 @@ max-width: 40vw; } -#id_speciality li, -#id_existing_system li { +#ids_speciality li, +#ids_existing_system li { list-style: none; } /* @@ -27,12 +27,4 @@ #id_existing_system li::marker { display: none; } -*/ - -.container.row.captcha > div { - margin: 0 auto; -} - -input[type="submit"] { - margin: 0 auto; -} \ No newline at end of file +*/ \ No newline at end of file diff --git a/static/css/pages/core/contact.css b/static/css/pages/core/contact.css index 8be213a..afa37a3 100644 --- a/static/css/pages/core/contact.css +++ b/static/css/pages/core/contact.css @@ -49,6 +49,10 @@ textarea.form-input { margin-bottom: 1.25rem; } + +.container.row.captcha > div { + margin: 0 auto; +} .container.captcha > div:first-child > label:first-child { display: flex; justify-content: center; @@ -81,8 +85,10 @@ altcha-widget > div:first-child, margin-right: auto; } + input[type="submit"] { margin-left: 40%; + margin: 0 auto; padding: 0.75rem 1.5rem; background: #2563eb; color: white; diff --git a/static/dist/css/core_apply_founding_partner.bundle.css b/static/dist/css/core_apply_founding_partner.bundle.css index 4ccbd52..3cd8e2f 100644 --- a/static/dist/css/core_apply_founding_partner.bundle.css +++ b/static/dist/css/core_apply_founding_partner.bundle.css @@ -127,6 +127,10 @@ textarea.form-input { margin-bottom: 1.25rem; } + +.container.row.captcha > div { + margin: 0 auto; +} .container.captcha > div:first-child > label:first-child { display: flex; justify-content: center; @@ -159,8 +163,10 @@ altcha-widget > div:first-child, margin-right: auto; } + input[type="submit"] { margin-left: 40%; + margin: 0 auto; padding: 0.75rem 1.5rem; background: #2563eb; color: white; @@ -235,8 +241,8 @@ input[type="submit"]:hover { max-width: 40vw; } -#id_speciality li, -#id_existing_system li { +#ids_speciality li, +#ids_existing_system li { list-style: none; } /* @@ -246,12 +252,4 @@ input[type="submit"]:hover { } */ -.container.row.captcha > div { - margin: 0 auto; -} - -input[type="submit"] { - margin: 0 auto; -} - /*# sourceMappingURL=core_apply_founding_partner.bundle.css.map*/ \ No newline at end of file diff --git a/static/dist/css/core_apply_founding_partner.bundle.css.map b/static/dist/css/core_apply_founding_partner.bundle.css.map index becce8e..e03a7d4 100644 --- a/static/dist/css/core_apply_founding_partner.bundle.css.map +++ b/static/dist/css/core_apply_founding_partner.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/core_apply_founding_partner.bundle.css","mappings":";AACA;CACC;;AAED,WAAW;AACX;IACI,mBAAmB;IACnB,cAAc;IACd,uBAAuB;AAC3B;;AAEA;IACI,aAAa;IACb,2DAA2D;IAC3D,SAAS;IACT,mBAAmB;AACvB;;AAEA;IACI,WAAW;IACX,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;IAChB,UAAU;AACd;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,cAAc;IACd,qBAAqB;IACrB,2BAA2B;AAC/B;;AAEA;IACI,WAAW;IACX,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;AACrB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,WAAW;AACf;AACA;IACI,UAAU;AACd;AACA;IACI,gBAAgB;AACpB;;AAEA;IACI;QACI,0BAA0B;QAC1B,kBAAkB;IACtB;AACJ;;AAEA;IACI;QACI,aAAa;IACjB;AACJ,C;;AC5EA;IACI,uBAAuB;AAC3B;AACA;IACI,iBAAiB;AACrB;AACA;IACI,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,qCAAqC;AACzC;AACA;IACI,eAAe;AACnB;;AAEA;IACI,aAAa;IACb,gCAAgC;IAChC,WAAW;IACX,mBAAmB;AACvB;AACA;IACI,mBAAmB;IACnB,gBAAgB;AACpB;AACA;IACI,WAAW;IACX,eAAe;IACf,yBAAyB;IACzB,kBAAkB;IAClB,eAAe;AACnB;AACA;IACI,iBAAiB;AACrB;;AAEA;IACI,qBAAqB;IACrB,gBAAgB;IAChB,sBAAsB;AAC1B;;AAEA;IACI,aAAa;IACb,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;AAClB;AACA;IACI,iBAAiB;IACjB,eAAe;AACnB;AACA;;IAEI,YAAY;AAChB;AACA;IACI,kBAAkB;IAClB,oBAAoB;IACpB,iBAAiB;AACrB;AACA;IACI,aAAa;AACjB;AACA;;;IAGI,kBAAkB;IAClB,aAAa;IACb,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB;IACnB,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,gBAAgB;IAChB,eAAe;IACf,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,mBAAmB;IACnB,iBAAiB;AACrB;;AAEA;IACI,2BAA2B;AAC/B;;AAEA;IACI;QACI,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,0BAA0B;QAC1B,WAAW;IACf;;IAEA;QACI,cAAc;IAClB;;IAEA;QACI,cAAc;QACd,WAAW;IACf;AACJ;;AAEA;AACA,C;;ACzIA;IACI,eAAe;AACnB;;AAEA;IACI,WAAW;IACX,kBAAkB;AACtB;AACA;IACI,WAAW;IACX,cAAc;IACd,qBAAqB;AACzB;;AAEA;IACI,eAAe;IACf,eAAe;AACnB;;AAEA;;IAEI,gBAAgB;AACpB;AACA;;;;;CAKC;;AAED;IACI,cAAc;AAClB;;AAEA;IACI,cAAc;AAClB,C","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/contact.css","webpack://app/./static/css/pages/core/apply_founding_partner.css"],"sourcesContent":["\n/* Home page\n*/\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 2rem 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n text-align: center;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n.footer-section.contact {\n width: 100%;\n}\n.footer-section .container {\n padding: 0;\n}\n.footer-section .container.row .container.column {\n padding: 1vh 2vw;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 540px) {\n .nav-links {\n display: none;\n }\n}","\n.contact-section {\n padding: 2rem 2rem 4rem;\n}\n.contact-section h1 {\n margin: 1rem auto;\n}\n.contact-section p {\n margin: 0.5rem auto;\n}\n\n.contact-form {\n max-width: 60vw;\n width: fit-content;\n margin: 0 auto;\n background: #fff;\n padding: 2rem;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n.contact-form textarea {\n max-width: 40vw;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: 1.5rem;\n margin-bottom: 1rem;\n}\n.form-label {\n padding-top: 0.5rem;\n font-weight: 500;\n}\n.form-input {\n width: 100%;\n padding: 0.5rem;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 1rem;\n}\ntextarea.form-input {\n min-height: 120px;\n}\n\n.marketing-consent input {\n display: inline-block;\n margin-left: 20%;\n margin-bottom: 1.25rem;\n}\n\n.container.captcha > div:first-child > label:first-child {\n display: flex;\n justify-content: center;\n width: fit-content;\n text-align: center;\n margin: 0 auto;\n}\n.container.captcha > p:last-child{\n font-size: 0.9rem;\n margin: 1vh 1vw;\n}\n.container.captcha .altcha-widget,\n.container.captcha .altcha-widget div.altcha {\n width: 200px;\n}\n.container.captcha .altcha-main {\n padding-left: 1rem;\n padding-top: 0.75rem;\n padding-bottom: 0;\n}\n.container.captcha .altcha-main > :last-child {\n display: none;\n}\n.container.captcha .altcha,\naltcha-widget > div:first-child,\n.container.captcha > div > .altcha-widget > div {\n width: fit-content;\n display: flex;\n margin-left: auto;\n margin-right: auto;\n}\n\ninput[type=\"submit\"] {\n margin-left: 40%;\n padding: 0.75rem 1.5rem;\n background: #2563eb;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 1rem;\n}\n\ninput[type=\"submit\"]:hover {\n background: #1d4ed8;\n}\n\n.data-notice {\n margin-top: 3rem;\n padding: 1.5rem;\n background: #f3f4f6;\n border-radius: 4px;\n font-size: 0.95rem;\n}\n\n.data-notice h3 {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n}\n\n.data-notice ul li {\n list-style-position: inside;\n}\n\n@media (max-width: 768px) {\n .contact-form {\n max-width: 80vw;\n }\n .contact-form textarea {\n max-width: 60vw;\n }\n .form-grid {\n grid-template-columns: 1fr;\n gap: 0.5rem;\n }\n\n .form-label {\n padding-top: 0;\n }\n\n .submit-button {\n margin-left: 0;\n width: 100%;\n }\n}\n\n@media (max-width: 400px) {\n}","\n.contact-form {\n max-width: 75vw;\n}\n\n.label-question {\n width: 20vw;\n align-self: center;\n}\n.container.column .container.row .container-input {\n width: 42vw;\n margin: 0 auto;\n padding: 0.25vh 0.5vw;\n}\n\n.container.column .container.row .container-input .form-input {\n min-width: 40vw;\n max-width: 40vw;\n}\n\n#id_speciality li,\n#id_existing_system li {\n list-style: none;\n}\n/*\n#id_speciality li::marker,\n#id_existing_system li::marker {\n display: none;\n}\n*/\n\n.container.row.captcha > div {\n margin: 0 auto;\n}\n\ninput[type=\"submit\"] {\n margin: 0 auto;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/core_apply_founding_partner.bundle.css","mappings":";AACA;CACC;;AAED,WAAW;AACX;IACI,mBAAmB;IACnB,cAAc;IACd,uBAAuB;AAC3B;;AAEA;IACI,aAAa;IACb,2DAA2D;IAC3D,SAAS;IACT,mBAAmB;AACvB;;AAEA;IACI,WAAW;IACX,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;IAChB,UAAU;AACd;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,cAAc;IACd,qBAAqB;IACrB,2BAA2B;AAC/B;;AAEA;IACI,WAAW;IACX,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;AACrB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,WAAW;AACf;AACA;IACI,UAAU;AACd;AACA;IACI,gBAAgB;AACpB;;AAEA;IACI;QACI,0BAA0B;QAC1B,kBAAkB;IACtB;AACJ;;AAEA;IACI;QACI,aAAa;IACjB;AACJ,C;;AC5EA;IACI,uBAAuB;AAC3B;AACA;IACI,iBAAiB;AACrB;AACA;IACI,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,qCAAqC;AACzC;AACA;IACI,eAAe;AACnB;;AAEA;IACI,aAAa;IACb,gCAAgC;IAChC,WAAW;IACX,mBAAmB;AACvB;AACA;IACI,mBAAmB;IACnB,gBAAgB;AACpB;AACA;IACI,WAAW;IACX,eAAe;IACf,yBAAyB;IACzB,kBAAkB;IAClB,eAAe;AACnB;AACA;IACI,iBAAiB;AACrB;;AAEA;IACI,qBAAqB;IACrB,gBAAgB;IAChB,sBAAsB;AAC1B;;;AAGA;IACI,cAAc;AAClB;AACA;IACI,aAAa;IACb,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;AAClB;AACA;IACI,iBAAiB;IACjB,eAAe;AACnB;AACA;;IAEI,YAAY;AAChB;AACA;IACI,kBAAkB;IAClB,oBAAoB;IACpB,iBAAiB;AACrB;AACA;IACI,aAAa;AACjB;AACA;;;IAGI,kBAAkB;IAClB,aAAa;IACb,iBAAiB;IACjB,kBAAkB;AACtB;;;AAGA;IACI,gBAAgB;IAChB,cAAc;IACd,uBAAuB;IACvB,mBAAmB;IACnB,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,gBAAgB;IAChB,eAAe;IACf,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,mBAAmB;IACnB,iBAAiB;AACrB;;AAEA;IACI,2BAA2B;AAC/B;;AAEA;IACI;QACI,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,0BAA0B;QAC1B,WAAW;IACf;;IAEA;QACI,cAAc;IAClB;;IAEA;QACI,cAAc;QACd,WAAW;IACf;AACJ;;AAEA;AACA,C;;AC/IA;IACI,eAAe;AACnB;;AAEA;IACI,WAAW;IACX,kBAAkB;AACtB;AACA;IACI,WAAW;IACX,cAAc;IACd,qBAAqB;AACzB;;AAEA;IACI,eAAe;IACf,eAAe;AACnB;;AAEA;;IAEI,gBAAgB;AACpB;AACA;;;;;CAKC,C","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/contact.css","webpack://app/./static/css/pages/core/apply_founding_partner.css"],"sourcesContent":["\n/* Home page\n*/\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 2rem 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n text-align: center;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n.footer-section.contact {\n width: 100%;\n}\n.footer-section .container {\n padding: 0;\n}\n.footer-section .container.row .container.column {\n padding: 1vh 2vw;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 540px) {\n .nav-links {\n display: none;\n }\n}","\n.contact-section {\n padding: 2rem 2rem 4rem;\n}\n.contact-section h1 {\n margin: 1rem auto;\n}\n.contact-section p {\n margin: 0.5rem auto;\n}\n\n.contact-form {\n max-width: 60vw;\n width: fit-content;\n margin: 0 auto;\n background: #fff;\n padding: 2rem;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n.contact-form textarea {\n max-width: 40vw;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: 1.5rem;\n margin-bottom: 1rem;\n}\n.form-label {\n padding-top: 0.5rem;\n font-weight: 500;\n}\n.form-input {\n width: 100%;\n padding: 0.5rem;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 1rem;\n}\ntextarea.form-input {\n min-height: 120px;\n}\n\n.marketing-consent input {\n display: inline-block;\n margin-left: 20%;\n margin-bottom: 1.25rem;\n}\n\n\n.container.row.captcha > div {\n margin: 0 auto;\n}\n.container.captcha > div:first-child > label:first-child {\n display: flex;\n justify-content: center;\n width: fit-content;\n text-align: center;\n margin: 0 auto;\n}\n.container.captcha > p:last-child{\n font-size: 0.9rem;\n margin: 1vh 1vw;\n}\n.container.captcha .altcha-widget,\n.container.captcha .altcha-widget div.altcha {\n width: 200px;\n}\n.container.captcha .altcha-main {\n padding-left: 1rem;\n padding-top: 0.75rem;\n padding-bottom: 0;\n}\n.container.captcha .altcha-main > :last-child {\n display: none;\n}\n.container.captcha .altcha,\naltcha-widget > div:first-child,\n.container.captcha > div > .altcha-widget > div {\n width: fit-content;\n display: flex;\n margin-left: auto;\n margin-right: auto;\n}\n\n\ninput[type=\"submit\"] {\n margin-left: 40%;\n margin: 0 auto;\n padding: 0.75rem 1.5rem;\n background: #2563eb;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 1rem;\n}\n\ninput[type=\"submit\"]:hover {\n background: #1d4ed8;\n}\n\n.data-notice {\n margin-top: 3rem;\n padding: 1.5rem;\n background: #f3f4f6;\n border-radius: 4px;\n font-size: 0.95rem;\n}\n\n.data-notice h3 {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n}\n\n.data-notice ul li {\n list-style-position: inside;\n}\n\n@media (max-width: 768px) {\n .contact-form {\n max-width: 80vw;\n }\n .contact-form textarea {\n max-width: 60vw;\n }\n .form-grid {\n grid-template-columns: 1fr;\n gap: 0.5rem;\n }\n\n .form-label {\n padding-top: 0;\n }\n\n .submit-button {\n margin-left: 0;\n width: 100%;\n }\n}\n\n@media (max-width: 400px) {\n}","\n.contact-form {\n max-width: 75vw;\n}\n\n.label-question {\n width: 20vw;\n align-self: center;\n}\n.container.column .container.row .container-input {\n width: 42vw;\n margin: 0 auto;\n padding: 0.25vh 0.5vw;\n}\n\n.container.column .container.row .container-input .form-input {\n min-width: 40vw;\n max-width: 40vw;\n}\n\n#ids_speciality li,\n#ids_existing_system li {\n list-style: none;\n}\n/*\n#id_speciality li::marker,\n#id_existing_system li::marker {\n display: none;\n}\n*/"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/core_contact.bundle.css b/static/dist/css/core_contact.bundle.css index 49b14e3..50a6c66 100644 --- a/static/dist/css/core_contact.bundle.css +++ b/static/dist/css/core_contact.bundle.css @@ -127,6 +127,10 @@ textarea.form-input { margin-bottom: 1.25rem; } + +.container.row.captcha > div { + margin: 0 auto; +} .container.captcha > div:first-child > label:first-child { display: flex; justify-content: center; @@ -159,8 +163,10 @@ altcha-widget > div:first-child, margin-right: auto; } + input[type="submit"] { margin-left: 40%; + margin: 0 auto; padding: 0.75rem 1.5rem; background: #2563eb; color: white; diff --git a/static/dist/css/core_contact.bundle.css.map b/static/dist/css/core_contact.bundle.css.map index 115b188..fcfa35e 100644 --- a/static/dist/css/core_contact.bundle.css.map +++ b/static/dist/css/core_contact.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/core_contact.bundle.css","mappings":";AACA;CACC;;AAED,WAAW;AACX;IACI,mBAAmB;IACnB,cAAc;IACd,uBAAuB;AAC3B;;AAEA;IACI,aAAa;IACb,2DAA2D;IAC3D,SAAS;IACT,mBAAmB;AACvB;;AAEA;IACI,WAAW;IACX,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;IAChB,UAAU;AACd;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,cAAc;IACd,qBAAqB;IACrB,2BAA2B;AAC/B;;AAEA;IACI,WAAW;IACX,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;AACrB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,WAAW;AACf;AACA;IACI,UAAU;AACd;AACA;IACI,gBAAgB;AACpB;;AAEA;IACI;QACI,0BAA0B;QAC1B,kBAAkB;IACtB;AACJ;;AAEA;IACI;QACI,aAAa;IACjB;AACJ,C;;AC5EA;IACI,uBAAuB;AAC3B;AACA;IACI,iBAAiB;AACrB;AACA;IACI,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,qCAAqC;AACzC;AACA;IACI,eAAe;AACnB;;AAEA;IACI,aAAa;IACb,gCAAgC;IAChC,WAAW;IACX,mBAAmB;AACvB;AACA;IACI,mBAAmB;IACnB,gBAAgB;AACpB;AACA;IACI,WAAW;IACX,eAAe;IACf,yBAAyB;IACzB,kBAAkB;IAClB,eAAe;AACnB;AACA;IACI,iBAAiB;AACrB;;AAEA;IACI,qBAAqB;IACrB,gBAAgB;IAChB,sBAAsB;AAC1B;;AAEA;IACI,aAAa;IACb,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;AAClB;AACA;IACI,iBAAiB;IACjB,eAAe;AACnB;AACA;;IAEI,YAAY;AAChB;AACA;IACI,kBAAkB;IAClB,oBAAoB;IACpB,iBAAiB;AACrB;AACA;IACI,aAAa;AACjB;AACA;;;IAGI,kBAAkB;IAClB,aAAa;IACb,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB;IACnB,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,gBAAgB;IAChB,eAAe;IACf,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,mBAAmB;IACnB,iBAAiB;AACrB;;AAEA;IACI,2BAA2B;AAC/B;;AAEA;IACI;QACI,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,0BAA0B;QAC1B,WAAW;IACf;;IAEA;QACI,cAAc;IAClB;;IAEA;QACI,cAAc;QACd,WAAW;IACf;AACJ;;AAEA;AACA,C","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/contact.css"],"sourcesContent":["\n/* Home page\n*/\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 2rem 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n text-align: center;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n.footer-section.contact {\n width: 100%;\n}\n.footer-section .container {\n padding: 0;\n}\n.footer-section .container.row .container.column {\n padding: 1vh 2vw;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 540px) {\n .nav-links {\n display: none;\n }\n}","\n.contact-section {\n padding: 2rem 2rem 4rem;\n}\n.contact-section h1 {\n margin: 1rem auto;\n}\n.contact-section p {\n margin: 0.5rem auto;\n}\n\n.contact-form {\n max-width: 60vw;\n width: fit-content;\n margin: 0 auto;\n background: #fff;\n padding: 2rem;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n.contact-form textarea {\n max-width: 40vw;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: 1.5rem;\n margin-bottom: 1rem;\n}\n.form-label {\n padding-top: 0.5rem;\n font-weight: 500;\n}\n.form-input {\n width: 100%;\n padding: 0.5rem;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 1rem;\n}\ntextarea.form-input {\n min-height: 120px;\n}\n\n.marketing-consent input {\n display: inline-block;\n margin-left: 20%;\n margin-bottom: 1.25rem;\n}\n\n.container.captcha > div:first-child > label:first-child {\n display: flex;\n justify-content: center;\n width: fit-content;\n text-align: center;\n margin: 0 auto;\n}\n.container.captcha > p:last-child{\n font-size: 0.9rem;\n margin: 1vh 1vw;\n}\n.container.captcha .altcha-widget,\n.container.captcha .altcha-widget div.altcha {\n width: 200px;\n}\n.container.captcha .altcha-main {\n padding-left: 1rem;\n padding-top: 0.75rem;\n padding-bottom: 0;\n}\n.container.captcha .altcha-main > :last-child {\n display: none;\n}\n.container.captcha .altcha,\naltcha-widget > div:first-child,\n.container.captcha > div > .altcha-widget > div {\n width: fit-content;\n display: flex;\n margin-left: auto;\n margin-right: auto;\n}\n\ninput[type=\"submit\"] {\n margin-left: 40%;\n padding: 0.75rem 1.5rem;\n background: #2563eb;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 1rem;\n}\n\ninput[type=\"submit\"]:hover {\n background: #1d4ed8;\n}\n\n.data-notice {\n margin-top: 3rem;\n padding: 1.5rem;\n background: #f3f4f6;\n border-radius: 4px;\n font-size: 0.95rem;\n}\n\n.data-notice h3 {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n}\n\n.data-notice ul li {\n list-style-position: inside;\n}\n\n@media (max-width: 768px) {\n .contact-form {\n max-width: 80vw;\n }\n .contact-form textarea {\n max-width: 60vw;\n }\n .form-grid {\n grid-template-columns: 1fr;\n gap: 0.5rem;\n }\n\n .form-label {\n padding-top: 0;\n }\n\n .submit-button {\n margin-left: 0;\n width: 100%;\n }\n}\n\n@media (max-width: 400px) {\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/core_contact.bundle.css","mappings":";AACA;CACC;;AAED,WAAW;AACX;IACI,mBAAmB;IACnB,cAAc;IACd,uBAAuB;AAC3B;;AAEA;IACI,aAAa;IACb,2DAA2D;IAC3D,SAAS;IACT,mBAAmB;AACvB;;AAEA;IACI,WAAW;IACX,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;IAChB,UAAU;AACd;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,cAAc;IACd,qBAAqB;IACrB,2BAA2B;AAC/B;;AAEA;IACI,WAAW;IACX,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;AACrB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,WAAW;AACf;AACA;IACI,UAAU;AACd;AACA;IACI,gBAAgB;AACpB;;AAEA;IACI;QACI,0BAA0B;QAC1B,kBAAkB;IACtB;AACJ;;AAEA;IACI;QACI,aAAa;IACjB;AACJ,C;;AC5EA;IACI,uBAAuB;AAC3B;AACA;IACI,iBAAiB;AACrB;AACA;IACI,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,qCAAqC;AACzC;AACA;IACI,eAAe;AACnB;;AAEA;IACI,aAAa;IACb,gCAAgC;IAChC,WAAW;IACX,mBAAmB;AACvB;AACA;IACI,mBAAmB;IACnB,gBAAgB;AACpB;AACA;IACI,WAAW;IACX,eAAe;IACf,yBAAyB;IACzB,kBAAkB;IAClB,eAAe;AACnB;AACA;IACI,iBAAiB;AACrB;;AAEA;IACI,qBAAqB;IACrB,gBAAgB;IAChB,sBAAsB;AAC1B;;;AAGA;IACI,cAAc;AAClB;AACA;IACI,aAAa;IACb,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;AAClB;AACA;IACI,iBAAiB;IACjB,eAAe;AACnB;AACA;;IAEI,YAAY;AAChB;AACA;IACI,kBAAkB;IAClB,oBAAoB;IACpB,iBAAiB;AACrB;AACA;IACI,aAAa;AACjB;AACA;;;IAGI,kBAAkB;IAClB,aAAa;IACb,iBAAiB;IACjB,kBAAkB;AACtB;;;AAGA;IACI,gBAAgB;IAChB,cAAc;IACd,uBAAuB;IACvB,mBAAmB;IACnB,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,gBAAgB;IAChB,eAAe;IACf,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,mBAAmB;IACnB,iBAAiB;AACrB;;AAEA;IACI,2BAA2B;AAC/B;;AAEA;IACI;QACI,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,0BAA0B;QAC1B,WAAW;IACf;;IAEA;QACI,cAAc;IAClB;;IAEA;QACI,cAAc;QACd,WAAW;IACf;AACJ;;AAEA;AACA,C","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/contact.css"],"sourcesContent":["\n/* Home page\n*/\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 2rem 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n text-align: center;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n.footer-section.contact {\n width: 100%;\n}\n.footer-section .container {\n padding: 0;\n}\n.footer-section .container.row .container.column {\n padding: 1vh 2vw;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 540px) {\n .nav-links {\n display: none;\n }\n}","\n.contact-section {\n padding: 2rem 2rem 4rem;\n}\n.contact-section h1 {\n margin: 1rem auto;\n}\n.contact-section p {\n margin: 0.5rem auto;\n}\n\n.contact-form {\n max-width: 60vw;\n width: fit-content;\n margin: 0 auto;\n background: #fff;\n padding: 2rem;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n.contact-form textarea {\n max-width: 40vw;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: 1.5rem;\n margin-bottom: 1rem;\n}\n.form-label {\n padding-top: 0.5rem;\n font-weight: 500;\n}\n.form-input {\n width: 100%;\n padding: 0.5rem;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 1rem;\n}\ntextarea.form-input {\n min-height: 120px;\n}\n\n.marketing-consent input {\n display: inline-block;\n margin-left: 20%;\n margin-bottom: 1.25rem;\n}\n\n\n.container.row.captcha > div {\n margin: 0 auto;\n}\n.container.captcha > div:first-child > label:first-child {\n display: flex;\n justify-content: center;\n width: fit-content;\n text-align: center;\n margin: 0 auto;\n}\n.container.captcha > p:last-child{\n font-size: 0.9rem;\n margin: 1vh 1vw;\n}\n.container.captcha .altcha-widget,\n.container.captcha .altcha-widget div.altcha {\n width: 200px;\n}\n.container.captcha .altcha-main {\n padding-left: 1rem;\n padding-top: 0.75rem;\n padding-bottom: 0;\n}\n.container.captcha .altcha-main > :last-child {\n display: none;\n}\n.container.captcha .altcha,\naltcha-widget > div:first-child,\n.container.captcha > div > .altcha-widget > div {\n width: fit-content;\n display: flex;\n margin-left: auto;\n margin-right: auto;\n}\n\n\ninput[type=\"submit\"] {\n margin-left: 40%;\n margin: 0 auto;\n padding: 0.75rem 1.5rem;\n background: #2563eb;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 1rem;\n}\n\ninput[type=\"submit\"]:hover {\n background: #1d4ed8;\n}\n\n.data-notice {\n margin-top: 3rem;\n padding: 1.5rem;\n background: #f3f4f6;\n border-radius: 4px;\n font-size: 0.95rem;\n}\n\n.data-notice h3 {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n}\n\n.data-notice ul li {\n list-style-position: inside;\n}\n\n@media (max-width: 768px) {\n .contact-form {\n max-width: 80vw;\n }\n .contact-form textarea {\n max-width: 60vw;\n }\n .form-grid {\n grid-template-columns: 1fr;\n gap: 0.5rem;\n }\n\n .form-label {\n padding-top: 0;\n }\n\n .submit-button {\n margin-left: 0;\n width: 100%;\n }\n}\n\n@media (max-width: 400px) {\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/templates/pages/core/_apply_founding_partner.html b/templates/pages/core/_apply_founding_partner.html index edcf2a1..45597df 100644 --- a/templates/pages/core/_apply_founding_partner.html +++ b/templates/pages/core/_apply_founding_partner.html @@ -74,16 +74,16 @@
- +
- {{ form.id_speciality(class="form-input", required=True) }} + {{ form.ids_speciality(class="form-input", required=True) }}
- +
- {{ form.id_existing_system(class="form-input", required=True) }} + {{ form.ids_existing_system(class="form-input", required=True) }}
diff --git a/templates/pages/core/_home.html b/templates/pages/core/_home.html index 80d4381..660332c 100644 --- a/templates/pages/core/_home.html +++ b/templates/pages/core/_home.html @@ -264,7 +264,7 @@

Limited to 20 trainers - We want to provide excellent support and meaningful collaboration with each Founding Partner.

- Apply for Founding Partner Program + Apply for Founding Partner Program Book a Demo Call

Questions? Email us at {{ model.get_mail_contact_public() }}