Compare commits
	
		
			1 Commits
		
	
	
		
			meetings
			...
			cb750b8505
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						cb750b8505
	
				 | 
					
					
						
@ -16,6 +16,8 @@ repositories {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dependencies {
 | 
			
		||||
	compileOnly("org.projectlombok:lombok")
 | 
			
		||||
	annotationProcessor("org.projectlombok:lombok")
 | 
			
		||||
	implementation("org.springframework.boot:spring-boot-starter-jdbc")
 | 
			
		||||
	implementation("org.springframework.boot:spring-boot-starter-data-jpa")
 | 
			
		||||
	implementation("org.springframework.boot:spring-boot-starter-mail")
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,10 @@
 | 
			
		||||
package ovh.herisson.Clyde.Tables;
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.*;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Msg.Forum;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.hibernate.annotations.OnDelete;
 | 
			
		||||
import org.hibernate.annotations.OnDeleteAction;
 | 
			
		||||
 | 
			
		||||
@ -17,6 +21,11 @@ public class Course {
 | 
			
		||||
    @JoinColumn(name = "Users")
 | 
			
		||||
    private User owner;
 | 
			
		||||
 | 
			
		||||
	//// Extension Messagerie /////
 | 
			
		||||
	@OneToMany
 | 
			
		||||
	private List<Forum> forums;
 | 
			
		||||
	///////////////////////////////
 | 
			
		||||
 | 
			
		||||
    public Course(int credits, String title, User owner){
 | 
			
		||||
        this.credits = credits;
 | 
			
		||||
        this.title = title;
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,32 @@
 | 
			
		||||
package ovh.herisson.Clyde.Tables.Msg;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
import org.hibernate.annotations.CreationTimestamp;
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.*;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
 | 
			
		||||
@Entity
 | 
			
		||||
@Data
 | 
			
		||||
public class Answers {
 | 
			
		||||
	@Id
 | 
			
		||||
	@GeneratedValue(strategy = GenerationType.AUTO)
 | 
			
		||||
	private int id;
 | 
			
		||||
 | 
			
		||||
	@CreationTimestamp
 | 
			
		||||
	private Date creation;
 | 
			
		||||
 | 
			
		||||
	@ManyToOne
 | 
			
		||||
	private Topic topic;
 | 
			
		||||
 | 
			
		||||
	private String content;
 | 
			
		||||
 | 
			
		||||
	@OneToOne
 | 
			
		||||
	private User author;
 | 
			
		||||
 | 
			
		||||
	private boolean anonymous;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -1,9 +0,0 @@
 | 
			
		||||
package ovh.herisson.Clyde.Tables.Msg;
 | 
			
		||||
 | 
			
		||||
public enum AppointmentStatus {
 | 
			
		||||
	WAITING_TEACHER,
 | 
			
		||||
	WAITING_STUDENT,
 | 
			
		||||
	CONFIRMED,
 | 
			
		||||
	REFUSED
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,30 +0,0 @@
 | 
			
		||||
package ovh.herisson.Clyde.Tables.Msg;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.Entity;
 | 
			
		||||
import jakarta.persistence.EnumType;
 | 
			
		||||
import jakarta.persistence.Enumerated;
 | 
			
		||||
import jakarta.persistence.GeneratedValue;
 | 
			
		||||
import jakarta.persistence.GenerationType;
 | 
			
		||||
import jakarta.persistence.Id;
 | 
			
		||||
import jakarta.persistence.ManyToOne;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
 | 
			
		||||
@Entity
 | 
			
		||||
public class Appointments {
 | 
			
		||||
 | 
			
		||||
	@Id
 | 
			
		||||
    @GeneratedValue(strategy = GenerationType.AUTO)
 | 
			
		||||
	private int id;
 | 
			
		||||
	
 | 
			
		||||
	@ManyToOne
 | 
			
		||||
	private User teacher, student;
 | 
			
		||||
 | 
			
		||||
	private Date planned;
 | 
			
		||||
 | 
			
		||||
	@Enumerated(EnumType.STRING)
 | 
			
		||||
	private AppointmentStatus status;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,28 @@
 | 
			
		||||
package ovh.herisson.Clyde.Tables.Msg;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.*;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Course;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
 | 
			
		||||
@Entity
 | 
			
		||||
@Data
 | 
			
		||||
public class Forum {
 | 
			
		||||
 | 
			
		||||
	@Id
 | 
			
		||||
	@GeneratedValue(strategy = GenerationType.AUTO)
 | 
			
		||||
	private int id;
 | 
			
		||||
 | 
			
		||||
	@ManyToOne(cascade = CascadeType.ALL)
 | 
			
		||||
	private Course course;
 | 
			
		||||
 | 
			
		||||
	private String name;
 | 
			
		||||
 | 
			
		||||
	@OneToMany
 | 
			
		||||
	private List<User> writers; // User who are authorized to create a post
 | 
			
		||||
 | 
			
		||||
	@OneToMany
 | 
			
		||||
	private List<User> register;
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,26 @@
 | 
			
		||||
package ovh.herisson.Clyde.Tables.Msg;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.*;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
 | 
			
		||||
@Entity
 | 
			
		||||
@Data
 | 
			
		||||
public class Topic {
 | 
			
		||||
 | 
			
		||||
	@Id
 | 
			
		||||
	@GeneratedValue(strategy = GenerationType.AUTO)
 | 
			
		||||
	private int id;
 | 
			
		||||
 | 
			
		||||
	private String subject, content;
 | 
			
		||||
 | 
			
		||||
	@OneToOne
 | 
			
		||||
	private User author;
 | 
			
		||||
	
 | 
			
		||||
	@OneToMany(mappedBy = "topic", cascade = CascadeType.ALL)
 | 
			
		||||
	private List<Answers> answers;
 | 
			
		||||
 | 
			
		||||
	private boolean locked; // true if new messages can be posted
 | 
			
		||||
}
 | 
			
		||||
@ -20,7 +20,6 @@ app.login=Login
 | 
			
		||||
app.notifications=Notifications
 | 
			
		||||
app.settings=Settings
 | 
			
		||||
app.messages=Messages
 | 
			
		||||
app.meetings=Meetings
 | 
			
		||||
app.forum=Forum
 | 
			
		||||
app.schedules=Schedules
 | 
			
		||||
app.inscription.requests=Inscription Requests
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,6 @@ app.login=Se connecter
 | 
			
		||||
app.notifications=Notifications
 | 
			
		||||
app.settings=Options
 | 
			
		||||
app.messages=Messages
 | 
			
		||||
app.meetings=Rendez-vous
 | 
			
		||||
app.forum=Forum
 | 
			
		||||
app.schedules=Horaires
 | 
			
		||||
app.inscription.requests=Demandes d'Inscription
 | 
			
		||||
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
<template>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup>
 | 
			
		||||
	alert("Meetings page WIP")
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,6 @@ import Profil from "@/Apps/Profil.vue"
 | 
			
		||||
import Courses from "@/Apps/ManageCourses.vue"
 | 
			
		||||
import Users from "@/Apps/UsersList.vue"
 | 
			
		||||
import Students from "@/Apps/StudentsList.vue"
 | 
			
		||||
import Meetings from "@/Apps/Meetings.vue"
 | 
			
		||||
 | 
			
		||||
const apps = {
 | 
			
		||||
		'/login': LoginPage,
 | 
			
		||||
@ -18,12 +17,10 @@ const apps = {
 | 
			
		||||
		'/manage-courses' : Courses,
 | 
			
		||||
		'/users-list' : Users,
 | 
			
		||||
		'/students-list' : Students,
 | 
			
		||||
		'/meetings' : Meetings,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const appsList = {
 | 
			
		||||
		'Msg': { path: '#/msg', icon: 'fa-comment', text: i18n("app.messages") },
 | 
			
		||||
		'Meetings': { path: '#/meetings', icon: 'fa-handshake', text: i18n("app.meetings") },
 | 
			
		||||
		'Notification': { path: '#/notifs', icon: 'fa-bell', text: i18n("app.notifications") },
 | 
			
		||||
		'Forum': { path: '#/forum', icon: 'fa-envelope', text: i18n("app.forum") },
 | 
			
		||||
		'Schedule': { path: '#/schedule', icon: 'fa-calendar-days', text: i18n("app.schedules") },
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user