From ff941e8515d331e5fc9db0bc52060db8e2421d5d Mon Sep 17 00:00:00 2001 From: Enguerran POULAIN Date: Thu, 1 Oct 2015 10:12:19 +0200 Subject: [PATCH 001/220] Added Instructions --- README.md | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 84 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 057766eb..2aa95bfe 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,87 @@ -lpdw2.0 -======= +Site de la LP-DW +================ -Refonte du site de la Licence Professionelle 2.0 +Le site de la LP-DW présente la formation “Licence Professionelle Developpeur Web”, il permet également de pouvoir candidater, de s’informer et de se tenir au courant des différentes actualités. +> **Changelog** + +> **Current** : projet 0, en dev, changelog à venir + +> **[2.0](https://github.com/lpdw/lpdw2.0/releases/tag/v2.0)** : workflow +> **1.0** : website + + +---------- + + +###Installation +L’installation de MySQL et HomeBrew sur Mac est indispensable. + +**1)** Il faut préalablement **[forker](https://help.github.com/articles/fork-a-repo/#fork-an-example-repository) le dépôt sur ton compte**. + +**2) Cloner ton dépôt** préalablement forké : + + git clone https://github.com/TON_PSEUDO/lpdw2.0.git + +**3) Ajouter un Remote “upstream”** afin de pouvoir synchroniser l’application avec le dépôt central : + + git remote add upstream https://github.com/lpdw/lpdw2.0 + +**4) Installer toutes les dépendances** : + + bundle install + +**5) Faire la migration** de la base de données : + + # Démarrer MySQL + mysql.server start + + # Créer la base de données et faire les migrations : + rake db:create db:migrate + + #Peupler la base de données avec des exemples (fichier db/seeds.rb) + rake db:seed + + +---------- + + +###Démarrage de l’application + # Si le service MySql n'est pas démarré + mysql.server start + + # Lancer le serveur + rails server +###Mettre à jour mon application + + # Se mettre sur la branche development + git checkout development + + # Synchronisation du code depuis le dépôt central + git fetch upstream + + # Rebase des commits + git rebase upstream/development + + +###Tu as découvert un bug ? + +**Tu as découvert un bug sur le site, dans le code ou une erreur dans la documentation ?** +Tu peux nous aider en [soumettant une Issue](https://github.com/lpdw/lpdw2.0/issues) sur le dépôt avec le tag “bug”. Ou encore mieux, tu peux soumettre une Pull request avec un correctif. + +**Tu veux une fonctionnalité et tu sais pas (encore) coder ?** +Tu peux proposer une nouvelle fonctionnalité en ajoutant une Issue sur le dépôt avec le tag “feature”. Et comme ton idée est super géniale, un développeur va vite s'empresser de la développer. + +**Tu veux contribuer ?** +Tout le monde sans exception doit suivre ce processus du fichier [CONTRIBUTION.md](https://github.com/lpdw/lpdw2.0/blob/development/CONTRIBUTION.md). Les excuses du genre : “Je fais partie de la promo X” ne sont pas valables. + + +---------- + + +Administrateurs (2015/2016) + +Yassin AGHANI [@aghaniyassin](https://github.com/aghaniyassin) + +Enguerran POULAIN [@theblackhole](https://github.com/theblackhole) -======= -Version 1.0 : website -Version 2.0 : workflow \ No newline at end of file From 2707e271173a12fe0395fbd59b668310feda4c19 Mon Sep 17 00:00:00 2001 From: Enguerran POULAIN Date: Thu, 1 Oct 2015 10:22:13 +0200 Subject: [PATCH 002/220] Added Contribution instructions and rules --- CONTRIBUTION.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 CONTRIBUTION.md diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md new file mode 100644 index 00000000..e7d0e234 --- /dev/null +++ b/CONTRIBUTION.md @@ -0,0 +1,33 @@ +###Tu veux contribuer ? +Tout le monde sans exception doit suivre ce processus de ce présent fichier. Les excuses du genre : “Je fais partie de la promo X” ne sont pas valables. + +Pour cela il te faut d’abord avoir [installé l’application](https://github.com/lpdw/lpdw2.0/blob/development/README.md). + +Avant de coder une nouvelle fonctionnalité de la mort qui tue, il y a quelques règles à suivre : + + - Avoir forké l’application et travailler directement dessus. + - Toujours travailler sur la branche “development”. + - Respecter les principes du + [MVC](https://fr.wikipedia.org/wiki/Mod%C3%A8le-vue-contr%C3%B4leur), [DRY](https://fr.wikipedia.org/wiki/Ne_vous_r%C3%A9p%C3%A9tez_pas), CoC et [REST](http://blog.nicolashachet.com/niveaux/confirme/larchitecture-rest-expliquee-en-5-regles/) au maximum. + - Utiliser des noms de commit suffisamment descriptifs mais courts pour que les administrateurs puissent comprendre directement la fonction du Commit. + +Une fois la fonctionnalité développée, commitée (avec un nom suffisant descriptif) et pushé sur l’application forkée, il te suffit de proposer une [Pull request](https://github.com/lpdw/lpdw2.0/pulls) et c’est expliqué juste après. + +**Tu veux soumettre Pull request ?** + +Si tu en es arrivé là, c’est que tu as déjà développé une fonctionnalité et que tu souhaites l’intégrer au dépôt central. Si tu n’as jamais fais de Pull request, c’est comme proposer d’ajouter un commit à un autre dépôt. +Pour cela, il y a un guide écrit par Github qui explique très simplement la procédure. +**La destination de la Pull request doit être la branche “development”.** + +Maintenant il suffit d’attendre qu’un administrateur vérifie ta Pull request, il peut y avoir 3 possibilités : + +**Accepté :** Votre fonctionnalité est parfaitement intègre et correspond au projet. Elle est directement incorporée à l’application, bravo ! +**A revoir:** La fonctionnalité correspond au projet mais n’est pas correctement intégrée. Dommage ! Mais quelques conseils vous seront donnés afin d’améliorer votre code pour qu’il s'intègre parfaitement à l’application. +**Refusé :** La fonctionnalité ne correspond pas au projet. + +---------- + + +Administrateurs (2015/2016) +Yassin AGHANI [@aghaniyassin](https://github.com/aghaniyassin) +Enguerran POULAIN [@theblackhole](https://github.com/theblackhole) From 38aa391f606c393936ce568279e6f1aad6bab776 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laouiti=20Elias=20C=C3=A9dric?= Date: Thu, 1 Oct 2015 17:21:47 +0200 Subject: [PATCH 003/220] Add migrate db file for project --- db/migrate/20151001151850_site_v2.rb | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 db/migrate/20151001151850_site_v2.rb diff --git a/db/migrate/20151001151850_site_v2.rb b/db/migrate/20151001151850_site_v2.rb new file mode 100644 index 00000000..0d6b1b59 --- /dev/null +++ b/db/migrate/20151001151850_site_v2.rb @@ -0,0 +1,28 @@ +class SiteV2 < ActiveRecord::Migration + def change + create_table :users_infos do |t| + t.integer :user_id + t.string :github, :limit => 255 + t.integer :average_salary + t.string :current_job_title, :limit => 255 + t.text :current_job_desc, :limit => 4294967295 + t.string :lp_job_title, :limit => 255 + t.text :lp_job_desc, :limit => 4294967295 + t.string :cv, :limit => 255 + t.string :googleplus, :limit => 255 + t.string :facebook, :limit => 255 + t.string :viadeo, :limit => 255 + end + + create_table :average_salary do |t| + t.string :value, :limit => 255 + end + + add_index :average_salary, :id, :unique => true + add_index :users_infos, :id, :unique => true + + add_foreign_key :users_infos, :users, :column => 'user_id', dependent: :delete + add_foreign_key :users_infos, :average_salary, :column => 'average_salary', dependent: :delete + + end +end From db91170076427dddca06dc636b46569b9015f22a Mon Sep 17 00:00:00 2001 From: "Hema.Lambert" Date: Thu, 1 Oct 2015 17:51:18 +0200 Subject: [PATCH 004/220] new Student controller --- Gemfile.lock | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Gemfile.lock b/Gemfile.lock index 15631f2a..b766e9ec 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -213,3 +213,6 @@ DEPENDENCIES turbolinks uglifier (>= 1.3.0) yaml_db + +BUNDLED WITH + 1.10.6 From a297afdc70704b1595664256f05c53c5cef9c589 Mon Sep 17 00:00:00 2001 From: "Hema.Lambert" Date: Thu, 1 Oct 2015 17:53:02 +0200 Subject: [PATCH 005/220] new Student controller --- app/controllers/student_controller.rb | 9 +++++++++ app/views/students/show.html.erb | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 app/controllers/student_controller.rb create mode 100644 app/views/students/show.html.erb diff --git a/app/controllers/student_controller.rb b/app/controllers/student_controller.rb new file mode 100644 index 00000000..183f4dec --- /dev/null +++ b/app/controllers/student_controller.rb @@ -0,0 +1,9 @@ +class StudentController < ApplicationController + + def new + @actuality = Actuality.find(params[:id]) + end + def edit(id) + @actuality = Actuality.find(params[:id]) + end +end diff --git a/app/views/students/show.html.erb b/app/views/students/show.html.erb new file mode 100644 index 00000000..39bb1ba1 --- /dev/null +++ b/app/views/students/show.html.erb @@ -0,0 +1,21 @@ +
+
+
+
+
+
+ <%= link_to({ controller: "pages", action: "news"},:class=>'more-article') do %> + Revenir à la liste des articles + <% end %> +
+

<%= @actuality.title %>

+

<%= (@actuality.created_at).strftime("%d/%m/%Y") %>

+
+
+ <%= @actuality.content.html_safe %> +
+
+
+
+
+
\ No newline at end of file From 5bca6e63186f78e8b1d324e6c8016814fe3ff30b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laouiti=20Elias=20C=C3=A9dric?= Date: Thu, 1 Oct 2015 17:56:44 +0200 Subject: [PATCH 006/220] Fix commit fail Gemfile.lock --- Gemfile.lock | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b766e9ec..ad5fcf75 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -212,7 +212,4 @@ DEPENDENCIES tinymce-rails-langs turbolinks uglifier (>= 1.3.0) - yaml_db - -BUNDLED WITH - 1.10.6 + yaml_db \ No newline at end of file From 07d309c487c55ea92dfab8417c54413b12c648da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laouiti=20Elias=20C=C3=A9dric?= Date: Thu, 1 Oct 2015 18:07:51 +0200 Subject: [PATCH 007/220] Test --- app/models/test | 1 + 1 file changed, 1 insertion(+) create mode 100644 app/models/test diff --git a/app/models/test b/app/models/test new file mode 100644 index 00000000..6f768df2 --- /dev/null +++ b/app/models/test @@ -0,0 +1 @@ +eeesed \ No newline at end of file From 764fff08a2651e8ca9e7bf2aaee25c92ea3deab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laouiti=20Elias=20C=C3=A9dric?= Date: Fri, 2 Oct 2015 09:53:26 +0200 Subject: [PATCH 008/220] Start of student controller + student model and view --- app/controllers/students_controller.rb | 6 ++++++ app/models/student.rb | 3 +++ app/views/students/show.html.erb | 24 +++--------------------- config/routes.rb | 2 +- 4 files changed, 13 insertions(+), 22 deletions(-) create mode 100644 app/controllers/students_controller.rb create mode 100644 app/models/student.rb diff --git a/app/controllers/students_controller.rb b/app/controllers/students_controller.rb new file mode 100644 index 00000000..24072e37 --- /dev/null +++ b/app/controllers/students_controller.rb @@ -0,0 +1,6 @@ +class StudentsController < ApplicationController + def show + @title_admin = "Utilisateurs" + @user = User.where("role='applicant'") + end +end diff --git a/app/models/student.rb b/app/models/student.rb new file mode 100644 index 00000000..8e6c12fd --- /dev/null +++ b/app/models/student.rb @@ -0,0 +1,3 @@ +class Student < ActiveRecord::Base + self.table_name = "users_infos" +end \ No newline at end of file diff --git a/app/views/students/show.html.erb b/app/views/students/show.html.erb index 39bb1ba1..f111a5d6 100644 --- a/app/views/students/show.html.erb +++ b/app/views/students/show.html.erb @@ -1,21 +1,3 @@ -
-
-
-
-
-
- <%= link_to({ controller: "pages", action: "news"},:class=>'more-article') do %> - Revenir à la liste des articles - <% end %> -
-

<%= @actuality.title %>

-

<%= (@actuality.created_at).strftime("%d/%m/%Y") %>

-
-
- <%= @actuality.content.html_safe %> -
-
-
-
-
-
\ No newline at end of file +STUDENTS LIST HERE +<%= debug @user %> + diff --git a/config/routes.rb b/config/routes.rb index c075da45..c0a282c7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -90,5 +90,5 @@ patch '/postuler/:assurance', :to => 'applicant#update_apply', :as => 'update_apply' get '/mentions', :to => 'pages#mentions' get '/live', :to => 'pages#live' - + get '/studentsbook', :to => 'students#show' end From d479249fe2453ed06b47a8c79847c97786798e28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laouiti=20Elias=20C=C3=A9dric?= Date: Fri, 2 Oct 2015 09:54:12 +0200 Subject: [PATCH 009/220] Start of student controller + student model and view --- app/models/test | 1 - 1 file changed, 1 deletion(-) delete mode 100644 app/models/test diff --git a/app/models/test b/app/models/test deleted file mode 100644 index 6f768df2..00000000 --- a/app/models/test +++ /dev/null @@ -1 +0,0 @@ -eeesed \ No newline at end of file From 4e987f88cb92c7221270c7fcae1e84fc9d0a2dbd Mon Sep 17 00:00:00 2001 From: "Hema.Lambert" Date: Fri, 2 Oct 2015 09:59:35 +0200 Subject: [PATCH 010/220] new Student controller --- app/controllers/student_controller.rb | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 app/controllers/student_controller.rb diff --git a/app/controllers/student_controller.rb b/app/controllers/student_controller.rb deleted file mode 100644 index 183f4dec..00000000 --- a/app/controllers/student_controller.rb +++ /dev/null @@ -1,9 +0,0 @@ -class StudentController < ApplicationController - - def new - @actuality = Actuality.find(params[:id]) - end - def edit(id) - @actuality = Actuality.find(params[:id]) - end -end From 338b0c669ccfe6906a4c7aa6ef1e1a69237824f6 Mon Sep 17 00:00:00 2001 From: Enguerran POULAIN Date: Fri, 2 Oct 2015 11:05:15 +0200 Subject: [PATCH 011/220] Add database developement connexion (with default root and no password) --- config/database.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config/database.yml b/config/database.yml index ac08d332..be3941f0 100644 --- a/config/database.yml +++ b/config/database.yml @@ -21,3 +21,10 @@ production: username: root password: <%= ENV['DATABASE_PASSWORD'] %> database: lpdwDB + +development: + adapter: mysql2 + encoding: utf8 + pool: 5 + username: root + database: lpdw2_0_development From 7e937adf43346138bc0e48f392f77940bfef07d1 Mon Sep 17 00:00:00 2001 From: Maxime Florile Date: Fri, 2 Oct 2015 11:07:49 +0200 Subject: [PATCH 012/220] Start student profil + student profil view --- app/views/students/profil.html.erb | 0 config/routes.rb | 1 + 2 files changed, 1 insertion(+) create mode 100644 app/views/students/profil.html.erb diff --git a/app/views/students/profil.html.erb b/app/views/students/profil.html.erb new file mode 100644 index 00000000..e69de29b diff --git a/config/routes.rb b/config/routes.rb index c0a282c7..c5e962bd 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -91,4 +91,5 @@ get '/mentions', :to => 'pages#mentions' get '/live', :to => 'pages#live' get '/studentsbook', :to => 'students#show' + get '/studentprofil', :to => 'student#profil' end From 7b4daaa1728e19192f80216cf9a72e4ca555d56a Mon Sep 17 00:00:00 2001 From: "Hema.Lambert" Date: Fri, 2 Oct 2015 11:46:27 +0200 Subject: [PATCH 013/220] student show view --- app/assets/images/default_user.jpg | Bin 0 -> 7307 bytes app/views/students/show.html.erb | 41 ++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 app/assets/images/default_user.jpg diff --git a/app/assets/images/default_user.jpg b/app/assets/images/default_user.jpg new file mode 100644 index 0000000000000000000000000000000000000000..39fcb2bb80a49a0122fcade6185facec83293fa3 GIT binary patch literal 7307 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 fvyDoEQC