From 29c99334b2dec419f775b22dbed9596b9a14b1cb Mon Sep 17 00:00:00 2001 From: Kilton937342 Date: Fri, 24 Jun 2022 17:27:17 +0200 Subject: [PATCH 1/4] remove abusive log --- backend/api/api/settings.py | 2 +- frontend/components/exos/Card.jsx | 8 ++++---- frontend/components/exos/ExoCreateForm.jsx | 2 +- frontend/components/exos/ExoEditForm.jsx | 2 +- frontend/components/exos/ModalCard.jsx | 2 +- frontend/components/exos/Pagination.jsx | 2 +- frontend/components/exos/StepOptions.jsx | 2 +- frontend/components/exos/modelInput.jsx | 2 +- frontend/components/pdf_gen/tagContainer.jsx | 4 ++-- frontend/components/room/ParcoursView.jsx | 2 +- frontend/context/websocket.context.js | 4 ++-- frontend/pages/login.jsx | 2 +- frontend/pages/register.jsx | 2 +- 13 files changed, 18 insertions(+), 18 deletions(-) diff --git a/backend/api/api/settings.py b/backend/api/api/settings.py index a57e7155..ce425ef8 100644 --- a/backend/api/api/settings.py +++ b/backend/api/api/settings.py @@ -175,7 +175,7 @@ USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/4.0/howto/static-files/ -STATIC_URL = 'static/' +STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') diff --git a/frontend/components/exos/Card.jsx b/frontend/components/exos/Card.jsx index 126f838a..cfb9ac0e 100644 --- a/frontend/components/exos/Card.jsx +++ b/frontend/components/exos/Card.jsx @@ -24,7 +24,7 @@ function CardComp({ step, setActive, deleted, tags, queryKey }) { { onSuccess: (data, variables, context) => { queryClient.setQueryData(queryKey, (old) => { - console.log("test old", old); + return { ...old, results: [ @@ -47,7 +47,7 @@ function CardComp({ step, setActive, deleted, tags, queryKey }) { setTagMode(false); }, onError: (data) => { - console.log("ERROR", data); + notificationService.error( "Erreur", `Les tags de ${step.name} n'ont pu être modifiés !` @@ -68,7 +68,7 @@ function CardComp({ step, setActive, deleted, tags, queryKey }) { queryClient.invalidateQueries(queryKey); } queryClient.setQueriesData(queryKey, (old) => { - console.log("test old", old); + return { ...old, results: [ @@ -92,7 +92,7 @@ function CardComp({ step, setActive, deleted, tags, queryKey }) { setTagMode(false); }, onError: (e) => { - console.log(e); + notificationService.error( "Erreur", `Le tag n'a pu être retiré de ${step.name} !` diff --git a/frontend/components/exos/ExoCreateForm.jsx b/frontend/components/exos/ExoCreateForm.jsx index 8bb8c048..f6518450 100644 --- a/frontend/components/exos/ExoCreateForm.jsx +++ b/frontend/components/exos/ExoCreateForm.jsx @@ -143,7 +143,7 @@ export default function ExoCreateForm({ cancel, resetFilter }) { type="checkbox" checked={newExo.private} onChange={(e) => { - console.log(e.target); + setNewExo({ ...newExo, private: !newExo.private }); }} /> diff --git a/frontend/components/exos/ExoEditForm.jsx b/frontend/components/exos/ExoEditForm.jsx index 5761bc99..3879ebef 100644 --- a/frontend/components/exos/ExoEditForm.jsx +++ b/frontend/components/exos/ExoEditForm.jsx @@ -133,7 +133,7 @@ export function ExoEditForm({ step, cancel, setFull, full }) { type="checkbox" checked={spec.private} onChange={(e) => { - console.log(e.target); + setSpec({ ...spec, private: !spec.private }); }} /> diff --git a/frontend/components/exos/ModalCard.jsx b/frontend/components/exos/ModalCard.jsx index 66067263..b5bf16b6 100644 --- a/frontend/components/exos/ModalCard.jsx +++ b/frontend/components/exos/ModalCard.jsx @@ -120,7 +120,7 @@ export default function ModalCard({ step, onClose, onDelete, tags, queryKey }) { return { ...old, tags: data.data.tags }; }); queryClient.setQueryData(queryKey, (old) => { - console.log("test old", old); + return { ...old, results: [ diff --git a/frontend/components/exos/Pagination.jsx b/frontend/components/exos/Pagination.jsx index b52f364e..998bee7c 100644 --- a/frontend/components/exos/Pagination.jsx +++ b/frontend/components/exos/Pagination.jsx @@ -97,7 +97,7 @@ export function Pagination({ setPage, page, pages }) { : page + 3 ) .map((p) => { - console.log("new pagin", p); + return (

{ diff --git a/frontend/components/exos/StepOptions.jsx b/frontend/components/exos/StepOptions.jsx index 48b9e551..1d314bb3 100644 --- a/frontend/components/exos/StepOptions.jsx +++ b/frontend/components/exos/StepOptions.jsx @@ -21,7 +21,7 @@ export default function StepOptions({ pageChange, serieChange }) { e.target.value == '' ); if (!isNaN(parseInt(e.target.value, 10))) { - console.log("nope"); + if (parseInt(e.target.value, 10) > 100) { setPage(100); pageChange && pageChange(100); diff --git a/frontend/components/exos/modelInput.jsx b/frontend/components/exos/modelInput.jsx index 94fb5156..a7aacef6 100644 --- a/frontend/components/exos/modelInput.jsx +++ b/frontend/components/exos/modelInput.jsx @@ -72,7 +72,7 @@ export default function ModelInput({ var filename = e.target.files[0].name; var splitting = filename.split("."); if (splitting[splitting.length - 1] != "py") { - console.log("nope"); + } else { setModel({ filename: e.target.files[0].name, data: text }); } diff --git a/frontend/components/pdf_gen/tagContainer.jsx b/frontend/components/pdf_gen/tagContainer.jsx index 17f2209a..a2bbe69f 100644 --- a/frontend/components/pdf_gen/tagContainer.jsx +++ b/frontend/components/pdf_gen/tagContainer.jsx @@ -9,7 +9,7 @@ export default function TagContainer({ tags }) { const [invisible, setInvisible] = useState([]); useLayoutEffect(() => { if (ref.current.clientWidth < ref.current.scrollWidth) { - console.log("overflow", ref); + var element = ref.current; var invi = []; for (var i = 0; i < element.childElementCount; i++) { @@ -24,7 +24,7 @@ export default function TagContainer({ tags }) { element.children[i].style.display = "none"; } } - console.log(invi); + setInvisible([...invi]); } }, [ref]); diff --git a/frontend/components/room/ParcoursView.jsx b/frontend/components/room/ParcoursView.jsx index 3d7026f3..e01b7bd5 100644 --- a/frontend/components/room/ParcoursView.jsx +++ b/frontend/components/room/ParcoursView.jsx @@ -229,7 +229,7 @@ export default function ParcoursView({ parcours_id, room_code, user }) { }, [parcours]); const router = useRouter(); - console.log("PARCOURS", parcours); + const [dataCorrection, setDataCorrection] = useState(); const [onglet, setOnglet] = useState("tab"); diff --git a/frontend/context/websocket.context.js b/frontend/context/websocket.context.js index d62a7454..a025a0fe 100644 --- a/frontend/context/websocket.context.js +++ b/frontend/context/websocket.context.js @@ -24,11 +24,11 @@ export const WebsocketProvider = ({ children }) => { }); }; ws.current.onclose = (c) => { - console.log("CLOSED", c); + setConnected(false); }; ws.current.onerror = (e) => { - console.log("ERROR", e); + //router.push({ pathname: '/room/join' }) ws.current.close(); diff --git a/frontend/pages/login.jsx b/frontend/pages/login.jsx index f1448350..25131e38 100644 --- a/frontend/pages/login.jsx +++ b/frontend/pages/login.jsx @@ -29,7 +29,7 @@ export default function Login() { router.push({ pathname: "/dashboard" }); }) .catch((err) => { - console.log(err.response.data); + setError({ ...err.response.data }); }); }} diff --git a/frontend/pages/register.jsx b/frontend/pages/register.jsx index 640578d9..5ce6e4b8 100644 --- a/frontend/pages/register.jsx +++ b/frontend/pages/register.jsx @@ -39,7 +39,7 @@ export default function Register() { router.push({ pathname: "/dashboard" }); }) .catch((err) => { - console.log(err.response.data); + setError({ ...err.response.data }); }); }} From bf62ac718be90df55b5df4f6928c35434e29153f Mon Sep 17 00:00:00 2001 From: Kilton937342 Date: Fri, 24 Jun 2022 17:29:24 +0200 Subject: [PATCH 2/4] logs --- backend/api/exercices/filters.py | 2 +- backend/api/exercices/pdfmaker.py | 12 ++++++------ backend/api/exercices/signals.py | 2 +- backend/api/exercices/views.py | 30 +++++++++++++++--------------- backend/api/room/consumers.py | 30 +++++++++++++++--------------- backend/api/room/models.py | 6 ++---- backend/api/room/serializers.py | 2 +- backend/api/room/views.py | 18 +++++++++--------- 8 files changed, 50 insertions(+), 52 deletions(-) diff --git a/backend/api/exercices/filters.py b/backend/api/exercices/filters.py index a86f61d5..b67c4d09 100644 --- a/backend/api/exercices/filters.py +++ b/backend/api/exercices/filters.py @@ -24,6 +24,6 @@ class ExosFilter(django_filters.FilterSet): withAllTags = list(filter(lambda t: all( i in [t.id_code for t in t.tags.all()] for i in tags ), withT)) withAllTagsQ = parent.filter(id_code__in = [e.id_code for e in withAllTags]) - print('WIRHA', withAllTagsQ) + return withAllTagsQ.filter(name__icontains=search) \ No newline at end of file diff --git a/backend/api/exercices/pdfmaker.py b/backend/api/exercices/pdfmaker.py index 214d1aae..c0ff5d3b 100644 --- a/backend/api/exercices/pdfmaker.py +++ b/backend/api/exercices/pdfmaker.py @@ -40,16 +40,16 @@ def pdf_settings(path, number_in_serie, consigne): def page_settings(exos): - # print(exos) + # max = 100 total = 10 + 3 + 8 pages = [{'exos': [], 'index': 1, 'jump': 0}] page_num = 0 for ex in list(map(lambda e: e['exos'], exos)): - #print(ex) + # for e in ex: if (total) + (len(e['exercice'][0])) <= max: - #print(total + len(e['exercice'][0]) + 2, + # #total + len(e['exercice'][0]) + 2 < max, e['index']) total += (len(e['exercice'][0]) * 2 * 2) + 4 + 3 e['notLast'] = True @@ -59,14 +59,14 @@ def page_settings(exos): pages[page_num]['exos']) - 1]['notLast'] = False rest = max - (total - 1) pages[page_num]['jump'] = rest - #print('tot', pages[page_num]['jump']) + # id = pages[page_num]['index'] page_num += 1 pages.append({'exos': [], 'index': id + 1, 'jump': 0}) pages[page_num]['exos'].append(e) total = (len(e['exercice'][0]) * 2 * 2) + 4 + 10 + 3 + 3 + 8 - #print('pgages', len(pages)) + # pages[len(pages) - 1]['exos'][len(pages[len(pages) - 1] ['exos']) - 1]['notLast'] = False - #print(list(map(lambda e:e['exos'],exos))) + # return pages diff --git a/backend/api/exercices/signals.py b/backend/api/exercices/signals.py index fc0799e9..2036eabc 100644 --- a/backend/api/exercices/signals.py +++ b/backend/api/exercices/signals.py @@ -17,7 +17,7 @@ def auto_delete_file_on_delete(sender, instance, **kwargs): Deletes file from filesystem when corresponding `MediaFile` object is deleted. """ - print(instance, instance.exo_model.path, instance.id_code) + if instance.exo_model: if os.path.isfile(instance.exo_model.path): os.remove(instance.exo_model.path) diff --git a/backend/api/exercices/views.py b/backend/api/exercices/views.py index c81bafa1..55810aed 100644 --- a/backend/api/exercices/views.py +++ b/backend/api/exercices/views.py @@ -111,7 +111,7 @@ class ExerciceAPI(APIView): # sleep(2) return Response({"status": "200", "errors": {}, "data": {**ExerciceSerializer(new_exo).data, "author": UserSerializer(new_exo.author).data if new_exo.author != None else None, 'exo_model': {'filename': new_exo.exo_model.name.split('/')[-1], "data": open(new_exo.exo_model.name, 'r').read()}, "tags": [{**TagSerializer(t).data, 'value': t.id_code, 'label': t.name} for t in new_exo.tags.all()]}}, status=status.HTTP_200_OK) - print(create_serializer.errors, 'errs') + return Response({"status": "400", "errors": create_serializer.errors}, status=status.HTTP_400_BAD_REQUEST) @method_decorator(login_required) @@ -241,7 +241,7 @@ def getExoModelFile(request): return Response({'errors': 'Not found'}, status=status.HTTP_404_NOT_FOUND) exo = exo[0] model = exo.exo_model - print(model.name) + with open(model.name, 'r') as f: response = HttpResponse(f.read(), content_type='text/x-python') @@ -259,7 +259,7 @@ def fav(request): originExo = exo[0] exo = exo[0] with open(exo.exo_model.path, 'r') as f: - print(f.name.split('/')[-1]) + exo.pk = None exo.id = None exo.id_code = generate_unique_code_step() @@ -291,7 +291,7 @@ class TagsAPI(APIView): tagsList = [] for o in options: - # print(o) + # if o['value'].startswith('new_opt'): newTag = Tag(name=o['label'], color=o['color'], user=request.user) @@ -347,7 +347,7 @@ class Editor(APIView): script.write(code) proc = subprocess.Popen(['python3.10', 'tmp.py', ], stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=tempdir) - print(open(os.path.join(tempdir, "tmp.py"), 'r').read()) + out, err = proc.communicate() out = out.decode().splitlines() return Response({"out": out, "error": err.decode('utf-8').splitlines()}, status=status.HTTP_200_OK) @@ -382,7 +382,7 @@ def pdfGen(request): for e in range(len(exos)): for exo in range(len(exos[e]['exos'])): - # print(exos[e]['exos'][exo]) + # exos[e]['exos'][exo]['calcul'] = sympy.latex( exos[e]['exos'][exo]['calcul']) @@ -447,11 +447,11 @@ def pdfGen(request): fich_name = request.data.get('file') if fich_name.count('.') >= 1: ext = fich_name.split('.')[-1] - # print(ext) + # if ext == 'pdf': fich_name = fich_name elif ext != 'pdf': - # print('nipe') + # fich_name = fich_name.replace(f'.{ext}', '.pdf') else: fich_name = fich_name + '.pdf' @@ -463,7 +463,7 @@ class PDF(APIView): exos = list(map(lambda ex: pdf_settings( Exercice.objects.filter(id_code=ex['id_code'])[0].exo_model.name, 14, int(ex['numberInExo']), int(ex['numberOfExo']), 1, ex['consigne']), request.data.get('exos'))) - # print(exos) + # # dans str mettre space(0.5) replace by \hspace{0.5cm} template_name = 'test.tex' symbols = { @@ -475,7 +475,7 @@ class PDF(APIView): # a refaire pour supp les symbols for e in range(len(exos)): for exo in range(len(exos[e]['exos'])): - # print(exos[e]['exos'][exo]) + # exos[e]['exos'][exo]['calcul'] = sympy.latex( exos[e]['exos'][exo]['calcul']) @@ -509,7 +509,7 @@ class PDF(APIView): template = get_template('test.tex') latex = template.render(context) # latex to compile - # print(latex) + # with tempfile.TemporaryDirectory() as tempdir: direct = tempdir with open(os.path.join(direct, 'tmp.tex'), 'x', encoding='utf-8') as f: @@ -541,11 +541,11 @@ class PDF(APIView): fich_name = request.data.get('file') if fich_name.count('.') >= 1: ext = fich_name.split('.')[-1] - # print(ext) + # if ext == 'pdf': fich_name = fich_name elif ext != 'pdf': - # print('nipe') + # fich_name = fich_name.replace(f'.{ext}', '.pdf') else: fich_name = fich_name + '.pdf' @@ -560,7 +560,7 @@ class Test(APIView): code = "VZRKLZ" ex = Exercice.objects.filter(id_code=code)[0] model = ex.exo_model - print('model', model.name) + oplist = Generateur(model.name, 2, 'calcul') return Response({"data": oplist}, status=status.HTTP_200_OK) @@ -569,6 +569,6 @@ class ExoModelApi(APIView): def get(self, request, format=None): code = request.GET.get('id_code') exo = Exercice.objects.filter(id_code=code)[0] - print(exo.exo_model.name) + model = open(exo.exo_model.name, 'rb') return FileResponse(model, status=status.HTTP_200_OK) diff --git a/backend/api/room/consumers.py b/backend/api/room/consumers.py index 993b0343..f17fbab2 100644 --- a/backend/api/room/consumers.py +++ b/backend/api/room/consumers.py @@ -19,21 +19,21 @@ class RoomConsumer(AsyncWebsocketConsumer): self.user = None try: self.room = await self.get_room() - print('Connected') + await self.accept() await self.send(json.dumps({'type': 'connect', "clientId": self.clientId})) except: - print('closed') + await self.close() async def receive(self, text_data): text_data_json = json.loads(text_data) type = text_data_json['data']['type'] - print("EVENT", type) - print('USER', self.scope['user']) + + if type == "login": - print('LOF', self.scope['user']) + participants = await self.get_participants() if self.scope['user'].is_anonymous: nick = text_data_json['data']['nick'] @@ -84,7 +84,7 @@ class RoomConsumer(AsyncWebsocketConsumer): new_participant = await self.add_participant(nick, str(uuid4())) else: new_participant = await self.add_user(code) - print(new_participant) + await self.del_waiter_db(code) await self.channel_layer.group_send(f'waiter__{code}', {"type": "accept_room", 'id_code': self.room_id, 'code': new_participant['code']}) @@ -118,7 +118,7 @@ class RoomConsumer(AsyncWebsocketConsumer): participant = list( filter(lambda p: p['code'] == code, participants))[0] await self.channel_layer.group_discard(f'waiter__{code}', self.channel_name) - print('new user', participant) + self.clientId = participant['clientId'] await self.channel_layer.group_add(self.room_id, self.channel_name) self.user = participant @@ -179,7 +179,7 @@ class RoomConsumer(AsyncWebsocketConsumer): elif type == "reconnect": client = text_data_json['data']['clientId'] - print("reconeect", self.scope['user'].is_anonymous) + if not self.scope['user'].is_anonymous: userInRoom = await self.userInRoom() if not userInRoom: @@ -199,7 +199,7 @@ class RoomConsumer(AsyncWebsocketConsumer): await self.connect_participant() self.clientId = self.scope['user'].clientId - print('SENDING') + await self.send(json.dumps({'type': "reconnected", "clientId": self.scope['user'].clientId, 'id_code': self.room_id, 'identity': self.user})) await self.channel_layer.group_send(self.room_id, {"type": "reconnect.event", 'nick': self.user['nick']}) await self.channel_layer.group_send(f'owner__{self.room_id}', {"type": "reconnect.event", 'nick': self.user['nick']}) @@ -214,10 +214,10 @@ class RoomConsumer(AsyncWebsocketConsumer): filter(lambda p: p['clientId'] == client, participants))[0] if participant['clientId'] == self.room.owner['clientId'] and participant['code'] == self.room.owner['code']: - print('add in admin') + await self.channel_layer.group_add(f'owner__{self.room_id}', self.channel_name) else: - print('add in users') + await self.channel_layer.group_add(self.room_id, self.channel_name) participant['online'] = True self.user = participant @@ -245,11 +245,11 @@ class RoomConsumer(AsyncWebsocketConsumer): clientId = text_data_json['data']["clientId"] status = 'anonymous' if len(code) == 6 else 'user' - print('EST') + if status == 'anonymous': participants = await self.get_participants() participant = [p for p in participants if p['code'] == code] - print('PARTICIPANR', participant) + if len(participant) == 0: pass else: @@ -259,7 +259,7 @@ class RoomConsumer(AsyncWebsocketConsumer): await self.channel_layer.group_send(f'owner__{self.room_id}', {'type': "ban_participant", "code": code, "nick": nick}) else: user = await self.get_user(code) - print('USER', user, code) + if self.scope['user'] == user: await self.del_user(code) await self.channel_layer.group_send(self.room_id, {'type': "ban_participant", "code": code, "nick": nick}) @@ -346,7 +346,7 @@ class RoomConsumer(AsyncWebsocketConsumer): id_code=self.room.id_code)) != 0 async def disconnect(self, close_code): - print('Disconnect') + if self.waiter == False and self.user != None: await self.disconnect_participant() await self.channel_layer.group_discard(self.room_id, self.channel_name) diff --git a/backend/api/room/models.py b/backend/api/room/models.py index 4cd8e866..7c33c3aa 100644 --- a/backend/api/room/models.py +++ b/backend/api/room/models.py @@ -115,12 +115,10 @@ class RoomManager(models.Manager): return None waiters = room.waiters - print('NEWNAME', new_name, new_name in list( - map(lambda p: p['nick'], waiters)), list(map(lambda p: p['nick'], waiters)), waiters) if new_name in list(map(lambda p: p['nick'], waiters)): return None - print('PASSED') + if code == None: while True: code = ''.join(random.choices(string.ascii_uppercase, k=6)) @@ -232,7 +230,7 @@ class ParcoursManager(models.Manager): challengers = parcours.challenger challengers = [c for c in challengers if c['code'] == user_code] if len(challengers) == 0: - print('NOPE', user_code) + return None c = challengers[0] return {'value': round(functools.reduce(lambda a, b: a+b, [e['note']['value'] for e in c['exos']])/len(c['exos']), 2), 'total': c['exos'][0]['note']['total']} diff --git a/backend/api/room/serializers.py b/backend/api/room/serializers.py index 5ec276fd..6191fb1e 100644 --- a/backend/api/room/serializers.py +++ b/backend/api/room/serializers.py @@ -105,7 +105,7 @@ class ParcoursCreateSerializer(serializers.ModelSerializer): 'timer', 'exercices', 'success_condition') # + challenger ? def validate_exercices(self, value): - print('EXOS', value) + if len(value) == 0: raise serializers.ValidationError('Aucun exercice séléctioné') return value diff --git a/backend/api/room/views.py b/backend/api/room/views.py index fe786b61..ca664df2 100644 --- a/backend/api/room/views.py +++ b/backend/api/room/views.py @@ -104,7 +104,7 @@ class RoomAPI(APIView): else: return Response({'error': 'Unauthorized'}, status=status.HTTP_401_UNAUTHORIZED) else: - print('CLIENTID', clientId, room.owner) + if clientId == room.owner['clientId']: room.delete() else: @@ -122,7 +122,7 @@ class RoomAPI(APIView): room = Room.objects.filter(id_code=code)[0] except IndexError: return Response({'error': 'No room'}, status=status.HTTP_502_BAD_GATEWAY) - # print(room) + if 'roomsJoined' not in request.session: request.session['roomsJoined'] = [] elif 'roomsJoined' in request.session: @@ -224,7 +224,7 @@ def getEditParcours(request): @api_view(['POST']) def lockRoom(request): - print('DATA', request.data) + room_id = request.data['id_code'] if request.user.is_authenticated: @@ -245,7 +245,7 @@ def lockRoom(request): @api_view(['POST']) def publicResultToggler(request): - print('DATA', request.data) + room_id = request.data['id_code'] if request.user.is_authenticated: @@ -267,7 +267,7 @@ def publicResultToggler(request): @api_view(['POST']) def changeRoomName(request): - print('DATA', request.data) + room_id = request.data['id_code'] if request.user.is_authenticated: @@ -396,10 +396,10 @@ class ChallengeAPI(APIView): filter(lambda c: c['order'] == a['order'], correctionExos['exos']))[0] correctInputs = exoCorrect['inputs'] - print('correcti', correctInputs) + studentsInput = sorted( a['inputs'], key=lambda i: i.get('order')) - print('correctiinnnn\n\n', studentsInput) + corrigedInputs = [{**inp, "value": studentsInput[inp['order']]['value'], "isCorrect": (str(studentsInput[inp['order']]['value']) == str( inp['correction'])) if inp['correction'] != "" else None} for inp in correctInputs] corrigedList.append({**a, 'inputs': corrigedInputs}) @@ -486,7 +486,7 @@ class ParcoursAPI(APIView): id_code = request.data.get('id_code') code = request.data.get('code') - print(f'id_code={id_code};code={code}') + parcours = Parcours.objects.filter(id_code=id_code) if len(parcours) == 0: @@ -527,7 +527,7 @@ class ParcoursAPI(APIView): if not serial.is_valid(): return Response(serial.errors, status=status.HTTP_400_BAD_REQUEST) parcours = serial.create(serial.validated_data) - print('PARCOURS', parcours) + layer = get_channel_layer() async_to_sync(layer.group_send)(room_code, { 'type': 'new_parcours', 'parcours': ParcoursFullSerializer(parcours).data}) From 58646f7cd949520f56c79ee134dcb3e594dab427 Mon Sep 17 00:00:00 2001 From: Kilton937342 Date: Fri, 24 Jun 2022 19:51:47 +0200 Subject: [PATCH 3/4] Request get exos --- backend/api/exercices/views.py | 6 +++++- frontend/components/exos/ModalCard.jsx | 6 ++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/backend/api/exercices/views.py b/backend/api/exercices/views.py index 55810aed..6380d4e8 100644 --- a/backend/api/exercices/views.py +++ b/backend/api/exercices/views.py @@ -70,7 +70,11 @@ class ExerciceAPI(APIView): userExosListSorted = userExos if code != 'all' and code != 'pdf' and code != "web": - exo = Exercice.objects.get(id_code=code) + try: + exo = Exercice.objects.get(id_code=code) + except: + exo = None + return Response({'error': "Not found"}, status= status.HTTP_404_NOT_FOUND) isUser = False if request.user == exo.author: isUser = True diff --git a/frontend/components/exos/ModalCard.jsx b/frontend/components/exos/ModalCard.jsx index b5bf16b6..f3dbf5f3 100644 --- a/frontend/components/exos/ModalCard.jsx +++ b/frontend/components/exos/ModalCard.jsx @@ -29,14 +29,16 @@ export default function ModalCard({ step, onClose, onDelete, tags, queryKey }) { const alert = useAlert(); const [edit, setEdit] = useState(false); const queryClient = useQueryClient(); - + const { isLoading: isUpdating, isFetching, data: step_data, } = useQuery( ["exo-data", step.id_code], - async () => await getExos(step.id_code), + async () => await getExos(step.id_code).catch(() => { + notificationService.error('Erreur', "Exercice introuvable") + }), { initialData: step, refetchOnWindowFocus: !edit } ); const [selected, setSelected] = useState([]); From 4c2cf910a4da0a0d945cb5643700c3e7433b5e3e Mon Sep 17 00:00:00 2001 From: Kilton937342 Date: Fri, 24 Jun 2022 20:04:50 +0200 Subject: [PATCH 4/4] e --- backend/api/exercices/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/api/exercices/views.py b/backend/api/exercices/views.py index 6380d4e8..68083ddf 100644 --- a/backend/api/exercices/views.py +++ b/backend/api/exercices/views.py @@ -73,8 +73,8 @@ class ExerciceAPI(APIView): try: exo = Exercice.objects.get(id_code=code) except: - exo = None return Response({'error': "Not found"}, status= status.HTTP_404_NOT_FOUND) + isUser = False if request.user == exo.author: isUser = True