diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000000000000000000000000000000000..f7d4a644f1a97947833a2b3002a059072ac15458 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.pythonPath": "C:\\Users\\feliv\\anaconda3\\python.exe" +} \ No newline at end of file diff --git a/src/app/members/account/my-data/my-data.component.ts b/src/app/members/account/my-data/my-data.component.ts index 08b27e436b58c0077c62abd42fb4ffe3708914e3..824b925fa5e384fbac9b9009d8d3e6fc3ea2ed07 100644 --- a/src/app/members/account/my-data/my-data.component.ts +++ b/src/app/members/account/my-data/my-data.component.ts @@ -1,20 +1,30 @@ +import { Injectable } from '@angular/core'; import { Component, OnInit } from '@angular/core'; import {ActivatedRoute,Router} from '@angular/router' import {PersonalData} from '../core' import * as moment from 'moment' import {User} from 'app/core' + +@Injectable({ + providedIn: 'root', +}) + + @Component({ selector: 'app-my-data', templateUrl: './my-data.component.html', styleUrls: ['./my-data.component.scss'] }) -export class MyDataComponent implements OnInit { +export class MyDataComponent implements OnInit{ - personalData: PersonalData; - validatedAccount : String; - dateNow: Date; - currentYear: String; + private personalData: PersonalData; + public validatedAccount : String; + public dateNow: Date; + public currentYear: String; + + + public validState: boolean; public grade = { "troisieme": "Troisième", @@ -24,6 +34,16 @@ export class MyDataComponent implements OnInit { "classe passerelle":"Classe Passerelle" } + + public getValidState() : boolean { + if (this.validatedAccount=="Validé"){ + return true + } + else { + return false + } + } + //Styles validated account label depending on the status of the account public styleValidatedAccount = ()=> { @@ -52,8 +72,8 @@ export class MyDataComponent implements OnInit { public editData = ()=> { this.router.navigate(['./membres/compte/modifier_donnees']) } + - constructor(private route: ActivatedRoute, private router:Router) { } @@ -68,13 +88,16 @@ export class MyDataComponent implements OnInit { } if(this.personalData.registration.validated){ - this.validatedAccount= "Validé" + this.validatedAccount= "Validé"; }else if(this.personalData.year===this.currentYear){ - this.validatedAccount="En cours de validation" + this.validatedAccount="En cours de validation"; }else{ - this.validatedAccount="Données personnelles non remplies" + this.validatedAccount="Données personnelles non remplies"; } } + + } + diff --git a/src/app/members/visits/shared/adapters.ts b/src/app/members/visits/shared/adapters.ts index dbad8426cea443ec316b5758a61d6adeb14e9c13..e8ef955cb2dfc43df196e3f06b338f78746d1546 100644 --- a/src/app/members/visits/shared/adapters.ts +++ b/src/app/members/visits/shared/adapters.ts @@ -111,6 +111,7 @@ export class VisitAdapter implements IAdapter<Visit> { registrationsOpen: data.registrations_open, image: data.image, factSheet: data.fact_sheet, + contextSheet: data.context_sheet, permissionSheet: data.permission, participants: participants, organizers: organizers, diff --git a/src/app/members/visits/shared/models.ts b/src/app/members/visits/shared/models.ts index 12ac07539825eb47ecf8d0f6ab9f43a0d4e50784..eeba2c3952d62700161c645ededc2431906b1318 100644 --- a/src/app/members/visits/shared/models.ts +++ b/src/app/members/visits/shared/models.ts @@ -36,6 +36,7 @@ export class Visit { registrationsOpen: boolean; image: string; factSheet: string; + contextSheet: string; permissionSheet: string; participants: Participant[]; organizers: Organizer[]; @@ -55,6 +56,7 @@ export class Visit { registrationsOpen: boolean, image: string; factSheet?: string; + contextSheet?: string; permissionSheet?: string; participants?: Participant[]; organizers?: Organizer[], @@ -73,6 +75,7 @@ export class Visit { this.registrationsOpen = opts.registrationsOpen; this.image = opts.image; this.factSheet = opts.factSheet; + this.contextSheet = opts.contextSheet; this.permissionSheet = opts.permissionSheet; this.participants = opts.participants || []; this.organizers = opts.organizers || []; diff --git a/src/app/members/visits/visit-detail/visit-detail.component.html b/src/app/members/visits/visit-detail/visit-detail.component.html index 21cfd6af38a246655d5380c541901e84b78acb70..545335fe899ab70d3e2feffde188c3b75d4d09bc 100644 --- a/src/app/members/visits/visit-detail/visit-detail.component.html +++ b/src/app/members/visits/visit-detail/visit-detail.component.html @@ -1,12 +1,15 @@ <div id="visit"> - <app-register-form [visible]="registerFormActive" (closed)="registerFormActive = false" [userId]="userId" [visit]="visit" (participate)="onParticipate($event)"></app-register-form> + <app-register-form [visible]="registerFormActive" (closed)="registerFormActive = false" [userId]="userId" + [visit]="visit" (participate)="onParticipate($event)"></app-register-form> - <app-leave-form [visible]="leaveFormActive" (closed)="leaveFormActive = false" [visit]="visit" [userId]="userId" (left)="participant = null"></app-leave-form> + <app-leave-form [visible]="leaveFormActive" (closed)="leaveFormActive = false" [visit]="visit" [userId]="userId" + (left)="participant = null"></app-leave-form> <div class="text-center"> <h1>{{ visit.title }}</h1> <p> - <strong>{{ visit.date | date:"EEEE d MMMM" }} – {{ visit.startTime | date:"shortTime"}}</strong> – {{ visit.place.name }} + <strong>{{ visit.date | date:"EEEE d MMMM" }} – {{ visit.startTime | date:"shortTime"}}</strong> – {{ + visit.place.name }} </p> <p *ngIf="visit.summary" class="text-muted"> @@ -15,28 +18,26 @@ <!-- Metadata badges --> <div> - <app-registration-badge - [title]="visit.title" - [open]="visit.registrationsOpen" - [passed]="visit.passed" + <app-registration-badge [title]="visit.title" [open]="visit.registrationsOpen" [passed]="visit.passed" [deadline]="visit.deadline"></app-registration-badge> - <app-participant-number-badge - [number]="acceptedParticipants"></app-participant-number-badge> + <app-participant-number-badge [number]="acceptedParticipants"></app-participant-number-badge> <span *ngIf="participant"> - <app-participation-badge - [accepted]="participant.accepted" - [passed]="visit.passed"></app-participation-badge> + <app-participation-badge [accepted]="participant.accepted" [passed]="visit.passed"></app-participation-badge> </span> </div> <!-- Show register button if user does not participate --> <div *ngIf="visit.registrationsOpen && !participant" class="text-center"> - <button id="participate-btn" type="button" name="button" class="btn-success" (click)="registerFormActive = true">Je m'inscris</button> + <button id="participate-btn" type="button" name="button" class="btn-primary" [disabled]="!isValid" (click)="registerFormActive = true"> + Je m'inscris</button> + </div> - <div *ngIf="participant && !visit.passed"> + <div class="text-muted-sm">{{errorMessageRegistration}}</div> + + <div *ngIf="participant && !visit.passed"> <!-- And a shy-ish unregister link --> <p class="text-muted-sm"> Tu as un empêchement et souhaites @@ -47,10 +48,17 @@ <!-- Related documents --> <p class="alert alert-info" *ngIf="visit.permissionSheet"> - <i class="fa fa-exclamation-triangle"></i>Avant de te rendre à la sortie, télécharge <a [href]="visit.permissionSheet">l'autorisation de sortie</a>. Fais-la remplir par tes parents et remets-la aux tuteurs le jour de la sortie. + <i class="fa fa-exclamation-triangle"></i>Avant de te rendre à la sortie, télécharge <a + [href]="visit.permissionSheet">l'autorisation de sortie</a>. Fais-la remplir par tes parents et remets-la aux + tuteurs le jour de la sortie. </p> <p class="alert alert-default" *ngIf="visit.factSheet"> - <i class="fa fa-file-text"></i> Les organisateurs ont rédigé une <a [href]="visit.factSheet">fiche sortie</a>. N'hésite pas à en prendre connaissance avant de te rendre à la sortie ! + <i class="fa fa-file-text"></i> Les organisateurs ont rédigé une <a [href]="visit.factSheet">fiche sortie</a>. + N'hésite pas à en prendre connaissance avant de te rendre à la sortie ! + </p> + <p class="alert alert-default" *ngIf="visit.contextSheet"> + <i class="fa fa-file-text"></i> Les organisateurs ont rédigé une <a [href]="visit.contextSheet">fiche de + contexte</a> sur la sortie. N'hésite pas à en prendre connaissance avant de te rendre à la sortie ! </p> </div> @@ -71,9 +79,7 @@ <app-useful-information [visit]="visit"></app-useful-information> <h2>Se rendre à cette sortie</h2> - <app-visit-location-map - [geocoder]="geocoder" - [address]="visit.address"></app-visit-location-map> + <app-visit-location-map [geocoder]="geocoder" [address]="visit.address"></app-visit-location-map> <div *ngIf="visit.organizers.length > 0"> <h2>Tuteurs organisateurs</h2> @@ -83,4 +89,4 @@ </div> </div> -</div> +</div> \ No newline at end of file diff --git a/src/app/members/visits/visit-detail/visit-detail.component.scss b/src/app/members/visits/visit-detail/visit-detail.component.scss index db849a895ace9be539f1a83784189e119de6a438..e466b8dc9badbedb63dd18683696bc4c18b12b25 100644 --- a/src/app/members/visits/visit-detail/visit-detail.component.scss +++ b/src/app/members/visits/visit-detail/visit-detail.component.scss @@ -23,6 +23,8 @@ margin-top: 1em; } + + img#illustration { display: block; margin: 1em auto; diff --git a/src/app/members/visits/visit-detail/visit-detail.component.ts b/src/app/members/visits/visit-detail/visit-detail.component.ts index ce98d8d176022b07af11dd07088ae94e3eeefb75..d7d0a8abc4f6e8b8ca23af99edde2e60eb76c32d 100644 --- a/src/app/members/visits/visit-detail/visit-detail.component.ts +++ b/src/app/members/visits/visit-detail/visit-detail.component.ts @@ -3,6 +3,11 @@ import { Observable, Subject } from 'rxjs'; import { ActivatedRoute } from '@angular/router'; import { AuthService, Geocoder } from 'app/core'; import { Visit, Participant } from '../shared'; +import {MyDataComponent} from 'app/members/account/my-data/my-data.component'; + + + + @Component({ selector: 'app-visit-detail', @@ -19,18 +24,27 @@ export class VisitDetailComponent implements OnInit { formLoading: boolean = false; leaveFormActive = false; geocoder: Geocoder; + errorMessageRegistration= ""; + isValid : boolean; constructor( private route: ActivatedRoute, private auth: AuthService, - ) { } + private dataC: MyDataComponent, + + ) {this.isValid=dataC.getValidState()} ngOnInit() { + this.visit = this.route.snapshot.data['visit']; this.geocoder = this.route.snapshot.data['geocoder']; this.userId = this.auth.getUserSnapshot().id; this.getParticipant(); this.getAcceptedParticipants(); + if (!this.isValid) + { + this.errorMessageRegistration="Tu dois valider ton compte pour pouvoir t'inscrire aux sorties." + } } getParticipant() { @@ -52,3 +66,4 @@ export class VisitDetailComponent implements OnInit { } } + diff --git a/src/app/signup/core/index.ts b/src/app/signup/core/index.ts index dbcc0f66bb1c8b7aaa99783d11c58cd70ec1a3e7..2698fcdcf41c5aa99c7d3113dce236ea6bb213e5 100644 --- a/src/app/signup/core/index.ts +++ b/src/app/signup/core/index.ts @@ -3,4 +3,4 @@ export * from './registration.service'; export * from './personnalData.model'; export * from './personnalData.service'; export * from './password.matcher'; -// commentaire \ No newline at end of file +// commentaire diff --git a/src/app/signup/student-signup/student-signup.component.ts b/src/app/signup/student-signup/student-signup.component.ts index 1069166c86cd905054944b8e17b2f6ee0f1fa435..5f04fc109e6b3325e95958f359deb7c840f079f2 100644 --- a/src/app/signup/student-signup/student-signup.component.ts +++ b/src/app/signup/student-signup/student-signup.component.ts @@ -127,7 +127,7 @@ export class StudentSignupComponent implements OnInit { tap(() => this.loading = false), tap(() => { setTimeout(()=>{ - this.router.navigate(['./membres']) + this.router.navigate(['./membres/compte/donnees']) },3000)}) diff --git a/src/favicon.ico b/src/favicon.ico index 32695caf0b97ae74b9e7cbe7f5f0e1c39c7261c8..c465b57f742777089d7d2cdd32186c3c00915034 100644 Binary files a/src/favicon.ico and b/src/favicon.ico differ