Adding Custom components in a column - MFE gradebook

Hi, im working with Gradebook MFE and i want to add a checkbox for student presence, i already know how to make this in frontend, but i dont have any ideia how it comunicates with openedx
Here is a sample of what i already did:

1 - Can i use a checkbox to mark the student presence?
2 - I think that i need to create some field in django to store this value, how can i communicate with django?

thank you in advance

Hi @suigh, I’m not sure I understand what you want or what problem you’re trying to solve.

This is what I’m assuming from your question, please correct me if I’m wrong anywhere:

  • You are using the Open edX software to run a class that meets at least partially in person
  • You would like to be able to mark whether or not someone has attended class for a particular day

Yes, im using openedx to run a class in person!
I know that is not the usualy function for openedx, but im not the one who make the rules :laughing:

Only the teacher will be able to mark or dismark the checkbox, and also yes! the teacher will mark if the student is in the class or not in particular day.

And thinking about it now, it seems that i will have to change my approach, something like a link that opens a modal that have a calendar to mark presence

Yeah, unfortunately I haven’t heard of that capability although you could make a new post in the Educators category (Educators - Open edX discussions) asking how other educators solve this problem.

You could consider a bit of a hack, using the Staff Graded Assignment block What is Staff Graded Assignment? — Public documentation and having a quick question written on the board at the beginning of class for students to answer. You could look at the timestamp of submission as well to not accept answers after the class period is over, or restrict access to the section (via Studio) after classtime is over.

It’s not a great solution, but has the benefit of already existing. Sorry I can’t help more! The only other result I could find on the forums also has no answer. Among the results of a course of Open edX, are there any students' attendance records? and this blog post talks about attendance a little bit: How to Create Blended Learning in your Open edX E-Learning Instance - Open edX

1 Like

Thank you so much, @sarina.
I’ll try for a few more days to find a way to do this, if I don’t succeed I’ll suggest your solution, which is much simpler than what I’m trying to do, but equally functional

It’s an interesting question, and I admit I don’t know much about the gradebook MFE. I just had a few minutes to look at it more deeply.

@farhaanbukhsh - do you have a moment to weigh in on if the ability to modify grades in the gradebook MFE could be extended to implement some sort of “attendance” or “instructor-led checkoff” grading?

1 Like

Great news!
Me and my colleague, who knows a lot more about react than me, were trying and managed to figure out how to add components to columns, in fact it is possible to add any component:

it’s a bit of work, but ill try to explain

  1. First things first, you have to add the headings:
    in that file you can add many headings you want
  2. Second, you have to add your headers in src/data/selectors/grades.js more precisely in const headingMapper
  3. Now, in src/components/GradesView/GradebookTable/hooks.jsx you have to edit mapHeaders and mapRows, and mapRows is the function that populates the rows, and you can put anything you want in there.

Now i’ll struggle in how to communicate with django to save the values i want.

I’ll create some field to store the value of presence

Well, i think it is it. I’ll report the next steps here, and i hope i can help someone with this too

thanks! =)

@suigh You’re doing excellent work! If you succeed, please consider putting the code in a GitHub repository. If it’s not confidential, it could benefit other members.

I also wanted to ask why you chose the student grade-book, as it primarily shows grades in an absolute manner.

Have you considered creating a new custom Django app or XBlock as well?

Kudos to you and your colleagues! :raised_hands: :blush:

Of course! When i end this ill push!

For this specific course, attendance is part of the grade. But it is a pertinent question indeed. To be honest, I didn’t think much about which of the MFEs I was going to put this in.

My previous experiences creating apps for openedx were a little traumatic xD
I saw in the MFE, perhaps, a lighter way of dealing with this demand

Thanks, @sarina for pointing me to the post.

Hey @suigh, First of all kudos to the things you are trying. From the description what I can understand is you need a way to mark attendance for a user. The requirement is:

  1. The instructor can record the attendance of the learners.
  2. Store the attendance so that we can calculate it periodically.

I found this xblock GitHub - umar221b/attendancerecord-xblock: An Xblock for OpenEdx that allows recording Attendance for Hybrid courses.
this is not maintained and it doesn’t work out of the box but they have a similar idea as you.

I also feel that the attendance functionality belongs to the instructor dashboard and I do feel that it should be a part of the platform. But maybe we can start with implementing it as a xblock. I can try to help you with that.

Hey @farhaanbukhsh

I’m reaching out to discuss the implementation of a Relative Grading System in the same page, with an added focus on incorporating mean and variance calculations.

It appears that the current version doesn’t support this feature, and I’m eager to explore solutions. Alongside, I’m interested in integrating mean and variance calculations into our grading system to better understand student performance distributions.

Name Relative Greatness Score Grade Top Percentage
Yagnesh 10 A Top 20%
Prem 9.5 A Top 20%
Manish 9 A Top 20%
Ram 8.5 A Top 20%
Dev 7.5 B Top 30%

Are there any existing plugins or resources within the Open edX ecosystem that could assist in integrating this comprehensive feature set?

If not, I’m considering developing a custom solution. Would you recommend creating a custom XBlock or a Django app for this purpose?

If you wish, I would be happy to create a new topic on the forum. Just let me know, and I’ll do the same. :blush:

@suigh & @suigh

i wil be more happy as well here.

Thanks @farhaanbukhsh, ill study how to implement this xblock in appropriate time. Now me and my team decided to use other database to store our values, but when i finish this task i can deal with the xblock. Also, makes sense put this in instructor dashboard, i will talk about it with my team.

For now, my solution will be as simple as possible, it means that i will make a request to whatever api with a simple csv with my values

thank you all! =)