1. Refactoring form objects and database objects to use inheritance and abstract base class for consistency and reduced redundancy.\n2. Contact us page button links updated to resolve error of missing link causing page refresh instead of expected functionality.
This commit is contained in:
BIN
helpers/DEPRECATED/__pycache__/helper_abc.cpython-312.pyc
Normal file
BIN
helpers/DEPRECATED/__pycache__/helper_abc.cpython-312.pyc
Normal file
Binary file not shown.
38
helpers/DEPRECATED/helper_abc.py
Normal file
38
helpers/DEPRECATED/helper_abc.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from abc import abstractmethod
|
||||
from functools import wraps
|
||||
import inspect
|
||||
|
||||
def Interface_ABC(cls):
|
||||
abstract_methods = {}
|
||||
for name, value in vars(cls).items():
|
||||
if getattr(value, '__isabstractmethod__', False):
|
||||
if isinstance(value, classmethod):
|
||||
abstract_methods[name] = 'classmethod'
|
||||
elif isinstance(value, staticmethod):
|
||||
abstract_methods[name] = 'staticmethod'
|
||||
else:
|
||||
abstract_methods[name] = 'method'
|
||||
|
||||
def decorator(subclass):
|
||||
for method, method_type in abstract_methods.items():
|
||||
if not hasattr(subclass, method):
|
||||
raise NotImplementedError(
|
||||
f"'{subclass.__name__}' must implement abstract {method_type} '{method}' from interface '{cls.__name__}'"
|
||||
)
|
||||
|
||||
subclass_value = getattr(subclass, method)
|
||||
|
||||
if method_type == 'classmethod' and not isinstance(subclass_value, classmethod):
|
||||
raise TypeError(f"'{method}' must be a classmethod in '{subclass.__name__}'")
|
||||
elif method_type == 'staticmethod' and not isinstance(subclass_value, staticmethod):
|
||||
raise TypeError(f"'{method}' must be a staticmethod in '{subclass.__name__}'")
|
||||
elif method_type == 'method' and (isinstance(subclass_value, (classmethod, staticmethod)) or inspect.isfunction(subclass_value)):
|
||||
# For normal methods, we accept either functions or methods, as unbound methods are functions in Python 3
|
||||
pass
|
||||
else:
|
||||
raise TypeError(f"'{method}' has incorrect type in '{subclass.__name__}'")
|
||||
|
||||
return subclass
|
||||
|
||||
return decorator
|
||||
|
||||
34
helpers/DEPRECATED/helper_db_postgresql.py
Normal file
34
helpers/DEPRECATED/helper_db_postgresql.py
Normal file
@@ -0,0 +1,34 @@
|
||||
"""
|
||||
Project: PARTS Website
|
||||
Author: Edward Middleton-Smith
|
||||
Precision And Research Technology Systems Limited
|
||||
|
||||
Technology: Helpers
|
||||
Feature: PostgreSQL Database Helper
|
||||
"""
|
||||
|
||||
# internal
|
||||
|
||||
# external
|
||||
import psycopg2
|
||||
# from psycopg2 import sql
|
||||
from pydantic import BaseModel
|
||||
from flask import Flask
|
||||
|
||||
class Helper_DB_PostgreSQL(BaseModel):
|
||||
|
||||
|
||||
app: Flask
|
||||
|
||||
def __init__(self, app):
|
||||
super().__init__(app=app)
|
||||
# self.app = app
|
||||
|
||||
def get_db_connection(self):
|
||||
return psycopg2.connect(
|
||||
dbname = self.app.config['DB_NAME'],
|
||||
user = self.app.config['DB_USER'],
|
||||
password = self.app.config['DB_PASSWORD'],
|
||||
host = self.app.config['DB_HOST'],
|
||||
port = self.app.config['DB_PORT']
|
||||
)
|
||||
Reference in New Issue
Block a user