Tested and fix some bugs: One bug found not fixed: pub/sub crashing sometimes. Revert refactor?

master
Corentin LEMAIRE 6 months ago
parent 0c9acc7f60
commit 1602d83163

@ -102,6 +102,12 @@ As a teacher, you can't manage students registered to your course.
The search looks for title, description and level fo the course. There's no advanced search for the moment. The search looks for title, description and level fo the course. There's no advanced search for the moment.
---
### Pub/sub
Sometimes, I really don't know why, some message published does not appear at all to notifications page. It concerns around 20 % of all messages.
## Bugs ## Bugs
If you see any bugs, please tell me. I really tried my best by testing every feature every time at every change, but I can miss some tricky things. So please, feel free to mail me at corentin.lemaire@etu.uca.fr to report any bug! If you see any bugs, please tell me. I really tried my best by testing every feature every time at every change, but I can miss some tricky things. So please, feel free to mail me at corentin.lemaire@etu.uca.fr to report any bug!

@ -73,7 +73,15 @@ def register_redis(name, role):
# Allows a user to login # Allows a user to login
def login_redis(name, role): def login_redis(name, role):
# We just check if the user exists # We just check if the user exists
return getPersonIdNameRole(name, role) person_id = getPersonIdNameRole(name, role)
# Checking if the person_id is not False or ""
if not person_id:
# Not a person id
return False
# Getting the person associating with the person id
return getPerson(person_id.split(":")[1])
# Allows to change the profile of a user. person_id = current person id, name = name requested, role = role requested # Allows to change the profile of a user. person_id = current person id, name = name requested, role = role requested
def changeProfile_redis(person_id, name, role): def changeProfile_redis(person_id, name, role):
@ -392,9 +400,18 @@ def get_message(*courses_id):
# Listening for new messages # Listening for new messages
for message in pub_sub.listen(): for message in pub_sub.listen():
# Checking if the message if a message as we published # Checking if the message if a message as we published
if message["type"] != 'pmessage': if message.get("type", "") != 'pmessage':
# Not a message that is interesting for us # Not a message that is interesting for us
continue continue
# If not a dict, continuing to avoid problems
if not isinstance(message, dict):
continue
# When the data or channel is null
if not message.get("data", "") or not message.get("channel", ""):
# Just continuing
continue
# Found an interesting message! # Found an interesting message!
break break
# Returning this message # Returning this message

@ -114,10 +114,13 @@ def courses(request, error_message="", success_message=""):
return render(request, 'login.html', {'person': Person(name="", role=""), "error_message": "You must login!"}) return render(request, 'login.html', {'person': Person(name="", role=""), "error_message": "You must login!"})
# Getting up the person id (only the id part without person:) # Getting up the person id (only the id part without person:)
person_id = getPersonId(person).split(":")[1] person_id = getPersonId(person)
if not person_id:
# Person id not found
return render(request, 'courses.html', {'person': person, 'courses': courses, 'error_message': 'Person id not found.'})
# Getting all courses of the person (if he's a teacher, taking all courses where he's teacher ; if he's a student, taking all courses where he's registered to) # Getting all courses of the person (if he's a teacher, taking all courses where he's teacher ; if he's a student, taking all courses where he's registered to)
courses = getCoursesFromPerson(person_id) courses = getCoursesFromPerson(person_id.split(":")[1])
return render(request, 'courses.html', {'person': person, 'courses': courses, 'error_message': error_message, 'success_message': success_message}) return render(request, 'courses.html', {'person': person, 'courses': courses, 'error_message': error_message, 'success_message': success_message})
# Called after filled the update profile form # Called after filled the update profile form
@ -285,8 +288,9 @@ def create_course_form(request):
# Only handling POST request # Only handling POST request
if request.method == 'POST': if request.method == 'POST':
# Getting information from the form # Getting information from the form
course_title = request.POST['title'] # Replacing ' by ` because it breaks everything
course_summary = request.POST['summary'] course_title = request.POST['title'].replace('\'', '`').replace(':', '')
course_summary = request.POST['summary'].replace('\'', '`').replace(':', '')
course_level = request.POST['level'] course_level = request.POST['level']
course_places = request.POST['places'] course_places = request.POST['places']
@ -321,8 +325,8 @@ def update_course_form(request, course_id):
# Only handling POST request # Only handling POST request
if request.method == 'POST': if request.method == 'POST':
# Retriving the POST information # Retriving the POST information
course_title = request.POST['title'] course_title = request.POST['title'].replace('\'', '`').replace(':', '')
course_summary = request.POST['summary'] course_summary = request.POST['summary'].replace('\'', '`').replace(':', '')
course_level = request.POST['level'] course_level = request.POST['level']
course_places = request.POST['places'] course_places = request.POST['places']

Loading…
Cancel
Save