Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion csc/admin.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from django.contrib import admin
from .models import *
from .models import FossCategory,CertifiateCategories,CategoryCourses,CSCFossMdlCourses
# Register your models here.
admin.site.register(FossCategory)
admin.site.register(CertifiateCategories)
admin.site.register(CategoryCourses)
admin.site.register(CSCFossMdlCourses)

6 changes: 5 additions & 1 deletion csc/api/utility.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@
from csc.utils import is_user_vle, is_user_student
from django.template.loader import render_to_string
def send_pwd_mail(u):
print(u.username)
pwd = ''.join(random.choices(string.ascii_letters,k=10))

print(pwd)
u.set_password(pwd)
u.save()

from_email = getattr(settings, "NO_REPLY_MAIL", "[email protected]")
print(from_email)
subject = "Login credentials for Spoken Tutorial - CSC"
if is_user_student(u):
message = f"""
Expand All @@ -36,6 +38,7 @@ def send_pwd_mail(u):
"""
path = 'student_mail_template.html'
if is_user_vle(u):
print('USER IS VLE')
message = f"""
Dear {u.get_full_name()},

Expand Down Expand Up @@ -69,6 +72,7 @@ def send_pwd_mail(u):
fail_silently=False,
html_message = html_content
)
print("***************mail send******")
except Exception as e:
print(e)
print(f"Failed to send mail to user : {u.email}")
Expand Down
11 changes: 10 additions & 1 deletion csc/decorators.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from email import message
from django.contrib import messages
from django.core.exceptions import PermissionDenied
from .utils import is_user_vle,is_user_student
from .utils import is_user_vle,is_user_student,is_csc_team_role

# decorator
def is_vle(view_func):
Expand All @@ -24,3 +24,12 @@ def wrapper(request,*args,**kwargs):
raise PermissionDenied()
return wrapper

def is_csc_team(view_func):
def wrapper(request,*args,**kwargs):
# ToDo : Role for VLE in group
if is_csc_team_role(request.user):
return view_func(request,*args,**kwargs)
else:
messages.add_message(request,messages.INFO,'Access denied')
raise PermissionDenied()
return wrapper
39 changes: 39 additions & 0 deletions csc/migrations/0017_auto_20221006_1045.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Generated by Django 3.0.3 on 2022-10-06 05:15

import datetime
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('csc', '0016_auto_20220930_1304'),
]

operations = [
migrations.RemoveField(
model_name='test',
name='test_name',
),
migrations.AddField(
model_name='test',
name='participant_count',
field=models.IntegerField(default=10),
preserve_default=False,
),
migrations.AddField(
model_name='test',
name='status',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='student',
name='date_of_registration',
field=models.DateField(default=datetime.date(2022, 10, 6)),
),
migrations.AlterField(
model_name='test',
name='publish',
field=models.BooleanField(default=True),
),
]
18 changes: 18 additions & 0 deletions csc/migrations/0018_test_invigilator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.0.3 on 2022-10-06 06:10

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('csc', '0017_auto_20221006_1045'),
]

operations = [
migrations.AddField(
model_name='test',
name='invigilator',
field=models.ManyToManyField(blank=True, null=True, to='csc.Invigilator'),
),
]
18 changes: 18 additions & 0 deletions csc/migrations/0019_auto_20221006_1214.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.0.3 on 2022-10-06 06:44

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('csc', '0018_test_invigilator'),
]

operations = [
migrations.AlterField(
model_name='test',
name='participant_count',
field=models.IntegerField(blank=True, null=True),
),
]
19 changes: 19 additions & 0 deletions csc/migrations/0020_auto_20221006_1632.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Generated by Django 3.0.3 on 2022-10-06 11:02

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('csc', '0019_auto_20221006_1214'),
]

operations = [
migrations.AlterField(
model_name='test',
name='vle',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='csc.VLE'),
),
]
115 changes: 115 additions & 0 deletions csc/migrations/0021_auto_20221102_1327.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Generated by Django 3.0.3 on 2022-11-02 07:57

import datetime
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('csc', '0020_auto_20221006_1632'),
]

operations = [
migrations.CreateModel(
name='FOSSVLEView',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('foss', models.CharField(max_length=256)),
('vle_id', models.IntegerField()),
],
options={
'db_table': 'foss_vle',
'managed': False,
},
),
migrations.RemoveField(
model_name='test',
name='note_invigilator',
),
migrations.RemoveField(
model_name='test',
name='note_student',
),
migrations.AddField(
model_name='invigilator',
name='password_mail_sent',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='student',
name='mdl_mail_sent',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='invigilator',
name='phone',
field=models.CharField(blank=True, max_length=32, null=True),
),
migrations.AlterField(
model_name='invigilator',
name='user',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='invi', to=settings.AUTH_USER_MODEL),
),
migrations.AddField(
model_name='invigilator',
name='vle',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='invig', to='csc.VLE'),
preserve_default=False,
),
migrations.AlterField(
model_name='student',
name='date_of_registration',
field=models.DateField(default=datetime.date(2022, 11, 2)),
),
migrations.AlterField(
model_name='test',
name='status',
field=models.PositiveIntegerField(default=0),
),
migrations.AlterUniqueTogether(
name='invigilator',
unique_together={('user', 'vle')},
),
migrations.CreateModel(
name='CSCFossMdlCourses',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('mdlcourse_id', models.PositiveIntegerField()),
('mdlquiz_id', models.PositiveIntegerField()),
('foss', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='cscfoss', to='csc.FossCategory')),
('testfoss', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='testfoss', to='csc.FossCategory')),
],
),
migrations.RemoveField(
model_name='invigilator',
name='added_by',
),
migrations.RemoveField(
model_name='invigilator',
name='vle',
),
migrations.CreateModel(
name='CSCTestAtttendance',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('mdluser_id', models.PositiveIntegerField()),
('mdlcourse_id', models.PositiveIntegerField(default=0)),
('mdlquiz_id', models.PositiveIntegerField(default=0)),
('mdlattempt_id', models.PositiveIntegerField(default=0)),
('status', models.PositiveSmallIntegerField(default=0)),
('mdlgrade', models.DecimalField(decimal_places=5, default=0.0, max_digits=12)),
('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)),
('student', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='csc.Student')),
('test', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='csc.Test')),
],
options={
'verbose_name': 'Test Attendance',
'unique_together': {('test', 'mdluser_id')},
},
),
]
20 changes: 20 additions & 0 deletions csc/migrations/0022_invigilator_vle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 3.0.3 on 2022-11-02 08:08

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('csc', '0021_auto_20221102_1327'),
]

operations = [
migrations.AddField(
model_name='invigilator',
name='vle',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='invig', to='csc.VLE'),
preserve_default=False,
),
]
Loading