diff --git a/V5.py b/V5.py index 3c32c5e..c26bf9e 100644 --- a/V5.py +++ b/V5.py @@ -4,4 +4,4 @@ from app.models import User, Post @app.shell_context_processor def make_shell_context(): - return {'db': db, 'User': User, 'Post': Post} + return {'db': db, 'User': User, 'Post': Post} diff --git a/app/forms.py b/app/forms.py index dfc523e..6486c06 100644 --- a/app/forms.py +++ b/app/forms.py @@ -5,25 +5,25 @@ from app.models import User class LoginForm(FlaskForm): - username = StringField('Pseudonyme :', validators=[DataRequired()]) - password = PasswordField('Mot de passe :', validators=[DataRequired()]) - remember_me = BooleanField('Se souvenir de moi :') - submit = SubmitField('Connexion') + username = StringField('Pseudonyme :', validators=[DataRequired()]) + password = PasswordField('Mot de passe :', validators=[DataRequired()]) + remember_me = BooleanField('Se souvenir de moi :') + submit = SubmitField('Connexion') class RegistrationForm(FlaskForm): - username = StringField('Pseudonyme :', validators=[DataRequired()]) - email = StringField('Adresse Email :', validators=[DataRequired(), Email()]) - password = PasswordField('Mot de passe :', validators=[DataRequired()]) - password2 = PasswordField('Répéter le mot de passe', validators=[DataRequired(), EqualTo('password')]) - submit = SubmitField('S\'enregistrer') + username = StringField('Pseudonyme :', validators=[DataRequired()]) + email = StringField('Adresse Email :', validators=[DataRequired(), Email()]) + password = PasswordField('Mot de passe :', validators=[DataRequired()]) + password2 = PasswordField('Répéter le mot de passe', validators=[DataRequired(), EqualTo('password')]) + submit = SubmitField('S\'enregistrer') - def validate_username(self, username): - user = User.query.filter_by(username=username.data).first() - if user is not None: - raise ValidationError('Pseudo indisponible.') + def validate_username(self, username): + user = User.query.filter_by(username=username.data).first() + if user is not None: + raise ValidationError('Pseudo indisponible.') - def validate_email(self, email): - user = User.query.filter_by(email=email.data).first() - if user is not None: - raise ValidationError('Adresse email déjà utilisé.') + def validate_email(self, email): + user = User.query.filter_by(email=email.data).first() + if user is not None: + raise ValidationError('Adresse email déjà utilisé.') diff --git a/app/models.py b/app/models.py index 5635627..29d565b 100644 --- a/app/models.py +++ b/app/models.py @@ -5,32 +5,32 @@ from werkzeug.security import generate_password_hash, check_password_hash class User(UserMixin, db.Model): - id = db.Column(db.Integer, primary_key=True) - username = db.Column(db.String(64), index=True, unique=True) - email = db.Column(db.String(120), index=True, unique=True) - password_hash = db.Column(db.String(128)) - posts = db.relationship('Post', backref='author', lazy='dynamic') + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(64), index=True, unique=True) + email = db.Column(db.String(120), index=True, unique=True) + password_hash = db.Column(db.String(128)) + posts = db.relationship('Post', backref='author', lazy='dynamic') - def __repr__(self): - return ''.format(self.username) + def __repr__(self): + return ''.format(self.username) - def set_password(self, password): - self.password_hash = generate_password_hash(password) + def set_password(self, password): + self.password_hash = generate_password_hash(password) - def check_password(self, password): - return check_password_hash(self.password_hash, password) + def check_password(self, password): + return check_password_hash(self.password_hash, password) @login.user_loader def load_user(id): - return User.query.get(int(id)) + return User.query.get(int(id)) class Post(db.Model): - id = db.Column(db.Integer, primary_key=True) - body = db.Column(db.String(140)) - timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) - user_id = db.Column(db.Integer, db.ForeignKey('user.id')) + id = db.Column(db.Integer, primary_key=True) + body = db.Column(db.String(140)) + timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) + user_id = db.Column(db.Integer, db.ForeignKey('user.id')) - def __repr__(self): - return ''.format(self.body) + def __repr__(self): + return ''.format(self.body) diff --git a/app/routes.py b/app/routes.py index 643a0c4..e8fd9b8 100644 --- a/app/routes.py +++ b/app/routes.py @@ -9,58 +9,58 @@ from app.models import User @app.route('/', methods=['GET', 'POST']) def index(): - form = LoginForm() - if form.validate_on_submit(): - user = User.query.filter_by(username=form.username.data).first() - if user is None or not user.check_password(form.password.data): - flash('pseudo ou mot de passe invalide') - return redirect(url_for('index')) - login_user(user, remember=form.remember_me.data) + form = LoginForm() + if form.validate_on_submit(): + user = User.query.filter_by(username=form.username.data).first() + if user is None or not user.check_password(form.password.data): + flash('pseudo ou mot de passe invalide') + return redirect(url_for('index')) + login_user(user, remember=form.remember_me.data) - return render_template('index.html.j2', form=form) + return render_template('index.html.j2', form=form) @app.route('/logout/') def logout(): - logout_user() - return redirect(url_for('index')) + logout_user() + return redirect(url_for('index')) @app.route('/register', methods=['GET', 'POST']) def register(): - if current_user.is_authenticated: - return redirect(url_for('index')) - form = LoginForm() - form2 = RegistrationForm() - if form.validate_on_submit(): - user = User.query.filter_by(username=form.username.data).first() - if user is None or not user.check_password(form.password.data): - flash('pseudo ou mot de passe invalide') - return redirect(url_for('index')) - login_user(user, remember=form.remember_me.data) - if form2.validate_on_submit(): - user = User(username=form2.username.data, email=form2.email.data) - user.set_password(form2.password.data) - db.session.add(user) - db.session.commit() - flash('Congratulations, you are now a registered user!') - return redirect(url_for('validation')) - return render_template('register.html.j2', title='Register', form=form, - form2=form2) + if current_user.is_authenticated: + return redirect(url_for('index')) + form = LoginForm() + form2 = RegistrationForm() + if form.validate_on_submit(): + user = User.query.filter_by(username=form.username.data).first() + if user is None or not user.check_password(form.password.data): + flash('pseudo ou mot de passe invalide') + return redirect(url_for('index')) + login_user(user, remember=form.remember_me.data) + if form2.validate_on_submit(): + user = User(username=form2.username.data, email=form2.email.data) + user.set_password(form2.password.data) + db.session.add(user) + db.session.commit() + flash('Congratulations, you are now a registered user!') + return redirect(url_for('validation')) + return render_template('register.html.j2', title='Register', form=form, + form2=form2) @app.route('/register/validation/') def validation(): - if current_user.is_authenticated: - return redirect(url_for('index')) - form = LoginForm() - if form.validate_on_submit(): - user = User.query.filter_by(username=form.username.data).first() - if user is None or not user.check_password(form.password.data): - flash('pseudo ou mot de passe invalide') - return redirect(url_for('index')) - login_user(user, remember=form.remember_me.data) - return render_template('validation.html.j2', form=form) + if current_user.is_authenticated: + return redirect(url_for('index')) + form = LoginForm() + if form.validate_on_submit(): + user = User.query.filter_by(username=form.username.data).first() + if user is None or not user.check_password(form.password.data): + flash('pseudo ou mot de passe invalide') + return redirect(url_for('index')) + login_user(user, remember=form.remember_me.data) + return render_template('validation.html.j2', form=form) @app.errorhandler(400) @@ -72,32 +72,32 @@ def validation(): @app.errorhandler(501) @app.errorhandler(503) def ma_page_erreur(error): - form = LoginForm() - if form.validate_on_submit(): - user = User.query.filter_by(username=form.username.data).first() - if user is None or not user.check_password(form.password.data): - flash('pseudo ou mot de passe invalide') - return redirect(url_for('index')) - login_user(user, remember=form.remember_me.data) - return render_template("base/errors.html.j2", error_code=error.code, - form=form), error.code + form = LoginForm() + if form.validate_on_submit(): + user = User.query.filter_by(username=form.username.data).first() + if user is None or not user.check_password(form.password.data): + flash('pseudo ou mot de passe invalide') + return redirect(url_for('index')) + login_user(user, remember=form.remember_me.data) + return render_template("base/errors.html.j2", error_code=error.code, + form=form), error.code @app.route('/error/') def errors(error): - form = LoginForm() - if form.validate_on_submit(): - user = User.query.filter_by(username=form.username.data).first() - if user is None or not user.check_password(form.password.data): - flash('pseudo ou mot de passe invalide') - return redirect(url_for('index')) - login_user(user, remember=form.remember_me.data) - if(error == 400 or error == 401 or error == 403 or error == 404 or - error == 418 or error == 500 or error == 501 or error == 503): - error_code = error - else: - error_code = 404 - error = 404 + form = LoginForm() + if form.validate_on_submit(): + user = User.query.filter_by(username=form.username.data).first() + if user is None or not user.check_password(form.password.data): + flash('pseudo ou mot de passe invalide') + return redirect(url_for('index')) + login_user(user, remember=form.remember_me.data) + if(error == 400 or error == 401 or error == 403 or error == 404 or + error == 418 or error == 500 or error == 501 or error == 503): + error_code = error + else: + error_code = 404 + error = 404 - return render_template("base/errors.html.j2", error_code=error_code, - form=form), error + return render_template("base/errors.html.j2", error_code=error_code, + form=form), error diff --git a/app/templates/base/alerts.html.j2 b/app/templates/base/alerts.html.j2 index 34367a6..51d3b87 100644 --- a/app/templates/base/alerts.html.j2 +++ b/app/templates/base/alerts.html.j2 @@ -2,13 +2,13 @@ {% if messages %} {% for message in messages %}
- - - - - {{ message }} - - + + + + + {{ message }} + +
{% endfor %} {% endif %} diff --git a/app/templates/base/base.html.j2 b/app/templates/base/base.html.j2 index 7f36daa..2650ee8 100644 --- a/app/templates/base/base.html.j2 +++ b/app/templates/base/base.html.j2 @@ -1,16 +1,16 @@ - {% include "base/head.html.j2" %} + {% include "base/head.html.j2" %} - {% include "base/navbar.html.j2" %} + {% include "base/navbar.html.j2" %} - {% block container %} - {% endblock container %} + {% block container %} + {% endblock container %} - {% include "base/footer.html.j2" %} + {% include "base/footer.html.j2" %} - {% include "base/alerts.html.j2" %} + {% include "base/alerts.html.j2" %} - {% include "base/scripts.html.j2" %} + {% include "base/scripts.html.j2" %} diff --git a/app/templates/base/container.html.j2 b/app/templates/base/container.html.j2 index 0977439..9cfa4f7 100644 --- a/app/templates/base/container.html.j2 +++ b/app/templates/base/container.html.j2 @@ -2,9 +2,9 @@ {% block container %}
- {% include "base/header.html.j2" %} + {% include "base/header.html.j2" %} - {% block content %} - {% endblock content %} + {% block content %} + {% endblock content %}
{% endblock container %} diff --git a/app/templates/base/errors.html.j2 b/app/templates/base/errors.html.j2 index f163482..24ce8ed 100644 --- a/app/templates/base/errors.html.j2 +++ b/app/templates/base/errors.html.j2 @@ -2,19 +2,19 @@ {% block content %}
-

- Erreur {{ error_code }} -
- {% if error_code == 400 %} - Bad Request : Votre requête semble mal formée. - {% elif error_code == 401 %} - Unauthorized : Une authentification est nécessaire pour accéder à la ressource. -
- Veuillez vous connecter à l'aide du panneau sur la gauche. - {% elif error_code == 403 %} - Forbidden : Cette page vous est interdite. Désolé, si vous pensez que c'est une erreur ou que vous voulez avoir accès à cette page malgré tout veuillez contacter un administrateur. - {% elif error_code == 404 %} - Not Found : La page n'existe pas ou plus, si vous avez rentré l'url à la main vérifiez de ne pas vous être trompé. +

+ Erreur {{ error_code }} +
+ {% if error_code == 400 %} + Bad Request : Votre requête semble mal formée. + {% elif error_code == 401 %} + Unauthorized : Une authentification est nécessaire pour accéder à la ressource. +
+ Veuillez vous connecter à l'aide du panneau sur la gauche. + {% elif error_code == 403 %} + Forbidden : Cette page vous est interdite. Désolé, si vous pensez que c'est une erreur ou que vous voulez avoir accès à cette page malgré tout veuillez contacter un administrateur. + {% elif error_code == 404 %} + Not Found : La page n'existe pas ou plus, si vous avez rentré l'url à la main vérifiez de ne pas vous être trompé.

      /|   /‾‾‾‾‾‾‾\        /|     |\         |   /‾‾‾‾‾\   –––––––––
      / |  /         \      / |     | \        |  /       \      |
     /  |  |         |     /  |     |  \       | /         \     |
@@ -36,17 +36,17 @@
 |           \         / \         / |       \  | |         /
 |            \       /   \       /  |        \ | |        /
 |             \_____/     \_____/   |         \| |_______/
- {% elif error_code == 418 %} - Oups! Il semblerai que vous m'ayez demandé du café mais je suis une théière. -
- Vous voulez une tasse de thé à la place de votre café? - {% elif error_code == 500 %} - Internal Server Error : Erreur interne du serveur. Rassurez vous vous n'êtes pas en cause c'est sans doute un développeur qui à fait l'imbécile. Si cette page s'affiche trop souvent essayez de contacter un administrateur par mail à devs@planet-casio.com. - {% elif error_code == 501 %} - Not Implemented : La fonctionnalité réclamée n'est pas supportée par le serveur. Désolé si cette fonctionnalité vous tient à cœur vous pouvez la proposer sur le forum. - {% elif error_code == 503 %} - Service Unavailable : Service temporairement indisponible ou en maintenance. Patientez! - {% endif %} -

+ {% elif error_code == 418 %} + Oups! Il semblerai que vous m'ayez demandé du café mais je suis une théière. +
+ Vous voulez une tasse de thé à la place de votre café? + {% elif error_code == 500 %} + Internal Server Error : Erreur interne du serveur. Rassurez vous vous n'êtes pas en cause c'est sans doute un développeur qui à fait l'imbécile. Si cette page s'affiche trop souvent essayez de contacter un administrateur par mail à devs@planet-casio.com. + {% elif error_code == 501 %} + Not Implemented : La fonctionnalité réclamée n'est pas supportée par le serveur. Désolé si cette fonctionnalité vous tient à cœur vous pouvez la proposer sur le forum. + {% elif error_code == 503 %} + Service Unavailable : Service temporairement indisponible ou en maintenance. Patientez! + {% endif %} +

{% endblock %} diff --git a/app/templates/base/footer.html.j2 b/app/templates/base/footer.html.j2 index 51db878..c4f1f15 100644 --- a/app/templates/base/footer.html.j2 +++ b/app/templates/base/footer.html.j2 @@ -1,8 +1,8 @@
-

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas - affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite.

-

Les fichiers, programmes et autres publications présents sur Planète Casio restent la - propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des - copyrights.

-

CASIO est une marque déposée par CASIO Computer Co., Ltd.

+

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas + affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite.

+

Les fichiers, programmes et autres publications présents sur Planète Casio restent la + propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des + copyrights.

+

CASIO est une marque déposée par CASIO Computer Co., Ltd.

diff --git a/app/templates/base/head.html.j2 b/app/templates/base/head.html.j2 index ceb3b37..9be58bc 100644 --- a/app/templates/base/head.html.j2 +++ b/app/templates/base/head.html.j2 @@ -1,12 +1,12 @@ - Planète Casio + Planète Casio - - + + - - - - - + + + + + diff --git a/app/templates/base/header.html.j2 b/app/templates/base/header.html.j2 index 5d7dd1c..2d4558e 100644 --- a/app/templates/base/header.html.j2 +++ b/app/templates/base/header.html.j2 @@ -1,15 +1,15 @@
-
- - - - - - -
+
+ + + + + + +
- +
diff --git a/app/templates/base/navbar.html.j2 b/app/templates/base/navbar.html.j2 index cacb820..967f2b9 100644 --- a/app/templates/base/navbar.html.j2 +++ b/app/templates/base/navbar.html.j2 @@ -1,90 +1,90 @@ diff --git a/app/templates/base/navbar/account.html.j2 b/app/templates/base/navbar/account.html.j2 index 75b12a5..7794e84 100644 --- a/app/templates/base/navbar/account.html.j2 +++ b/app/templates/base/navbar/account.html.j2 @@ -1,65 +1,65 @@ {% if current_user.is_authenticated %} {% else %}
-

- Invité -

- -
- Mot de passe oublié ? - Inscription +

+ Invité +

+ +
+ Mot de passe oublié ? + Inscription
{% endif %} diff --git a/app/templates/base/navbar/forum.html.j2 b/app/templates/base/navbar/forum.html.j2 index aa2aef9..abbf80a 100644 --- a/app/templates/base/navbar/forum.html.j2 +++ b/app/templates/base/navbar/forum.html.j2 @@ -1,25 +1,25 @@ diff --git a/app/templates/base/navbar/news.html.j2 b/app/templates/base/navbar/news.html.j2 index 7337771..b81a7cc 100644 --- a/app/templates/base/navbar/news.html.j2 +++ b/app/templates/base/navbar/news.html.j2 @@ -1,23 +1,23 @@ diff --git a/app/templates/base/navbar/programs.html.j2 b/app/templates/base/navbar/programs.html.j2 index d6b1d02..8919553 100644 --- a/app/templates/base/navbar/programs.html.j2 +++ b/app/templates/base/navbar/programs.html.j2 @@ -1,60 +1,60 @@ diff --git a/app/templates/base/navbar/sprites.html.j2 b/app/templates/base/navbar/sprites.html.j2 index a471ffc..5194573 100644 --- a/app/templates/base/navbar/sprites.html.j2 +++ b/app/templates/base/navbar/sprites.html.j2 @@ -1,13 +1,13 @@
-

- - - - Sprites -

- Personnages - Environnement - Objets - Interfaces - Générateur +

+ + + + Sprites +

+ Personnages + Environnement + Objets + Interfaces + Générateur
diff --git a/app/templates/base/navbar/tools.html.j2 b/app/templates/base/navbar/tools.html.j2 index c07d2b5..dc1c4f4 100644 --- a/app/templates/base/navbar/tools.html.j2 +++ b/app/templates/base/navbar/tools.html.j2 @@ -1,27 +1,27 @@ diff --git a/app/templates/base/navbar/tutorials.html.j2 b/app/templates/base/navbar/tutorials.html.j2 index 4ae2180..8b09976 100644 --- a/app/templates/base/navbar/tutorials.html.j2 +++ b/app/templates/base/navbar/tutorials.html.j2 @@ -1,13 +1,13 @@
-

- - - - Tutoriels -

- Basic Casio - C/C++ Casio - Arduino -
- Foire aux questions (FAQ) +

+ + + + Tutoriels +

+ Basic Casio + C/C++ Casio + Arduino +
+ Foire aux questions (FAQ)
diff --git a/app/templates/index.html.j2 b/app/templates/index.html.j2 index ea29d8c..0a99b9e 100644 --- a/app/templates/index.html.j2 +++ b/app/templates/index.html.j2 @@ -2,8 +2,8 @@ {% block content %}
-
-

du contenu....

-
+
+

du contenu....

+
{% endblock %} diff --git a/app/templates/login.html.j2 b/app/templates/login.html.j2 index 86eb1fe..c0d5405 100644 --- a/app/templates/login.html.j2 +++ b/app/templates/login.html.j2 @@ -3,23 +3,23 @@ {% block content %}

Sign In

- {{ form.hidden_tag() }} -

- {{ form.username.label }}
- {{ form.username(size=32) }}
- {% for error in form.username.errors %} - [{{ error }}] - {% endfor %} -

-

- {{ form.password.label }}
- {{ form.password(size=32) }}
- {% for error in form.password.errors %} - [{{ error }}] - {% endfor %} -

-

{{ form.remember_me() }} {{ form.remember_me.label }}

-

{{ form.submit() }}

+ {{ form.hidden_tag() }} +

+ {{ form.username.label }}
+ {{ form.username(size=32) }}
+ {% for error in form.username.errors %} + [{{ error }}] + {% endfor %} +

+

+ {{ form.password.label }}
+ {{ form.password(size=32) }}
+ {% for error in form.password.errors %} + [{{ error }}] + {% endfor %} +

+

{{ form.remember_me() }} {{ form.remember_me.label }}

+

{{ form.submit() }}

New User? Click to Register!

{% endblock %} diff --git a/app/templates/register.html.j2 b/app/templates/register.html.j2 index c5f7fc6..ab20a74 100644 --- a/app/templates/register.html.j2 +++ b/app/templates/register.html.j2 @@ -3,39 +3,39 @@ {% block content %}
-

Inscription :

+

Inscription :

-
- {{ form2.hidden_tag() }} -

- {{ form2.username.label }}
- {{ form2.username(size=32) }}
- {% for error in form2.username.errors %} - [{{ error }}] - {% endfor %} -

-

- {{ form2.email.label }}
- {{ form2.email(size=64) }}
- {% for error in form2.email.errors %} - [{{ error }}] - {% endfor %} -

-

- {{ form2.password.label }}
- {{ form2.password(size=32) }}
- {% for error in form2.password.errors %} - [{{ error }}] - {% endfor %} -

-

- {{ form2.password2.label }}
- {{ form2.password2(size=32) }}
- {% for error in form2.password2.errors %} - [{{ error }}] - {% endfor %} -

-

{{ form2.submit() }}

-
+
+ {{ form2.hidden_tag() }} +

+ {{ form2.username.label }}
+ {{ form2.username(size=32) }}
+ {% for error in form2.username.errors %} + [{{ error }}] + {% endfor %} +

+

+ {{ form2.email.label }}
+ {{ form2.email(size=64) }}
+ {% for error in form2.email.errors %} + [{{ error }}] + {% endfor %} +

+

+ {{ form2.password.label }}
+ {{ form2.password(size=32) }}
+ {% for error in form2.password.errors %} + [{{ error }}] + {% endfor %} +

+

+ {{ form2.password2.label }}
+ {{ form2.password2(size=32) }}
+ {% for error in form2.password2.errors %} + [{{ error }}] + {% endfor %} +

+

{{ form2.submit() }}

+
{% endblock %} diff --git a/app/templates/validation.html.j2 b/app/templates/validation.html.j2 index 7eb77d6..552266f 100644 --- a/app/templates/validation.html.j2 +++ b/app/templates/validation.html.j2 @@ -4,8 +4,8 @@
-

ici il y aura la page qui demande de checker les mails pour valider


- Retour à la page d'acceuil +

ici il y aura la page qui demande de checker les mails pour valider


+ Retour à la page d'acceuil
{% endblock content %} diff --git a/config.py b/config.py index 7b3ee64..b8f5717 100644 --- a/config.py +++ b/config.py @@ -3,7 +3,7 @@ basedir = os.path.abspath(os.path.dirname(__file__)) class Config(object): - SECRET_KEY = os.environ.get('SECRET_KEY') or 'a-random-secret-key' - SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \ - 'sqlite:///' + os.path.join(basedir, 'app.db') - SQLALCHEMY_TRACK_MODIFICATIONS = False + SECRET_KEY = os.environ.get('SECRET_KEY') or 'a-random-secret-key' + SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \ + 'sqlite:///' + os.path.join(basedir, 'app.db') + SQLALCHEMY_TRACK_MODIFICATIONS = False