Skip to content
This repository has been archived by the owner on Mar 19, 2024. It is now read-only.

Commit

Permalink
feat(admin): ui
Browse files Browse the repository at this point in the history
  • Loading branch information
MartinKanera committed Feb 27, 2021
1 parent fdae71d commit 387b550
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 11 deletions.
12 changes: 9 additions & 3 deletions components/student/student.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@
.flex.items-center.flex-1
img.border-2.border-solid.border-ps-green.rounded-full(:src='profilePicture', width='48')
.flex.flex-col.ml-2.leading-4
span.text-ps-green.font-bold.block {{ displayName }}
span.text-ps-green.font-bold.block {{ displayName }} - {{ schoolYear === year ? "aktuální" : year }}
.actions
ps-btn.text-ps-white(text, @click='settingsModal = !settingsModal')
settings-icon(:size='20')/
//- ps-btn.text-ps-white(text)
//- bin-icon(:size='20')/
ps-modal(v-model='settingsModal')
span.text-ps-green.text-lg {{ studentToUpdate.displayName }}
ps-text-field.mt-8.mb-4(v-model='studentToUpdate.displayName', name='displayName', label='Jméno')
Expand Down Expand Up @@ -49,6 +47,14 @@ export default defineComponent({
type: firebase.firestore.Timestamp,
required: true,
},
year: {
type: Number,
required: true,
},
schoolYear: {
type: Number,
required: true,
},
},
setup({ studentId, displayName, currentYear }) {
const studentToUpdate = ref({ displayName, year: currentYear.toDate().getFullYear().toString() });
Expand Down
13 changes: 12 additions & 1 deletion functions/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const db = admin.firestore();

exports.projectsHooks = functions.firestore.document('projects/{projectId}').onWrite(async (snap, context) => {
const statisticsRef = db.collection('system').doc('statistics');
const currentYearRef = db.collection('system').doc('schoolYear');

const runTransaction = async (difference: number) => {
return await db.runTransaction(async (transaction) => {
Expand All @@ -27,7 +28,11 @@ exports.projectsHooks = functions.firestore.document('projects/{projectId}').onW
});
}

if (!snap.before.data() && snap.after.data()) return await runTransaction(1);
if (!snap.before.data() && snap.after.data()) {
const yearInfo = await currentYearRef.get();
if (!(snap.after.data()?.currentYear as admin.firestore.Timestamp).isEqual(yearInfo.data()?.currentYear)) return;
return await runTransaction(1);
};
if (!snap.after.data()) return await runTransaction(-1);

if (snap.before.data() && snap.after.data()) {
Expand Down Expand Up @@ -72,6 +77,12 @@ exports.projectsHooks = functions.firestore.document('projects/{projectId}').onW

if (!currentSchoolYear.isEqual(snap.after.data()?.currentYear)) await runTransaction(-1)
}

if(snap.before.data() && !snap.after.data()) {
const yearInfo = await currentYearRef.get();
if (!(snap.after.data()?.currentYear as admin.firestore.Timestamp).isEqual(yearInfo.data()?.currentYear)) return;
return await runTransaction(-1);
}
};

return;
Expand Down
9 changes: 7 additions & 2 deletions pages/admin.vue
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,9 @@
:studentId='student.id',
:displayName='student.displayName',
:profilePicture='student.profilePicture',
:currentYear='student.currentYear'
:currentYear='student.currentYear',
:year='student.year',
:schoolYear='currentSchoolYear.toDate().getFullYear()'
)
ps-tab(:active='selectedTab == "učitelé"')
ps-teacher.mt-4(
Expand Down Expand Up @@ -158,6 +160,7 @@ type Student = {
displayName: String;
profilePicture: String;
currentYear: firebase.firestore.Timestamp;
year: Number;
};
export default defineComponent({
Expand Down Expand Up @@ -531,7 +534,7 @@ export default defineComponent({
.firestore()
.collection('users')
.where('student', '==', true)
.where('currentYear', '==', currentSchoolYear.value)
.orderBy('currentYear', 'desc')
.limit(10)
.onSnapshot((snapshots) => {
const studentsDocs = snapshots.docs;
Expand All @@ -544,6 +547,7 @@ export default defineComponent({
displayName: studentDoc.data()?.displayName,
profilePicture: studentDoc.data()?.profilePicture,
currentYear: studentDoc.data()?.currentYear,
year: (studentDoc.data()?.currentYear as firebase.firestore.Timestamp).toDate().getFullYear(),
};
});
Expand Down Expand Up @@ -652,6 +656,7 @@ export default defineComponent({
updatingDeadline,
query,
searchedProjects,
currentSchoolYear,
};
},
});
Expand Down
8 changes: 8 additions & 0 deletions pages/myproject.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,11 @@
.h-auto.m-4
ps-my-project
</template>

<script lang="ts">
import { defineComponent } from '@nuxtjs/composition-api';
export default defineComponent({
middleware: 'my-project',
});
</script>
6 changes: 1 addition & 5 deletions server/api/review/list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,16 +37,12 @@ const getReviewsUrls = async (projectData: any, authorized = false) => {
);

const strippedReviews: Array<any> = response.filter((el: any) => el != null);
const nigger = result.map((teacher) => {
return result.map((teacher) => {
return {
...teacher,
reviews: strippedReviews.filter((review) => review.teacherId === teacher.teacherId),
};
});

console.log(nigger);

return nigger;
};

export default async (req: Request, res: Response) => {
Expand Down
9 changes: 9 additions & 0 deletions server/api/student/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,21 @@ export default async (req: Request, res: Response) => {
}

const studentRef = admin.firestore().collection('users').doc(studentId);
const projectRef = admin.firestore().collection('projects').where('studentId', '==', studentId).limit(1);

try {
await admin.firestore().runTransaction(async (transaction) => {
const sfDoc = await transaction.get(studentRef);
const project = await transaction.get(projectRef);

if (!sfDoc.data()?.student) return res.status(404).send('No student with this id found');

if (project.docs[0]?.exists) {
transaction.update(project.docs[0].ref, {
currentYear,
});
}

transaction.update(studentRef, {
displayName,
currentYear,
Expand All @@ -40,6 +48,7 @@ export default async (req: Request, res: Response) => {

return res.status(200).send();
} catch (e) {
console.log(e);
return res.status(500).send(e);
}
};

0 comments on commit 387b550

Please sign in to comment.