666
Browse files- app/__init__.py +1 -1
- app/models/__init__.py +1 -1
- app/routes/payments.py +1 -1
- app/templates/admin/settings.html +3 -3
- app/templates/auth/login.html +2 -2
- app/templates/auth/register.html +2 -2
- app/templates/base.html +1 -1
- app/templates/index.html +1 -1
- app/templates/legal/cgu.html +5 -5
- app/templates/legal/cookies.html +1 -1
- app/templates/legal/mentions.html +4 -4
- app/templates/legal/privacy.html +1 -1
- c.py +64 -0
- config/config.py +1 -1
- scripts/init_settings.py +1 -1
- test_referral.py +1 -1
app/__init__.py
CHANGED
|
@@ -40,7 +40,7 @@ def create_app(config_name="default"):
|
|
| 40 |
except Exception:
|
| 41 |
# Return defaults if database is not yet initialized
|
| 42 |
return {
|
| 43 |
-
'app_name': '
|
| 44 |
'app_logo': None,
|
| 45 |
}
|
| 46 |
|
|
|
|
| 40 |
except Exception:
|
| 41 |
# Return defaults if database is not yet initialized
|
| 42 |
return {
|
| 43 |
+
'app_name': 'Apex Ores',
|
| 44 |
'app_logo': None,
|
| 45 |
}
|
| 46 |
|
app/models/__init__.py
CHANGED
|
@@ -43,7 +43,7 @@ class AppSettings(db.Model):
|
|
| 43 |
@staticmethod
|
| 44 |
def get_app_name():
|
| 45 |
"""Get the application name"""
|
| 46 |
-
return AppSettings.get_setting('app_name', '
|
| 47 |
|
| 48 |
@staticmethod
|
| 49 |
def get_app_logo():
|
|
|
|
| 43 |
@staticmethod
|
| 44 |
def get_app_name():
|
| 45 |
"""Get the application name"""
|
| 46 |
+
return AppSettings.get_setting('app_name', 'Apex Ores')
|
| 47 |
|
| 48 |
@staticmethod
|
| 49 |
def get_app_logo():
|
app/routes/payments.py
CHANGED
|
@@ -54,7 +54,7 @@ def buy_plan_lygos(plan_id):
|
|
| 54 |
|
| 55 |
payment_link = create_lygos_payment_link(
|
| 56 |
amount=plan.price,
|
| 57 |
-
shop_name=current_app.config.get('LYGOS_SHOP_NAME', '
|
| 58 |
message=message,
|
| 59 |
order_id=order_id
|
| 60 |
)
|
|
|
|
| 54 |
|
| 55 |
payment_link = create_lygos_payment_link(
|
| 56 |
amount=plan.price,
|
| 57 |
+
shop_name=current_app.config.get('LYGOS_SHOP_NAME', 'Apex Ores'),
|
| 58 |
message=message,
|
| 59 |
order_id=order_id
|
| 60 |
)
|
app/templates/admin/settings.html
CHANGED
|
@@ -39,10 +39,10 @@
|
|
| 39 |
id="app_name"
|
| 40 |
name="app_name"
|
| 41 |
value="{{ current_app_name }}"
|
| 42 |
-
placeholder="Ex:
|
| 43 |
class="w-full px-4 py-3 bg-gray-700 border border-gray-600 rounded-lg text-white placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-yellow-500 focus:border-yellow-500 transition-colors">
|
| 44 |
<p class="mt-2 text-xs text-gray-500">
|
| 45 |
-
Maximum 50 caractères. Laissez vide pour utiliser "
|
| 46 |
</p>
|
| 47 |
</div>
|
| 48 |
</div>
|
|
@@ -184,7 +184,7 @@
|
|
| 184 |
const previewName = document.getElementById('preview_name');
|
| 185 |
|
| 186 |
appNameInput.addEventListener('input', function() {
|
| 187 |
-
previewName.textContent = this.value || '
|
| 188 |
});
|
| 189 |
|
| 190 |
// Live preview for logo URL
|
|
|
|
| 39 |
id="app_name"
|
| 40 |
name="app_name"
|
| 41 |
value="{{ current_app_name }}"
|
| 42 |
+
placeholder="Ex: Apex Ores, MonApp, etc."
|
| 43 |
class="w-full px-4 py-3 bg-gray-700 border border-gray-600 rounded-lg text-white placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-yellow-500 focus:border-yellow-500 transition-colors">
|
| 44 |
<p class="mt-2 text-xs text-gray-500">
|
| 45 |
+
Maximum 50 caractères. Laissez vide pour utiliser "Apex Ores" par défaut.
|
| 46 |
</p>
|
| 47 |
</div>
|
| 48 |
</div>
|
|
|
|
| 184 |
const previewName = document.getElementById('preview_name');
|
| 185 |
|
| 186 |
appNameInput.addEventListener('input', function() {
|
| 187 |
+
previewName.textContent = this.value || 'Apex Ores';
|
| 188 |
});
|
| 189 |
|
| 190 |
// Live preview for logo URL
|
app/templates/auth/login.html
CHANGED
|
@@ -1,12 +1,12 @@
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
-
{% block title %}Connexion -
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<div class="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 bg-gray-900">
|
| 7 |
<div class="max-w-md w-full space-y-8">
|
| 8 |
<div>
|
| 9 |
-
<h1 class="text-center text-3xl font-bold text-yellow-500 font-display">
|
| 10 |
<h2 class="mt-6 text-center text-xl text-gray-300">Connectez-vous à votre compte</h2>
|
| 11 |
</div>
|
| 12 |
<form class="mt-8 space-y-6" method="POST">
|
|
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
+
{% block title %}Connexion - Apex Ores{% endblock %}
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<div class="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 bg-gray-900">
|
| 7 |
<div class="max-w-md w-full space-y-8">
|
| 8 |
<div>
|
| 9 |
+
<h1 class="text-center text-3xl font-bold text-yellow-500 font-display">Apex Ores</h1>
|
| 10 |
<h2 class="mt-6 text-center text-xl text-gray-300">Connectez-vous à votre compte</h2>
|
| 11 |
</div>
|
| 12 |
<form class="mt-8 space-y-6" method="POST">
|
app/templates/auth/register.html
CHANGED
|
@@ -1,12 +1,12 @@
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
-
{% block title %}Inscription -
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<div class="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 bg-gray-900">
|
| 7 |
<div class="max-w-md w-full space-y-8">
|
| 8 |
<div>
|
| 9 |
-
<h1 class="text-center text-3xl font-bold text-yellow-500 font-display">
|
| 10 |
<h2 class="mt-6 text-center text-xl text-gray-300">Créez votre compte</h2>
|
| 11 |
<p class="mt-2 text-center text-sm text-gray-400">
|
| 12 |
Bénéficiez d'un bonus de 1 000 FCFA à l'inscription !
|
|
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
+
{% block title %}Inscription - Apex OresClone{% endblock %}
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<div class="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 bg-gray-900">
|
| 7 |
<div class="max-w-md w-full space-y-8">
|
| 8 |
<div>
|
| 9 |
+
<h1 class="text-center text-3xl font-bold text-yellow-500 font-display">Apex OresClone</h1>
|
| 10 |
<h2 class="mt-6 text-center text-xl text-gray-300">Créez votre compte</h2>
|
| 11 |
<p class="mt-2 text-center text-sm text-gray-400">
|
| 12 |
Bénéficiez d'un bonus de 1 000 FCFA à l'inscription !
|
app/templates/base.html
CHANGED
|
@@ -139,7 +139,7 @@
|
|
| 139 |
>Espace Membre</span
|
| 140 |
>
|
| 141 |
<span class="text-xl font-bold text-white tracking-tight"
|
| 142 |
-
>
|
| 143 |
>
|
| 144 |
</div>
|
| 145 |
<a
|
|
|
|
| 139 |
>Espace Membre</span
|
| 140 |
>
|
| 141 |
<span class="text-xl font-bold text-white tracking-tight"
|
| 142 |
+
>Apex Ores<span class="text-accent">.</span></span
|
| 143 |
>
|
| 144 |
</div>
|
| 145 |
<a
|
app/templates/index.html
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
{% extends "base.html" %} {% block title %}
|
| 2 |
endblock %} {% block content %}
|
| 3 |
<section
|
| 4 |
class="relative min-h-screen flex items-center justify-center overflow-hidden"
|
|
|
|
| 1 |
+
{% extends "base.html" %} {% block title %}Apex Ores - Achetez en Métaux Précieux{%
|
| 2 |
endblock %} {% block content %}
|
| 3 |
<section
|
| 4 |
class="relative min-h-screen flex items-center justify-center overflow-hidden"
|
app/templates/legal/cgu.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
-
{% block title %}Conditions Générales d'Utilisation -
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<section class="min-h-screen py-20">
|
|
@@ -32,7 +32,7 @@
|
|
| 32 |
Acceptation des Conditions
|
| 33 |
</h2>
|
| 34 |
<p class="text-gray-300 leading-relaxed">
|
| 35 |
-
L'accès et l'utilisation de la plateforme
|
| 36 |
sans réserve des présentes Conditions Générales d'Utilisation (CGU).
|
| 37 |
Si vous n'acceptez pas ces termes, vous ne devez pas utiliser notre service.
|
| 38 |
</p>
|
|
@@ -45,7 +45,7 @@
|
|
| 45 |
Description du Service
|
| 46 |
</h2>
|
| 47 |
<p class="text-gray-300 leading-relaxed">
|
| 48 |
-
|
| 49 |
(or, argent, platine, diamant). Nous offrons des opportunités d'adoption
|
| 50 |
avec des rendements quotidiens garantis et un système de parrainage.
|
| 51 |
</p>
|
|
@@ -217,7 +217,7 @@
|
|
| 217 |
Propriété Intellectuelle
|
| 218 |
</h2>
|
| 219 |
<p class="text-gray-300 leading-relaxed">
|
| 220 |
-
Tous les contenus, marques, logos et éléments de la plateforme
|
| 221 |
sont la propriété exclusive de la société. Toute reproduction ou utilisation non autorisée
|
| 222 |
est strictement interdite.
|
| 223 |
</p>
|
|
@@ -230,7 +230,7 @@
|
|
| 230 |
Limitation de Responsabilité
|
| 231 |
</h2>
|
| 232 |
<p class="text-gray-300 leading-relaxed">
|
| 233 |
-
|
| 234 |
de l'utilisation de la plateforme, y compris mais sans s'y limiter les pertes d'adoption
|
| 235 |
dues aux fluctuations du marché des métaux précieux.
|
| 236 |
</p>
|
|
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
+
{% block title %}Conditions Générales d'Utilisation - Apex Ores{% endblock %}
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<section class="min-h-screen py-20">
|
|
|
|
| 32 |
Acceptation des Conditions
|
| 33 |
</h2>
|
| 34 |
<p class="text-gray-300 leading-relaxed">
|
| 35 |
+
L'accès et l'utilisation de la plateforme Apex Ores constituent l'acceptation
|
| 36 |
sans réserve des présentes Conditions Générales d'Utilisation (CGU).
|
| 37 |
Si vous n'acceptez pas ces termes, vous ne devez pas utiliser notre service.
|
| 38 |
</p>
|
|
|
|
| 45 |
Description du Service
|
| 46 |
</h2>
|
| 47 |
<p class="text-gray-300 leading-relaxed">
|
| 48 |
+
Apex Ores est une plateforme d'adoption en ligne spécialisée dans les métaux précieux
|
| 49 |
(or, argent, platine, diamant). Nous offrons des opportunités d'adoption
|
| 50 |
avec des rendements quotidiens garantis et un système de parrainage.
|
| 51 |
</p>
|
|
|
|
| 217 |
Propriété Intellectuelle
|
| 218 |
</h2>
|
| 219 |
<p class="text-gray-300 leading-relaxed">
|
| 220 |
+
Tous les contenus, marques, logos et éléments de la plateforme Apex Ores
|
| 221 |
sont la propriété exclusive de la société. Toute reproduction ou utilisation non autorisée
|
| 222 |
est strictement interdite.
|
| 223 |
</p>
|
|
|
|
| 230 |
Limitation de Responsabilité
|
| 231 |
</h2>
|
| 232 |
<p class="text-gray-300 leading-relaxed">
|
| 233 |
+
Apex Ores n'est pas responsable des pertes directes ou indirectes résultant
|
| 234 |
de l'utilisation de la plateforme, y compris mais sans s'y limiter les pertes d'adoption
|
| 235 |
dues aux fluctuations du marché des métaux précieux.
|
| 236 |
</p>
|
app/templates/legal/cookies.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
-
{% block title %}Politique de Cookies -
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<section class="min-h-screen py-20">
|
|
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
+
{% block title %}Politique de Cookies - Apex Ores{% endblock %}
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<section class="min-h-screen py-20">
|
app/templates/legal/mentions.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
-
{% block title %}Mentions Légales -
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<section class="min-h-screen py-20">
|
|
@@ -17,7 +17,7 @@
|
|
| 17 |
<span class="text-white">Légales</span>
|
| 18 |
</h1>
|
| 19 |
<p class="text-xl text-gray-300 max-w-3xl mx-auto">
|
| 20 |
-
Informations légales sur la société
|
| 21 |
</p>
|
| 22 |
</div>
|
| 23 |
|
|
@@ -26,7 +26,7 @@
|
|
| 26 |
<div class="space-y-4">
|
| 27 |
<h2 class="text-2xl font-bold text-white">Société</h2>
|
| 28 |
<div class="space-y-2 text-gray-300">
|
| 29 |
-
<p><strong>Nom :</strong>
|
| 30 |
<p><strong>Statut :</strong> Plateforme d'adoption en ligne</p>
|
| 31 |
<p><strong>Domaine d'activité :</strong> Adoption en métaux précieux</p>
|
| 32 |
</div>
|
|
@@ -93,7 +93,7 @@
|
|
| 93 |
<h2 class="text-2xl font-bold text-white">Droits d'Auteur</h2>
|
| 94 |
<p class="text-gray-300 leading-relaxed">
|
| 95 |
Tous les contenus, textes, images, logos et éléments présents sur la plateforme
|
| 96 |
-
|
| 97 |
Toute reproduction, distribution ou utilisation non autorisée est strictement interdite
|
| 98 |
et passible de poursuites judiciaires.
|
| 99 |
</p>
|
|
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
+
{% block title %}Mentions Légales - Apex Ores{% endblock %}
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<section class="min-h-screen py-20">
|
|
|
|
| 17 |
<span class="text-white">Légales</span>
|
| 18 |
</h1>
|
| 19 |
<p class="text-xl text-gray-300 max-w-3xl mx-auto">
|
| 20 |
+
Informations légales sur la société Apex Ores
|
| 21 |
</p>
|
| 22 |
</div>
|
| 23 |
|
|
|
|
| 26 |
<div class="space-y-4">
|
| 27 |
<h2 class="text-2xl font-bold text-white">Société</h2>
|
| 28 |
<div class="space-y-2 text-gray-300">
|
| 29 |
+
<p><strong>Nom :</strong> Apex Ores</p>
|
| 30 |
<p><strong>Statut :</strong> Plateforme d'adoption en ligne</p>
|
| 31 |
<p><strong>Domaine d'activité :</strong> Adoption en métaux précieux</p>
|
| 32 |
</div>
|
|
|
|
| 93 |
<h2 class="text-2xl font-bold text-white">Droits d'Auteur</h2>
|
| 94 |
<p class="text-gray-300 leading-relaxed">
|
| 95 |
Tous les contenus, textes, images, logos et éléments présents sur la plateforme
|
| 96 |
+
Apex Ores sont protégés par le droit d'auteur et la propriété intellectuelle.
|
| 97 |
Toute reproduction, distribution ou utilisation non autorisée est strictement interdite
|
| 98 |
et passible de poursuites judiciaires.
|
| 99 |
</p>
|
app/templates/legal/privacy.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
-
{% block title %}Politique de Confidentialité -
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<section class="min-h-screen py-20">
|
|
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
|
| 3 |
+
{% block title %}Politique de Confidentialité - Apex Ores{% endblock %}
|
| 4 |
|
| 5 |
{% block content %}
|
| 6 |
<section class="min-h-screen py-20">
|
c.py
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import sys
|
| 3 |
+
|
| 4 |
+
def remplacer_recursif():
|
| 5 |
+
# Dossier où se trouve le script
|
| 6 |
+
dossier_racine = os.getcwd()
|
| 7 |
+
nom_du_script = os.path.basename(__file__)
|
| 8 |
+
|
| 9 |
+
print(f"--- Remplacement Récursif (Dossiers et sous-dossiers) ---")
|
| 10 |
+
print(f"Racine : {dossier_racine}")
|
| 11 |
+
|
| 12 |
+
ancien_mot = input("Entrez le mot à remplacer : ")
|
| 13 |
+
nouveau_mot = input("Entrez le nouveau mot : ")
|
| 14 |
+
|
| 15 |
+
if not ancien_mot:
|
| 16 |
+
print("Erreur : Le mot à remplacer est vide.")
|
| 17 |
+
return
|
| 18 |
+
|
| 19 |
+
compteur_fichiers = 0
|
| 20 |
+
dossiers_ignores = {'.git', '.idea', '__pycache__', 'venv', 'node_modules'} # Liste de sécurité
|
| 21 |
+
|
| 22 |
+
# os.walk parcourt l'arborescence
|
| 23 |
+
# racine : le chemin du dossier actuel dans la boucle
|
| 24 |
+
# dossiers : la liste des sous-dossiers dans 'racine'
|
| 25 |
+
# fichiers : la liste des fichiers dans 'racine'
|
| 26 |
+
for racine, dossiers, fichiers in os.walk(dossier_racine):
|
| 27 |
+
|
| 28 |
+
# Optionnel : On filtre pour ne pas aller dans les dossiers systèmes/cachés
|
| 29 |
+
# On modifie la liste 'dossiers' en place pour empêcher os.walk d'y descendre
|
| 30 |
+
dossiers[:] = [d for d in dossiers if d not in dossiers_ignores]
|
| 31 |
+
|
| 32 |
+
for fichier in fichiers:
|
| 33 |
+
chemin_complet = os.path.join(racine, fichier)
|
| 34 |
+
|
| 35 |
+
# Ne pas modifier le script lui-même
|
| 36 |
+
if fichier == nom_du_script and racine == dossier_racine:
|
| 37 |
+
continue
|
| 38 |
+
|
| 39 |
+
try:
|
| 40 |
+
# 1. Lecture
|
| 41 |
+
with open(chemin_complet, 'r', encoding='utf-8') as f:
|
| 42 |
+
contenu = f.read()
|
| 43 |
+
|
| 44 |
+
# 2. Vérification et Remplacement
|
| 45 |
+
if ancien_mot in contenu:
|
| 46 |
+
nouveau_contenu = contenu.replace(ancien_mot, nouveau_mot)
|
| 47 |
+
|
| 48 |
+
# 3. Écriture
|
| 49 |
+
with open(chemin_complet, 'w', encoding='utf-8') as f:
|
| 50 |
+
f.write(nouveau_contenu)
|
| 51 |
+
|
| 52 |
+
print(f"[MODIFIÉ] {chemin_complet}")
|
| 53 |
+
compteur_fichiers += 1
|
| 54 |
+
|
| 55 |
+
except UnicodeDecodeError:
|
| 56 |
+
# On passe silencieusement les fichiers binaires (images, pdf, exe)
|
| 57 |
+
pass
|
| 58 |
+
except Exception as e:
|
| 59 |
+
print(f"[ERREUR] Sur {chemin_complet} : {e}")
|
| 60 |
+
|
| 61 |
+
print(f"\nTerminé ! {compteur_fichiers} fichier(s) modifiés au total.")
|
| 62 |
+
|
| 63 |
+
if __name__ == "__main__":
|
| 64 |
+
remplacer_recursif()
|
config/config.py
CHANGED
|
@@ -20,7 +20,7 @@ class Config:
|
|
| 20 |
)
|
| 21 |
LYGOS_CREATE_GATEWAY_URL = "https://api.lygosapp.com/v1/gateway"
|
| 22 |
LYGOS_GET_PAYIN_STATUS_URL = "https://api.lygosapp.com/v1/gateway/payin/"
|
| 23 |
-
LYGOS_SHOP_NAME = "
|
| 24 |
|
| 25 |
LYGOS_COUNTRIES = {
|
| 26 |
"+228": "Togo",
|
|
|
|
| 20 |
)
|
| 21 |
LYGOS_CREATE_GATEWAY_URL = "https://api.lygosapp.com/v1/gateway"
|
| 22 |
LYGOS_GET_PAYIN_STATUS_URL = "https://api.lygosapp.com/v1/gateway/payin/"
|
| 23 |
+
LYGOS_SHOP_NAME = "Apex OresClone"
|
| 24 |
|
| 25 |
LYGOS_COUNTRIES = {
|
| 26 |
"+228": "Togo",
|
scripts/init_settings.py
CHANGED
|
@@ -105,7 +105,7 @@ def init_database():
|
|
| 105 |
print("\n[4/4] Initializing default app settings...")
|
| 106 |
|
| 107 |
default_settings = [
|
| 108 |
-
('app_name', '
|
| 109 |
('app_logo', None, 'URL du logo de l\'application'),
|
| 110 |
]
|
| 111 |
|
|
|
|
| 105 |
print("\n[4/4] Initializing default app settings...")
|
| 106 |
|
| 107 |
default_settings = [
|
| 108 |
+
('app_name', 'Apex Ores', 'Nom de l\'application'),
|
| 109 |
('app_logo', None, 'URL du logo de l\'application'),
|
| 110 |
]
|
| 111 |
|
test_referral.py
CHANGED
|
@@ -117,7 +117,7 @@ def test_whatsapp_message():
|
|
| 117 |
|
| 118 |
test_code = "ABC123"
|
| 119 |
test_link = "http://example.com/auth/register?ref=ABC123"
|
| 120 |
-
app_name = "
|
| 121 |
|
| 122 |
message = (
|
| 123 |
f"🎁 Rejoins-moi sur {app_name} et commence à investir dans les métaux précieux !\n\n"
|
|
|
|
| 117 |
|
| 118 |
test_code = "ABC123"
|
| 119 |
test_link = "http://example.com/auth/register?ref=ABC123"
|
| 120 |
+
app_name = "Apex OresClone"
|
| 121 |
|
| 122 |
message = (
|
| 123 |
f"🎁 Rejoins-moi sur {app_name} et commence à investir dans les métaux précieux !\n\n"
|