Resolve conflicts
This commit is contained in:
commit
561d820af8
@ -2,7 +2,7 @@ from django.db import models
|
|||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.contrib.auth.models import AbstractUser, UserManager
|
from django.contrib.auth.models import AbstractUser, UserManager
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
@ -11,31 +11,31 @@ from .validators import ASCIIUsernameValidator
|
|||||||
|
|
||||||
|
|
||||||
# LEVEL_COURSE = "Level course"
|
# LEVEL_COURSE = "Level course"
|
||||||
BACHELOR_DEGREE = "Bachelor"
|
BACHELOR_DEGREE = _("Bachelor")
|
||||||
MASTER_DEGREE = "Master"
|
MASTER_DEGREE = _("Master")
|
||||||
|
|
||||||
LEVEL = (
|
LEVEL = (
|
||||||
# (LEVEL_COURSE, "Level course"),
|
# (LEVEL_COURSE, "Level course"),
|
||||||
(BACHELOR_DEGREE, "Bachelor Degree"),
|
(BACHELOR_DEGREE, _("Bachelor Degree")),
|
||||||
(MASTER_DEGREE, "Master Degree"),
|
(MASTER_DEGREE, _("Master Degree")),
|
||||||
)
|
)
|
||||||
|
|
||||||
FATHER = "Father"
|
FATHER = _("Father")
|
||||||
MOTHER = "Mother"
|
MOTHER = _("Mother")
|
||||||
BROTHER = "Brother"
|
BROTHER = _("Brother")
|
||||||
SISTER = "Sister"
|
SISTER = _("Sister")
|
||||||
GRAND_MOTHER = "Grand mother"
|
GRAND_MOTHER = _("Grand mother")
|
||||||
GRAND_FATHER = "Grand father"
|
GRAND_FATHER = _("Grand father")
|
||||||
OTHER = "Other"
|
OTHER = _("Other")
|
||||||
|
|
||||||
RELATION_SHIP = (
|
RELATION_SHIP = (
|
||||||
(FATHER, "Father"),
|
(FATHER, _("Father")),
|
||||||
(MOTHER, "Mother"),
|
(MOTHER, _("Mother")),
|
||||||
(BROTHER, "Brother"),
|
(BROTHER, _("Brother")),
|
||||||
(SISTER, "Sister"),
|
(SISTER, _("Sister")),
|
||||||
(GRAND_MOTHER, "Grand mother"),
|
(GRAND_MOTHER, _("Grand mother")),
|
||||||
(GRAND_FATHER, "Grand father"),
|
(GRAND_FATHER, _("Grand father")),
|
||||||
(OTHER, "Other"),
|
(OTHER, _("Other")),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ class CustomUserManager(UserManager):
|
|||||||
return self.model.objects.filter(is_superuser=True).count()
|
return self.model.objects.filter(is_superuser=True).count()
|
||||||
|
|
||||||
|
|
||||||
GENDERS = (("M", "Male"), ("F", "Female"))
|
GENDERS = ((_("M"), _("Male")), (_("F"), _("Female")))
|
||||||
|
|
||||||
|
|
||||||
class User(AbstractUser):
|
class User(AbstractUser):
|
||||||
@ -100,13 +100,13 @@ class User(AbstractUser):
|
|||||||
@property
|
@property
|
||||||
def get_user_role(self):
|
def get_user_role(self):
|
||||||
if self.is_superuser:
|
if self.is_superuser:
|
||||||
role = "Admin"
|
role = _("Admin")
|
||||||
elif self.is_student:
|
elif self.is_student:
|
||||||
role = "Student"
|
role = _("Student")
|
||||||
elif self.is_lecturer:
|
elif self.is_lecturer:
|
||||||
role = "Lecturer"
|
role = _("Lecturer")
|
||||||
elif self.is_parent:
|
elif self.is_parent:
|
||||||
role = "Parent"
|
role = _("Parent")
|
||||||
|
|
||||||
return role
|
return role
|
||||||
|
|
||||||
|
|||||||
@ -52,4 +52,4 @@ class StudentFilterTestCase(TestCase):
|
|||||||
|
|
||||||
def test_program_filter(self):
|
def test_program_filter(self):
|
||||||
filter_set = StudentFilter(data={"program__title": "Computer Science"})
|
filter_set = StudentFilter(data={"program__title": "Computer Science"})
|
||||||
self.assertEqual(len(filter_set.qs), 1)
|
self.assertEqual(len(filter_set.qs), 3)
|
||||||
|
|||||||
0
accounts/translation.py
Normal file
0
accounts/translation.py
Normal file
@ -35,6 +35,7 @@ AUTH_USER_MODEL = "accounts.User"
|
|||||||
# Application definition
|
# Application definition
|
||||||
|
|
||||||
DJANGO_APPS = [
|
DJANGO_APPS = [
|
||||||
|
"modeltranslation",
|
||||||
"jet.dashboard",
|
"jet.dashboard",
|
||||||
"jet",
|
"jet",
|
||||||
"django.contrib.admin",
|
"django.contrib.admin",
|
||||||
@ -75,6 +76,7 @@ MIDDLEWARE = [
|
|||||||
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
||||||
"django.contrib.messages.middleware.MessageMiddleware",
|
"django.contrib.messages.middleware.MessageMiddleware",
|
||||||
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
||||||
|
"django.middleware.locale.LocaleMiddleware",
|
||||||
"whitenoise.middleware.WhiteNoiseMiddleware", # whitenoise to serve static files
|
"whitenoise.middleware.WhiteNoiseMiddleware", # whitenoise to serve static files
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -140,6 +142,16 @@ AUTH_PASSWORD_VALIDATORS = [
|
|||||||
# Internationalization
|
# Internationalization
|
||||||
# https://docs.djangoproject.com/en/2.2/topics/i18n/
|
# https://docs.djangoproject.com/en/2.2/topics/i18n/
|
||||||
|
|
||||||
|
gettext = lambda s: s
|
||||||
|
LANGUAGES = (
|
||||||
|
('en', gettext('English')),
|
||||||
|
('ru', gettext('Russia')),
|
||||||
|
)
|
||||||
|
LOCALE_PATHS = (
|
||||||
|
os.path.join(BASE_DIR, 'locale'),
|
||||||
|
)
|
||||||
|
|
||||||
|
MODELTRANSLATION_DEFAULT_LANGUAGE = 'en'
|
||||||
LANGUAGE_CODE = "en-us"
|
LANGUAGE_CODE = "en-us"
|
||||||
|
|
||||||
TIME_ZONE = "UTC"
|
TIME_ZONE = "UTC"
|
||||||
@ -237,3 +249,5 @@ STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"
|
|||||||
|
|
||||||
STUDENT_ID_PREFIX = config("STUDENT_ID_PREFIX", "ugr")
|
STUDENT_ID_PREFIX = config("STUDENT_ID_PREFIX", "ugr")
|
||||||
LECTURER_ID_PREFIX = config("LECTURER_ID_PREFIX", "lec")
|
LECTURER_ID_PREFIX = config("LECTURER_ID_PREFIX", "lec")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,8 @@ from django.urls import path, include
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.conf.urls.static import static
|
from django.conf.urls.static import static
|
||||||
from django.views import defaults as default_views
|
from django.views import defaults as default_views
|
||||||
|
from django.conf.urls.i18n import i18n_patterns
|
||||||
|
from django.views.i18n import JavaScriptCatalog
|
||||||
|
|
||||||
admin.site.site_header = "Dj-LMS Admin"
|
admin.site.site_header = "Dj-LMS Admin"
|
||||||
|
|
||||||
@ -20,8 +22,28 @@ urlpatterns = [
|
|||||||
path("payments/", include("payments.urls")),
|
path("payments/", include("payments.urls")),
|
||||||
path("accounts/api/", include("accounts.api.urls", namespace="accounts-api")),
|
path("accounts/api/", include("accounts.api.urls", namespace="accounts-api")),
|
||||||
path("admin/", admin.site.urls),
|
path("admin/", admin.site.urls),
|
||||||
|
path("i18n/", include('django.conf.urls.i18n')),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
urlpatterns += i18n_patterns(
|
||||||
|
path("jsi18n/", JavaScriptCatalog.as_view(), name='javascript-catalog'),
|
||||||
|
path("", include("core.urls")),
|
||||||
|
path("jet/", include("jet.urls", "jet")), # Django JET URLS
|
||||||
|
path(
|
||||||
|
"jet/dashboard/", include("jet.dashboard.urls", "jet-dashboard")
|
||||||
|
), # Django JET dashboard URLS
|
||||||
|
path("accounts/", include("accounts.urls")),
|
||||||
|
path("programs/", include("course.urls")),
|
||||||
|
path("result/", include("result.urls")),
|
||||||
|
path("search/", include("search.urls")),
|
||||||
|
path("quiz/", include("quiz.urls")),
|
||||||
|
path("payments/", include("payments.urls")),
|
||||||
|
path("accounts/api/", include("accounts.api.urls", namespace="accounts-api")),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
||||||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
|
|||||||
@ -2,8 +2,11 @@ from django.contrib import admin
|
|||||||
from django.contrib.auth.models import Group
|
from django.contrib.auth.models import Group
|
||||||
|
|
||||||
from .models import Session, Semester, NewsAndEvents
|
from .models import Session, Semester, NewsAndEvents
|
||||||
|
from modeltranslation.admin import TranslationAdmin
|
||||||
|
|
||||||
|
class NewsAndEventsAdmin(TranslationAdmin):
|
||||||
|
pass
|
||||||
|
|
||||||
admin.site.register(Semester)
|
admin.site.register(Semester)
|
||||||
admin.site.register(Session)
|
admin.site.register(Session)
|
||||||
admin.site.register(NewsAndEvents)
|
admin.site.register(NewsAndEvents, NewsAndEventsAdmin)
|
||||||
|
|||||||
@ -0,0 +1,33 @@
|
|||||||
|
# Generated by Django 4.0.8 on 2024-04-15 13:36
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('core', '0005_activitylog'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='newsandevents',
|
||||||
|
name='summary_en',
|
||||||
|
field=models.TextField(blank=True, max_length=200, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='newsandevents',
|
||||||
|
name='summary_ru',
|
||||||
|
field=models.TextField(blank=True, max_length=200, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='newsandevents',
|
||||||
|
name='title_en',
|
||||||
|
field=models.CharField(max_length=200, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='newsandevents',
|
||||||
|
name='title_ru',
|
||||||
|
field=models.CharField(max_length=200, null=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -3,23 +3,25 @@ from django.urls import reverse
|
|||||||
from django.core.validators import FileExtensionValidator
|
from django.core.validators import FileExtensionValidator
|
||||||
from django.contrib.auth.models import AbstractUser
|
from django.contrib.auth.models import AbstractUser
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
NEWS = "News"
|
|
||||||
EVENTS = "Event"
|
NEWS = _("News")
|
||||||
|
EVENTS = _("Event")
|
||||||
|
|
||||||
POST = (
|
POST = (
|
||||||
(NEWS, "News"),
|
(NEWS, _("News")),
|
||||||
(EVENTS, "Event"),
|
(EVENTS, _("Event")),
|
||||||
)
|
)
|
||||||
|
|
||||||
FIRST = "First"
|
FIRST = _("First")
|
||||||
SECOND = "Second"
|
SECOND = _("Second")
|
||||||
THIRD = "Third"
|
THIRD = _("Third")
|
||||||
|
|
||||||
SEMESTER = (
|
SEMESTER = (
|
||||||
(FIRST, "First"),
|
(FIRST, _("First")),
|
||||||
(SECOND, "Second"),
|
(SECOND, _("Second")),
|
||||||
(THIRD, "Third"),
|
(THIRD, _("Third")),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
8
core/translation.py
Normal file
8
core/translation.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
from modeltranslation.translator import register, TranslationOptions
|
||||||
|
from .models import NewsAndEvents, ActivityLog
|
||||||
|
|
||||||
|
@register(NewsAndEvents)
|
||||||
|
class NewsAndEventsTranslationOptions(TranslationOptions):
|
||||||
|
fields = ('title', 'summary',)
|
||||||
|
empty_values=None
|
||||||
|
|
||||||
@ -2,9 +2,16 @@ from django.contrib import admin
|
|||||||
from django.contrib.auth.models import Group
|
from django.contrib.auth.models import Group
|
||||||
|
|
||||||
from .models import Program, Course, CourseAllocation, Upload
|
from .models import Program, Course, CourseAllocation, Upload
|
||||||
|
from modeltranslation.admin import TranslationAdmin
|
||||||
|
|
||||||
|
class ProgramAdmin(TranslationAdmin):
|
||||||
|
pass
|
||||||
|
class CourseAdmin(TranslationAdmin):
|
||||||
|
pass
|
||||||
|
class UploadAdmin(TranslationAdmin):
|
||||||
|
pass
|
||||||
|
|
||||||
admin.site.register(Program)
|
admin.site.register(Program, ProgramAdmin)
|
||||||
admin.site.register(Course)
|
admin.site.register(Course, CourseAdmin)
|
||||||
admin.site.register(CourseAllocation)
|
admin.site.register(CourseAllocation)
|
||||||
admin.site.register(Upload)
|
admin.site.register(Upload, UploadAdmin)
|
||||||
|
|||||||
@ -2,7 +2,6 @@ from django import forms
|
|||||||
from accounts.models import User
|
from accounts.models import User
|
||||||
from .models import Program, Course, CourseAllocation, Upload, UploadVideo
|
from .models import Program, Course, CourseAllocation, Upload, UploadVideo
|
||||||
|
|
||||||
|
|
||||||
class ProgramForm(forms.ModelForm):
|
class ProgramForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Program
|
model = Program
|
||||||
@ -12,8 +11,6 @@ class ProgramForm(forms.ModelForm):
|
|||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.fields["title"].widget.attrs.update({"class": "form-control"})
|
self.fields["title"].widget.attrs.update({"class": "form-control"})
|
||||||
self.fields["summary"].widget.attrs.update({"class": "form-control"})
|
self.fields["summary"].widget.attrs.update({"class": "form-control"})
|
||||||
|
|
||||||
|
|
||||||
class CourseAddForm(forms.ModelForm):
|
class CourseAddForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Course
|
model = Course
|
||||||
|
|||||||
@ -0,0 +1,33 @@
|
|||||||
|
# Generated by Django 4.0.8 on 2024-04-12 11:07
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('course', '0007_alter_upload_file_alter_uploadvideo_video'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='program',
|
||||||
|
name='summary_en',
|
||||||
|
field=models.TextField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='program',
|
||||||
|
name='summary_ru',
|
||||||
|
field=models.TextField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='program',
|
||||||
|
name='title_en',
|
||||||
|
field=models.CharField(max_length=150, null=True, unique=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='program',
|
||||||
|
name='title_ru',
|
||||||
|
field=models.CharField(max_length=150, null=True, unique=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -0,0 +1,63 @@
|
|||||||
|
# Generated by Django 4.0.8 on 2024-04-14 15:28
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('course', '0008_program_summary_en_program_summary_ru_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='course',
|
||||||
|
name='summary_en',
|
||||||
|
field=models.TextField(blank=True, max_length=200, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='course',
|
||||||
|
name='summary_ru',
|
||||||
|
field=models.TextField(blank=True, max_length=200, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='course',
|
||||||
|
name='title_en',
|
||||||
|
field=models.CharField(max_length=200, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='course',
|
||||||
|
name='title_ru',
|
||||||
|
field=models.CharField(max_length=200, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='upload',
|
||||||
|
name='title_en',
|
||||||
|
field=models.CharField(max_length=100, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='upload',
|
||||||
|
name='title_ru',
|
||||||
|
field=models.CharField(max_length=100, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='uploadvideo',
|
||||||
|
name='summary_en',
|
||||||
|
field=models.TextField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='uploadvideo',
|
||||||
|
name='summary_ru',
|
||||||
|
field=models.TextField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='uploadvideo',
|
||||||
|
name='title_en',
|
||||||
|
field=models.CharField(max_length=100, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='uploadvideo',
|
||||||
|
name='title_ru',
|
||||||
|
field=models.CharField(max_length=100, null=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -5,6 +5,7 @@ from django.core.validators import FileExtensionValidator
|
|||||||
from django.db.models.signals import pre_save, post_save, post_delete
|
from django.db.models.signals import pre_save, post_save, post_delete
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
# project import
|
# project import
|
||||||
from .utils import *
|
from .utils import *
|
||||||
@ -20,23 +21,23 @@ YEARS = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
# LEVEL_COURSE = "Level course"
|
# LEVEL_COURSE = "Level course"
|
||||||
BACHELOR_DEGREE = "Bachelor"
|
BACHELOR_DEGREE = _("Bachelor")
|
||||||
MASTER_DEGREE = "Master"
|
MASTER_DEGREE = _("Master")
|
||||||
|
|
||||||
LEVEL = (
|
LEVEL = (
|
||||||
# (LEVEL_COURSE, "Level course"),
|
# (LEVEL_COURSE, "Level course"),
|
||||||
(BACHELOR_DEGREE, "Bachelor Degree"),
|
(BACHELOR_DEGREE, _("Bachelor Degree")),
|
||||||
(MASTER_DEGREE, "Master Degree"),
|
(MASTER_DEGREE, _("Master Degree")),
|
||||||
)
|
)
|
||||||
|
|
||||||
FIRST = "First"
|
FIRST = _("First")
|
||||||
SECOND = "Second"
|
SECOND = _("Second")
|
||||||
THIRD = "Third"
|
THIRD = _("Third")
|
||||||
|
|
||||||
SEMESTER = (
|
SEMESTER = (
|
||||||
(FIRST, "First"),
|
(FIRST, _("First")),
|
||||||
(SECOND, "Second"),
|
(SECOND, _("Second")),
|
||||||
(THIRD, "Third"),
|
(THIRD, _("Third")),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -67,12 +68,12 @@ class Program(models.Model):
|
|||||||
@receiver(post_save, sender=Program)
|
@receiver(post_save, sender=Program)
|
||||||
def log_save(sender, instance, created, **kwargs):
|
def log_save(sender, instance, created, **kwargs):
|
||||||
verb = "created" if created else "updated"
|
verb = "created" if created else "updated"
|
||||||
ActivityLog.objects.create(message=f"The program '{instance}' has been {verb}.")
|
ActivityLog.objects.create(message=_(f"The program '{instance}' has been {verb}."))
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_delete, sender=Program)
|
@receiver(post_delete, sender=Program)
|
||||||
def log_delete(sender, instance, **kwargs):
|
def log_delete(sender, instance, **kwargs):
|
||||||
ActivityLog.objects.create(message=f"The program '{instance}' has been deleted.")
|
ActivityLog.objects.create(message=_(f"The program '{instance}' has been deleted."))
|
||||||
|
|
||||||
|
|
||||||
class CourseManager(models.Manager):
|
class CourseManager(models.Manager):
|
||||||
@ -134,21 +135,21 @@ pre_save.connect(course_pre_save_receiver, sender=Course)
|
|||||||
@receiver(post_save, sender=Course)
|
@receiver(post_save, sender=Course)
|
||||||
def log_save(sender, instance, created, **kwargs):
|
def log_save(sender, instance, created, **kwargs):
|
||||||
verb = "created" if created else "updated"
|
verb = "created" if created else "updated"
|
||||||
ActivityLog.objects.create(message=f"The course '{instance}' has been {verb}.")
|
ActivityLog.objects.create(message=_(f"The course '{instance}' has been {verb}."))
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_delete, sender=Course)
|
@receiver(post_delete, sender=Course)
|
||||||
def log_delete(sender, instance, **kwargs):
|
def log_delete(sender, instance, **kwargs):
|
||||||
ActivityLog.objects.create(message=f"The course '{instance}' has been deleted.")
|
ActivityLog.objects.create(message=_(f"The course '{instance}' has been deleted."))
|
||||||
|
|
||||||
|
|
||||||
class CourseAllocation(models.Model):
|
class CourseAllocation(models.Model):
|
||||||
lecturer = models.ForeignKey(
|
lecturer = models.ForeignKey(
|
||||||
settings.AUTH_USER_MODEL,
|
settings.AUTH_USER_MODEL,
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
related_name="allocated_lecturer",
|
related_name=_("allocated_lecturer"),
|
||||||
)
|
)
|
||||||
courses = models.ManyToManyField(Course, related_name="allocated_course")
|
courses = models.ManyToManyField(Course, related_name=_("allocated_course"))
|
||||||
session = models.ForeignKey(
|
session = models.ForeignKey(
|
||||||
"core.Session", on_delete=models.CASCADE, blank=True, null=True
|
"core.Session", on_delete=models.CASCADE, blank=True, null=True
|
||||||
)
|
)
|
||||||
@ -213,18 +214,24 @@ class Upload(models.Model):
|
|||||||
def log_save(sender, instance, created, **kwargs):
|
def log_save(sender, instance, created, **kwargs):
|
||||||
if created:
|
if created:
|
||||||
ActivityLog.objects.create(
|
ActivityLog.objects.create(
|
||||||
message=f"The file '{instance.title}' has been uploaded to the course '{instance.course}'."
|
message=_(
|
||||||
|
f"The file '{instance.title}' has been uploaded to the course '{instance.course}'."
|
||||||
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
ActivityLog.objects.create(
|
ActivityLog.objects.create(
|
||||||
message=f"The file '{instance.title}' of the course '{instance.course}' has been updated."
|
message=_(
|
||||||
|
f"The file '{instance.title}' of the course '{instance.course}' has been updated."
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_delete, sender=Upload)
|
@receiver(post_delete, sender=Upload)
|
||||||
def log_delete(sender, instance, **kwargs):
|
def log_delete(sender, instance, **kwargs):
|
||||||
ActivityLog.objects.create(
|
ActivityLog.objects.create(
|
||||||
message=f"The file '{instance.title}' of the course '{instance.course}' has been deleted."
|
message=_(
|
||||||
|
f"The file '{instance.title}' of the course '{instance.course}' has been deleted."
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -234,7 +241,7 @@ class UploadVideo(models.Model):
|
|||||||
course = models.ForeignKey(Course, on_delete=models.CASCADE)
|
course = models.ForeignKey(Course, on_delete=models.CASCADE)
|
||||||
video = models.FileField(
|
video = models.FileField(
|
||||||
upload_to="course_videos/",
|
upload_to="course_videos/",
|
||||||
help_text="Valid video formats: mp4, mkv, wmv, 3gp, f4v, avi, mp3",
|
help_text=_("Valid video formats: mp4, mkv, wmv, 3gp, f4v, avi, mp3"),
|
||||||
validators=[
|
validators=[
|
||||||
FileExtensionValidator(["mp4", "mkv", "wmv", "3gp", "f4v", "avi", "mp3"])
|
FileExtensionValidator(["mp4", "mkv", "wmv", "3gp", "f4v", "avi", "mp3"])
|
||||||
],
|
],
|
||||||
@ -267,23 +274,29 @@ pre_save.connect(video_pre_save_receiver, sender=UploadVideo)
|
|||||||
def log_save(sender, instance, created, **kwargs):
|
def log_save(sender, instance, created, **kwargs):
|
||||||
if created:
|
if created:
|
||||||
ActivityLog.objects.create(
|
ActivityLog.objects.create(
|
||||||
message=f"The video '{instance.title}' has been uploaded to the course {instance.course}."
|
message=_(
|
||||||
|
f"The video '{instance.title}' has been uploaded to the course {instance.course}."
|
||||||
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
ActivityLog.objects.create(
|
ActivityLog.objects.create(
|
||||||
message=f"The video '{instance.title}' of the course '{instance.course}' has been updated."
|
message=_(
|
||||||
|
f"The video '{instance.title}' of the course '{instance.course}' has been updated."
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_delete, sender=UploadVideo)
|
@receiver(post_delete, sender=UploadVideo)
|
||||||
def log_delete(sender, instance, **kwargs):
|
def log_delete(sender, instance, **kwargs):
|
||||||
ActivityLog.objects.create(
|
ActivityLog.objects.create(
|
||||||
message=f"The video '{instance.title}' of the course '{instance.course}' has been deleted."
|
message=_(
|
||||||
|
f"The video '{instance.title}' of the course '{instance.course}' has been deleted."
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class CourseOffer(models.Model):
|
class CourseOffer(models.Model):
|
||||||
"""NOTE: Only department head can offer semester courses"""
|
_("""NOTE: Only department head can offer semester courses""")
|
||||||
|
|
||||||
dep_head = models.ForeignKey("accounts.DepartmentHead", on_delete=models.CASCADE)
|
dep_head = models.ForeignKey("accounts.DepartmentHead", on_delete=models.CASCADE)
|
||||||
|
|
||||||
|
|||||||
22
course/translation.py
Normal file
22
course/translation.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
from modeltranslation.translator import register, TranslationOptions
|
||||||
|
from .models import Program, Course, Upload, UploadVideo
|
||||||
|
|
||||||
|
@register(Program)
|
||||||
|
class ProgramTranslationOptions(TranslationOptions):
|
||||||
|
fields = ('title', 'summary',)
|
||||||
|
empty_values=None
|
||||||
|
|
||||||
|
@register(Course)
|
||||||
|
class CourseTranslationOptions(TranslationOptions):
|
||||||
|
fields = ('title', 'summary',)
|
||||||
|
empty_values=None
|
||||||
|
|
||||||
|
@register(Upload)
|
||||||
|
class UploadTranslationOptions(TranslationOptions):
|
||||||
|
fields = ('title',)
|
||||||
|
empty_values=None
|
||||||
|
|
||||||
|
@register(UploadVideo)
|
||||||
|
class UploadVideoTranslationOptions(TranslationOptions):
|
||||||
|
fields = ('title', 'summary',)
|
||||||
|
empty_values=None
|
||||||
@ -1,479 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
||||||
#
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2021-05-06 12:13+0300\n"
|
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
||||||
"Language: \n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
||||||
|
|
||||||
#: .\accounts\templates\accounts\profile.html:121
|
|
||||||
#: .\accounts\templates\accounts\profile_single.html:119
|
|
||||||
msgid " can see your attendace, assesment, and grade result"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\accounts\validators.py:12
|
|
||||||
msgid ""
|
|
||||||
"Enter a valid username. This value may contain only English letters, "
|
|
||||||
"numbers, and @/./+/-/_ characters."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\admin.py:22 .\quiz\admin.py:24 .\quiz\forms.py:36 .\quiz\forms.py:38
|
|
||||||
#: .\quiz\models.py:362
|
|
||||||
msgid "Questions"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:20 .\quiz\models.py:413
|
|
||||||
msgid "Content"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:21
|
|
||||||
msgid "Random"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:22
|
|
||||||
msgid "None"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:26
|
|
||||||
msgid "Assignment"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:27
|
|
||||||
msgid "Exam"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:28
|
|
||||||
msgid "Practice Quiz"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:47
|
|
||||||
msgid "Title"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:49
|
|
||||||
msgid "Description"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:49
|
|
||||||
msgid "a description of the quiz"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:51
|
|
||||||
msgid "Random Order"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:52
|
|
||||||
msgid "Display the questions in a random order or as they are set?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:57
|
|
||||||
msgid "Answers at end"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:58
|
|
||||||
msgid ""
|
|
||||||
"Correct answer is NOT shown after question. Answers displayed at the end."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:60
|
|
||||||
msgid "Exam Paper"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:61
|
|
||||||
msgid ""
|
|
||||||
"If yes, the result of each attempt by a user will be stored. Necessary for "
|
|
||||||
"marking."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:63
|
|
||||||
msgid "Single Attempt"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:64
|
|
||||||
msgid "If yes, only one attempt by a user will be permitted."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:66
|
|
||||||
msgid "Pass Mark"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:67
|
|
||||||
msgid "Percentage required to pass exam."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:69
|
|
||||||
msgid "Draft"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:70
|
|
||||||
msgid ""
|
|
||||||
"If yes, the quiz is not displayed in the quiz list and can only be taken by "
|
|
||||||
"users who can edit quizzes."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:89 .\quiz\models.py:216 .\quiz\models.py:350
|
|
||||||
#: .\quiz\templates\quiz\sitting_list.html:31
|
|
||||||
msgid "Quiz"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:90
|
|
||||||
msgid "Quizzes"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:123 .\quiz\models.py:215
|
|
||||||
#: .\quiz\templates\quiz\sitting_detail.html:18
|
|
||||||
#: .\quiz\templates\quiz\sitting_list.html:29
|
|
||||||
msgid "User"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:124 .\quiz\templates\progress.html:63
|
|
||||||
#: .\quiz\templates\quiz\sitting_detail.html:20
|
|
||||||
#: .\quiz\templates\quiz\sitting_list.html:33
|
|
||||||
msgid "Score"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:129
|
|
||||||
msgid "User Progress"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:130
|
|
||||||
msgid "User progress records"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:147
|
|
||||||
msgid "error"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:147
|
|
||||||
msgid "category does not exist or invalid score"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:217 .\quiz\templates\quiz\sitting_list.html:30
|
|
||||||
msgid "Course"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:219
|
|
||||||
msgid "Question Order"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:222
|
|
||||||
msgid "Question List"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:225
|
|
||||||
msgid "Incorrect questions"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:228
|
|
||||||
msgid "Current Score"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:229
|
|
||||||
msgid "Complete"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:230
|
|
||||||
msgid "User Answers"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:231 .\quiz\templates\quiz\sitting_detail.html:21
|
|
||||||
msgid "Start"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:232 .\quiz\templates\quiz\sitting_detail.html:22
|
|
||||||
msgid "End"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:237
|
|
||||||
msgid "Can see completed exams."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:351
|
|
||||||
msgid "Figure"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:353
|
|
||||||
msgid "Enter the question text that you want displayed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:353 .\quiz\models.py:361 .\quiz\models.py:409
|
|
||||||
#: .\quiz\templates\question.html:115
|
|
||||||
#: .\quiz\templates\quiz\sitting_detail.html:28
|
|
||||||
msgid "Question"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:355
|
|
||||||
msgid "Explanation to be shown after the question has been answered."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:356 .\quiz\templates\question.html:74
|
|
||||||
#: .\quiz\templates\question.html:83 .\quiz\templates\result.html:76
|
|
||||||
#: .\quiz\templates\result.html:148 .\quiz\templates\result.html:195
|
|
||||||
#: .\quiz\templates\result.html:261
|
|
||||||
msgid "Explanation"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:373
|
|
||||||
msgid "The order in which multichoice choice options are displayed to the user"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:374
|
|
||||||
msgid "Choice Order"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:404
|
|
||||||
msgid "Multiple Choice Question"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:405
|
|
||||||
msgid "Multiple Choice Questions"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:412
|
|
||||||
msgid "Enter the choice text that you want displayed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:416
|
|
||||||
msgid "Is this a correct answer?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:417 .\quiz\templates\quiz\sitting_detail.html:50
|
|
||||||
msgid "Correct"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:423
|
|
||||||
msgid "Choice"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:424
|
|
||||||
msgid "Choices"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:445
|
|
||||||
msgid "Essay style question"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\models.py:446
|
|
||||||
msgid "Essay style questions"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\correct_answer.html:6 .\quiz\templates\question.html:45
|
|
||||||
#: .\quiz\templates\result.html:48
|
|
||||||
msgid "You answered the above question incorrectly"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\correct_answer.html:16 .\quiz\templates\question.html:55
|
|
||||||
#: .\quiz\templates\result.html:58
|
|
||||||
msgid "This is the correct answer"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\correct_answer.html:23 .\quiz\templates\question.html:62
|
|
||||||
#: .\quiz\templates\result.html:65
|
|
||||||
msgid "This was your answer."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\progress.html:4
|
|
||||||
msgid "Progress Page"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\progress.html:5
|
|
||||||
msgid "User Progress Page"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\progress.html:13
|
|
||||||
msgid "Question Category Scores"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\progress.html:20 .\quiz\templates\quiz\quiz_list.html:71
|
|
||||||
#: .\quiz\templates\quiz\sitting_detail.html:13
|
|
||||||
msgid "Category"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\progress.html:21
|
|
||||||
msgid "Correctly answererd"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\progress.html:22
|
|
||||||
msgid "Incorrect"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\progress.html:51
|
|
||||||
msgid "Previous exam papers"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\progress.html:53
|
|
||||||
msgid "Below are the results of exams that you have sat."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\progress.html:62
|
|
||||||
msgid "Quiz Title"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\progress.html:64
|
|
||||||
msgid "Possible Score"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\question.html:23 .\quiz\templates\result.html:35
|
|
||||||
#: .\quiz\templates\result.html:187
|
|
||||||
msgid "The previous question"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\question.html:32
|
|
||||||
msgid "Your answer was"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\question.html:79 .\quiz\templates\result.html:81
|
|
||||||
msgid "No explanation set to this question."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\question.html:115
|
|
||||||
msgid "of"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\question.html:120
|
|
||||||
msgid "Quiz category"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\question.html:145
|
|
||||||
msgid "Check"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\question.html:146
|
|
||||||
msgid "Previous"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\quiz_list.html:66
|
|
||||||
msgid "You will only get one attempt at this quiz"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\quiz_list.html:74
|
|
||||||
msgid "Start quiz"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_detail.html:4
|
|
||||||
msgid "Result of"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_detail.html:4
|
|
||||||
msgid "for"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_detail.html:12
|
|
||||||
msgid "Quiz title"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_detail.html:19
|
|
||||||
#: .\quiz\templates\quiz\sitting_list.html:32
|
|
||||||
msgid "Completed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_detail.html:29
|
|
||||||
msgid "User answer"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_detail.html:48
|
|
||||||
msgid "incorrect"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_detail.html:56
|
|
||||||
msgid "Toggle whether correct"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_list.html:3
|
|
||||||
msgid "All Quizzes"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_list.html:9
|
|
||||||
msgid "List of complete exams"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_list.html:18
|
|
||||||
msgid "Filter"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_list.html:48
|
|
||||||
msgid "View details"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\quiz\sitting_list.html:56
|
|
||||||
msgid "There are no matching results for your search..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:8
|
|
||||||
msgid "Exam Results for"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:92 .\quiz\templates\result.html:206
|
|
||||||
msgid "Exam results"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:95 .\quiz\templates\result.html:208
|
|
||||||
msgid "Exam title"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:99 .\quiz\templates\result.html:212
|
|
||||||
msgid "You answered"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:99 .\quiz\templates\result.html:212
|
|
||||||
msgid "questions correctly out of"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:99 .\quiz\templates\result.html:212
|
|
||||||
msgid "giving you"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:99
|
|
||||||
#, python-format
|
|
||||||
msgid "%% correct"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:112 .\quiz\templates\result.html:222
|
|
||||||
msgid "Review the questions below and try the exam again in the future"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:116
|
|
||||||
msgid "The result of this exam will be stored in your progress section"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:118
|
|
||||||
msgid "so you can review and monitor your progression"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:132 .\quiz\templates\result.html:240
|
|
||||||
msgid "Your session score is"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:132 .\quiz\templates\result.html:240
|
|
||||||
msgid "out of a possible"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:153
|
|
||||||
msgid "No explanation set for this question."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:160 .\quiz\templates\result.html:258
|
|
||||||
msgid "Your answer"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:212
|
|
||||||
msgid "percent correct"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: .\quiz\templates\result.html:226
|
|
||||||
msgid ""
|
|
||||||
"The result of this exam will be stored in your progress section so you can "
|
|
||||||
"review and monitor your progression"
|
|
||||||
msgstr ""
|
|
||||||
1704
locale/ru/LC_MESSAGES/django.po
Normal file
1704
locale/ru/LC_MESSAGES/django.po
Normal file
File diff suppressed because it is too large
Load Diff
114
locale/ru/LC_MESSAGES/djangojs.po
Normal file
114
locale/ru/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version:PACKAGE VERSION"
|
||||||
|
"Report-Msgid-Bugs-To:"
|
||||||
|
"POT-Creation-Date:2024-04-15 19:36+0600"
|
||||||
|
"PO-Revision-Date:YEAR-MO-DA HO:MI+ZONE"
|
||||||
|
"Last-Translator:FULL NAME <EMAIL@ADDRESS>"
|
||||||
|
"Language-Team:LANGUAGE <LL@li.org>"
|
||||||
|
"Language:"
|
||||||
|
"MIME-Version:1.0"
|
||||||
|
"Content-Type:text/plain; charset=UTF-8"
|
||||||
|
"Content-Transfer-Encoding:8bit"
|
||||||
|
"Plural-Forms:nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
|
||||||
|
|
||||||
|
#: static/js/dashboard.js:8
|
||||||
|
msgid "January"
|
||||||
|
msgstr "Январь"
|
||||||
|
#: static/js/dashboard.js:9
|
||||||
|
msgid "February"
|
||||||
|
msgstr "Февраль"
|
||||||
|
#: static/js/dashboard.js:10
|
||||||
|
msgid "March"
|
||||||
|
msgstr "Март"
|
||||||
|
#: static/js/dashboard.js:11
|
||||||
|
msgid "April"
|
||||||
|
msgstr "Апрель"
|
||||||
|
#: static/js/dashboard.js:12
|
||||||
|
msgid "May"
|
||||||
|
msgstr "Май"
|
||||||
|
#: static/js/dashboard.js:13
|
||||||
|
msgid "June"
|
||||||
|
msgstr "Июнь"
|
||||||
|
#: static/js/dashboard.js:18
|
||||||
|
msgid "Students"
|
||||||
|
msgstr "Студенты"
|
||||||
|
#: static/js/dashboard.js:24
|
||||||
|
msgid "Teachers"
|
||||||
|
msgstr "Учителя"
|
||||||
|
#: static/js/dashboard.js:30
|
||||||
|
msgid "Admins"
|
||||||
|
msgstr "Админы"
|
||||||
|
#: static/js/dashboard.js:36
|
||||||
|
msgid "Stuffs"
|
||||||
|
msgstr "Вещи"
|
||||||
|
#: static/js/dashboard.js:52
|
||||||
|
msgid "Website Traffic"
|
||||||
|
msgstr "Трафик веб-сайта"
|
||||||
|
#: static/js/dashboard.js:71
|
||||||
|
msgid "Comp.S"
|
||||||
|
msgstr "Информатика"
|
||||||
|
#: static/js/dashboard.js:77
|
||||||
|
msgid "Architecture"
|
||||||
|
msgstr "Архитектура"
|
||||||
|
#: static/js/dashboard.js:83
|
||||||
|
msgid "Civil Eng"
|
||||||
|
msgstr "Гражданское инженерство"
|
||||||
|
#: static/js/dashboard.js:89
|
||||||
|
msgid "Accounting"
|
||||||
|
msgstr "Бухгалтерский учет"
|
||||||
|
#: static/js/dashboard.js:95
|
||||||
|
msgid "Business M."
|
||||||
|
msgstr "Бизнес М."
|
||||||
|
#: static/js/dashboard.js:111
|
||||||
|
msgid "Enrollment per course"
|
||||||
|
msgstr "Запись на курс"
|
||||||
|
#: static/js/dashboard.js:129
|
||||||
|
msgid "Comp sci."
|
||||||
|
msgstr "Компьютерная наука."
|
||||||
|
#: static/js/dashboard.js:135
|
||||||
|
msgid "Civil eng."
|
||||||
|
msgstr "Гражданский инженерство."
|
||||||
|
#: static/js/dashboard.js:141
|
||||||
|
msgid "Architect."
|
||||||
|
msgstr "Архитектор."
|
||||||
|
#: static/js/dashboard.js:147
|
||||||
|
msgid "Economics"
|
||||||
|
msgstr "Экономика"
|
||||||
|
#: static/js/dashboard.js:163
|
||||||
|
msgid "Students average grade (performance)"
|
||||||
|
msgstr "Средняя оценка учащихся (успеваемость)"
|
||||||
|
#: static/js/dashboard.js:172
|
||||||
|
msgid "Man"
|
||||||
|
msgstr "Мужчина"
|
||||||
|
#: static/js/dashboard.js:173
|
||||||
|
msgid "Women"
|
||||||
|
msgstr "Женщины"
|
||||||
|
#: static/js/dashboard.js:176
|
||||||
|
msgid "Students Gender Dataset"
|
||||||
|
msgstr "Набор гендерных данных студентов"
|
||||||
|
#: static/js/dashboard.js:194
|
||||||
|
msgid "Students Gender"
|
||||||
|
msgstr "Пол студентов"
|
||||||
|
#: static/js/dashboard.js:203 static/js/dashboard.js:235
|
||||||
|
msgid "PHD"
|
||||||
|
msgstr "КАНДИДАТ НАУК"
|
||||||
|
#: static/js/dashboard.js:204 static/js/dashboard.js:236
|
||||||
|
msgid "Masters"
|
||||||
|
msgstr "Магистр"
|
||||||
|
#: static/js/dashboard.js:205 static/js/dashboard.js:237
|
||||||
|
msgid "BSc degree"
|
||||||
|
msgstr "Степень бакалавра"
|
||||||
|
#: static/js/dashboard.js:208
|
||||||
|
msgid "Lecturer Qualifications Dataset"
|
||||||
|
msgstr "Набор данных о квалификациях преподавателей"
|
||||||
|
#: static/js/dashboard.js:226
|
||||||
|
msgid "Lecturer qualifications"
|
||||||
|
msgstr "Квалификация преподавателя"
|
||||||
|
#: static/js/dashboard.js:240
|
||||||
|
msgid "Students level"
|
||||||
|
msgstr "Уровень студентов"
|
||||||
|
#: static/js/dashboard.js:258
|
||||||
|
msgid "Student levels"
|
||||||
|
msgstr "Уровни студентов"
|
||||||
@ -2,6 +2,8 @@ from django import forms
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.admin.widgets import FilteredSelectMultiple
|
from django.contrib.admin.widgets import FilteredSelectMultiple
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
from modeltranslation.admin import TranslationAdmin
|
||||||
|
from modeltranslation.forms import TranslationModelForm
|
||||||
|
|
||||||
from .models import (
|
from .models import (
|
||||||
Quiz,
|
Quiz,
|
||||||
@ -18,7 +20,7 @@ class ChoiceInline(admin.TabularInline):
|
|||||||
model = Choice
|
model = Choice
|
||||||
|
|
||||||
|
|
||||||
class QuizAdminForm(forms.ModelForm):
|
class QuizAdminForm(TranslationModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Quiz
|
model = Quiz
|
||||||
exclude = []
|
exclude = []
|
||||||
@ -45,9 +47,9 @@ class QuizAdminForm(forms.ModelForm):
|
|||||||
return quiz
|
return quiz
|
||||||
|
|
||||||
|
|
||||||
class QuizAdmin(admin.ModelAdmin):
|
class QuizAdmin(TranslationAdmin):
|
||||||
form = QuizAdminForm
|
form = QuizAdminForm
|
||||||
|
fields = ('title', 'description',)
|
||||||
list_display = ("title",)
|
list_display = ("title",)
|
||||||
# list_filter = ('category',)
|
# list_filter = ('category',)
|
||||||
search_fields = (
|
search_fields = (
|
||||||
@ -56,10 +58,10 @@ class QuizAdmin(admin.ModelAdmin):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class MCQuestionAdmin(admin.ModelAdmin):
|
class MCQuestionAdmin(TranslationAdmin):
|
||||||
list_display = ("content",)
|
list_display = ("content",)
|
||||||
# list_filter = ('category',)
|
# list_filter = ('category',)
|
||||||
fields = ("content", "figure", "quiz", "explanation", "choice_order")
|
fieldsets = [(u'figure' 'quiz' 'choice_order', {'fields': ("content","explanation")})]
|
||||||
|
|
||||||
search_fields = ("content", "explanation")
|
search_fields = ("content", "explanation")
|
||||||
filter_horizontal = ("quiz",)
|
filter_horizontal = ("quiz",)
|
||||||
|
|||||||
@ -0,0 +1,63 @@
|
|||||||
|
# Generated by Django 4.0.8 on 2024-04-15 13:36
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('quiz', '0004_alter_question_figure_alter_quiz_description'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='choice',
|
||||||
|
name='choice_en',
|
||||||
|
field=models.CharField(help_text='Enter the choice text that you want displayed', max_length=1000, null=True, verbose_name='Content'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='choice',
|
||||||
|
name='choice_ru',
|
||||||
|
field=models.CharField(help_text='Enter the choice text that you want displayed', max_length=1000, null=True, verbose_name='Content'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='question',
|
||||||
|
name='content_en',
|
||||||
|
field=models.CharField(help_text='Enter the question text that you want displayed', max_length=1000, null=True, verbose_name='Question'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='question',
|
||||||
|
name='content_ru',
|
||||||
|
field=models.CharField(help_text='Enter the question text that you want displayed', max_length=1000, null=True, verbose_name='Question'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='question',
|
||||||
|
name='explanation_en',
|
||||||
|
field=models.TextField(blank=True, help_text='Explanation to be shown after the question has been answered.', max_length=2000, null=True, verbose_name='Explanation'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='question',
|
||||||
|
name='explanation_ru',
|
||||||
|
field=models.TextField(blank=True, help_text='Explanation to be shown after the question has been answered.', max_length=2000, null=True, verbose_name='Explanation'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='quiz',
|
||||||
|
name='description_en',
|
||||||
|
field=models.TextField(blank=True, help_text='A detailed description of the quiz', null=True, verbose_name='Description'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='quiz',
|
||||||
|
name='description_ru',
|
||||||
|
field=models.TextField(blank=True, help_text='A detailed description of the quiz', null=True, verbose_name='Description'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='quiz',
|
||||||
|
name='title_en',
|
||||||
|
field=models.CharField(max_length=60, null=True, verbose_name='Title'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='quiz',
|
||||||
|
name='title_ru',
|
||||||
|
field=models.CharField(max_length=60, null=True, verbose_name='Title'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -245,7 +245,7 @@ class SittingManager(models.Manager):
|
|||||||
|
|
||||||
if len(question_set) == 0:
|
if len(question_set) == 0:
|
||||||
raise ImproperlyConfigured(
|
raise ImproperlyConfigured(
|
||||||
"Question set of the quiz is empty. Please configure questions properly"
|
_("Question set of the quiz is empty. Please configure questions properly")
|
||||||
)
|
)
|
||||||
|
|
||||||
# if quiz.max_questions and quiz.max_questions < len(question_set):
|
# if quiz.max_questions and quiz.max_questions < len(question_set):
|
||||||
@ -401,9 +401,9 @@ class Sitting(models.Model):
|
|||||||
@property
|
@property
|
||||||
def result_message(self):
|
def result_message(self):
|
||||||
if self.check_if_passed:
|
if self.check_if_passed:
|
||||||
return f"You have passed this quiz, congratulation"
|
return _(f"You have passed this quiz, congratulation")
|
||||||
else:
|
else:
|
||||||
return f"You failed this quiz, give it one chance again."
|
return _(f"You failed this quiz, give it one chance again.")
|
||||||
|
|
||||||
def add_user_answer(self, question, guess):
|
def add_user_answer(self, question, guess):
|
||||||
current = json.loads(self.user_answers)
|
current = json.loads(self.user_answers)
|
||||||
|
|||||||
21
quiz/translation.py
Normal file
21
quiz/translation.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
from modeltranslation.translator import register, TranslationOptions
|
||||||
|
from .models import Quiz, Question, Choice, MCQuestion
|
||||||
|
|
||||||
|
@register(Quiz)
|
||||||
|
class QuizTranslationOptions(TranslationOptions):
|
||||||
|
fields = ('title', 'description',)
|
||||||
|
empty_values=None
|
||||||
|
|
||||||
|
@register(Question)
|
||||||
|
class QuestionTranslationOptions(TranslationOptions):
|
||||||
|
fields = ('content', 'explanation',)
|
||||||
|
empty_values=None
|
||||||
|
|
||||||
|
@register(Choice)
|
||||||
|
class ChoiceTranslationOptions(TranslationOptions):
|
||||||
|
fields = ('choice',)
|
||||||
|
empty_values=None
|
||||||
|
|
||||||
|
@register(MCQuestion)
|
||||||
|
class MCQuestionTranslationOptions(TranslationOptions):
|
||||||
|
pass
|
||||||
@ -9,6 +9,7 @@ django-model-utils==4.3.1 # https://github.com/jazzband/django-model-utils
|
|||||||
django-crispy-forms==1.14.0 # https://github.com/django-crispy-forms/django-crispy-forms
|
django-crispy-forms==1.14.0 # https://github.com/django-crispy-forms/django-crispy-forms
|
||||||
crispy-bootstrap5==0.7 # https://github.com/django-crispy-forms/crispy-bootstrap5
|
crispy-bootstrap5==0.7 # https://github.com/django-crispy-forms/crispy-bootstrap5
|
||||||
django-filter==23.5 # https://github.com/carltongibson/django-filter
|
django-filter==23.5 # https://github.com/carltongibson/django-filter
|
||||||
|
django-modeltranslation==0.18.11 # https://github.com/Buren/django-modeltranslation
|
||||||
|
|
||||||
# Django REST Framework
|
# Django REST Framework
|
||||||
djangorestframework==3.14.0 # https://github.com/encode/django-rest-framework
|
djangorestframework==3.14.0 # https://github.com/encode/django-rest-framework
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
{% extends 'error_handler_base.html' %}
|
{% extends 'error_handler_base.html' %}
|
||||||
|
{% load i18n %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="text-center mt-5">
|
<div class="text-center mt-5">
|
||||||
<h1>Bad request</h1>
|
<h1>{% trans 'Bad request' %}</h1>
|
||||||
<p>Please make sure the form is correctly filled.</p>
|
<p>{% trans 'Please make sure the form is correctly filled.' %}</p>
|
||||||
<a href="/" class="link">← Return to the app</a>
|
<a href="/" class="link">← {% trans 'Return to the app' %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
{% extends 'error_handler_base.html' %}
|
{% extends 'error_handler_base.html' %}
|
||||||
|
{% load i18n %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="text-center mt-5">
|
<div class="text-center mt-5">
|
||||||
<h1>403, forbidden</h1>
|
<h1>403, {% trans 'forbidden' %}</h1>
|
||||||
<p>You need the proper permission to make that request.</p>
|
<p>{% trans 'You need the proper permission to make that request.' %}</p>
|
||||||
<a href="/" class="link">← Return to the app</a>
|
<a href="/" class="link">← {% trans 'Return to the app' %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
{% extends 'error_handler_base.html' %}
|
{% extends 'error_handler_base.html' %}
|
||||||
|
{% load i18n %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="text-center mt-5">
|
<div class="text-center mt-5">
|
||||||
<h1>404</h1>
|
<h1>404</h1>
|
||||||
<p>Looks like the page you're looking for is does not exist.</p>
|
<p>{% trans 'Looks like the page you're looking for is does not exist.' %}</p>
|
||||||
<a href="/" class="link">← Return to the app</a>
|
<a href="/" class="link">← {% trans 'Return to the app' %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
{% extends 'error_handler_base.html' %}
|
{% extends 'error_handler_base.html' %}
|
||||||
|
{% load i18n %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="text-center mt-5">
|
<div class="text-center mt-5">
|
||||||
<h1>Server error</h1>
|
<h1>{% trans 'Server error' %}</h1>
|
||||||
<p>Please try again later.</p>
|
<p>{% trans 'Please try again later.' %}</p>
|
||||||
<a href="/" class="link">← Return to the app</a>
|
<a href="/" class="link">← {% trans 'Return to the app' %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,13 +8,13 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'lecturer_list' %}">Lecturers</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'lecturer_list' %}">{% trans 'Lecturers' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Add</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Add' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<h4 class="fw-bold mb-3"><i class="fas fa-chalkboard-teacher me-2"></i>Lecturer Add Form</h4>
|
<h4 class="fw-bold mb-3"><i class="fas fa-chalkboard-teacher me-2"></i>{% trans 'Lecturer Add Form' %}</h4>
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
|
|
||||||
@ -22,7 +23,7 @@
|
|||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Personal Info</p>
|
<p class="form-title">{% trans 'Personal Info' %}</p>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
{{ form.first_name|as_crispy_field }}
|
{{ form.first_name|as_crispy_field }}
|
||||||
{{ form.last_name|as_crispy_field }}
|
{{ form.last_name|as_crispy_field }}
|
||||||
@ -33,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input class="btn btn-primary" type="submit" value="Save">
|
<input class="btn btn-primary" type="submit" value="{% trans 'Save' %}">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@ -1,19 +1,21 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'student_list' %}">Students</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'student_list' %}">{% trans 'Students' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Add</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Add' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<h4 class="mb-3 fw-bold"><i class="fas fa-user-graduate me-2"></i>Student Add Form</h4>
|
<h4 class="mb-3 fw-bold"><i class="fas fa-user-graduate me-2"></i>{% trans 'Student Add Form' %}</h4>
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
|
|
||||||
@ -22,7 +24,7 @@
|
|||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Personal Info</p>
|
<p class="form-title">{% trans 'Personal Info' %}</p>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{{ form.first_name|as_crispy_field }}
|
{{ form.first_name|as_crispy_field }}
|
||||||
{{ form.last_name|as_crispy_field }}
|
{{ form.last_name|as_crispy_field }}
|
||||||
@ -35,7 +37,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 mr-auto">
|
<div class="col-md-6 mr-auto">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Others</p>
|
<p class="form-title">{% trans 'Others' %}</p>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{{ form.program|as_crispy_field }}
|
{{ form.program|as_crispy_field }}
|
||||||
{{ form.level|as_crispy_field }}
|
{{ form.level|as_crispy_field }}
|
||||||
@ -44,7 +46,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<input class="btn btn-primary" type="submit" value="Save">
|
<input class="btn btn-primary" type="submit" value="{% trans 'Save' %}">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,13 +8,13 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'lecturer_list' %}">Lecturers</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'lecturer_list' %}">{% trans 'Lecturers' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Update</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Update' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="title-1"><i class="fas fa-cogs"></i>Lecturer Update Form</div>
|
<div class="title-1"><i class="fas fa-cogs"></i>{% trans 'Lecturer Update Form' %}</div>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
@ -23,7 +24,7 @@
|
|||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Email & Personal Info</p>
|
<p class="form-title">{% trans 'Email' %} & {% trans 'Personal Info' %}</p>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{{ form.email|as_crispy_field }}
|
{{ form.email|as_crispy_field }}
|
||||||
{{ form.first_name|as_crispy_field }}
|
{{ form.first_name|as_crispy_field }}
|
||||||
@ -35,13 +36,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Others</p>
|
<p class="form-title">{% trans 'Others' %}</p>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{{ form.picture|as_crispy_field }}
|
{{ form.picture|as_crispy_field }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input class="btn btn-primary" type="submit" value="Save">
|
<input class="btn btn-primary" type="submit" value="{% trans 'Save' %}">
|
||||||
</form>
|
</form>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,13 +8,13 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'student_list' %}">Students</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'student_list' %}">{% trans 'Students' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Update</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Update' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<h4 class="fw-bold mb-3"><i class="fas fa-cog me-2"></i>Student Update Form</h4>
|
<h4 class="fw-bold mb-3"><i class="fas fa-cog me-2"></i>{% trans 'Student Update Form' %}</h4>
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
|
|
||||||
@ -21,7 +22,7 @@
|
|||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Email & Personal Info</p>
|
<p class="form-title">{% trans 'Email' %} & {% trans 'Personal Info' %}</p>
|
||||||
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{{ form.email|as_crispy_field }}
|
{{ form.email|as_crispy_field }}
|
||||||
@ -35,13 +36,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Others</p>
|
<p class="form-title">{% trans 'Others' %}</p>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{{ form.picture|as_crispy_field }}
|
{{ form.picture|as_crispy_field }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input class="btn btn-primary" type="submit" value="Save">
|
<input class="btn btn-primary" type="submit" value="{% trans 'Save' %}">
|
||||||
</form>
|
</form>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@ -1,23 +1,24 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Lecturers</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Lecturers' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<div class="manage-wrap">
|
<div class="manage-wrap">
|
||||||
<a class="btn btn-primary" href="{% url 'add_lecturer' %}"><i class="fas fa-plus"></i>Add Lecturer</a>
|
<a class="btn btn-primary" href="{% url 'add_lecturer' %}"><i class="fas fa-plus"></i>{% trans 'Add Lecturer' %}</a>
|
||||||
<a class="btn btn-primary" target="_blank" href="{% url 'lecturer_list_pdf' %}"><i class="fas fa-download"></i> Download pdf</a><!--new-->
|
<a class="btn btn-primary" target="_blank" href="{% url 'lecturer_list_pdf' %}"><i class="fas fa-download"></i> {% trans 'Download pdf' %}</a><!--new-->
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<p class="title-1"><i class="fas fa-chalkboard-teacher"></i>Lecturers</p>
|
<p class="title-1"><i class="fas fa-chalkboard-teacher"></i>{% trans 'Lecturers' %}</p>
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
{% include 'snippets/filter_form.html' %}
|
{% include 'snippets/filter_form.html' %}
|
||||||
@ -27,14 +28,14 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th> ID No. </th>
|
<th> {% trans 'ID No.' %}' </th>
|
||||||
<th> Full Name </th>
|
<th> {% trans 'Full Name' %} </th>
|
||||||
<th> Email </th>
|
<th> {% trans 'Email' %} </th>
|
||||||
<th> Mob No. </th>
|
<th> {% trans 'Mob No.' %} </th>
|
||||||
<th> Address/city </th>
|
<th> {% trans 'Address/city' %} </th>
|
||||||
<th> Last login </th>
|
<th> {% trans 'Last login' %} </th>
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<th> Action </th>
|
<th> {% trans 'Action' %} </th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -55,9 +56,9 @@
|
|||||||
<i class="fa fa-ellipsis-vertical"></i>
|
<i class="fa fa-ellipsis-vertical"></i>
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu position-fixed">
|
<ul class="dropdown-menu position-fixed">
|
||||||
<li><a class="dropdown-item" href="{% url 'staff_edit' pk=lecturer.pk %}"><i class="fas fa-edit"></i> Update</a></li>
|
<li><a class="dropdown-item" href="{% url 'staff_edit' pk=lecturer.pk %}"><i class="fas fa-edit"></i>{% trans 'Update' %}</a></li>
|
||||||
<li><a class="dropdown-item" target="_blank" href="{% url 'profile_single' lecturer.id %}?download_pdf=1"><i class="fas fa-download"></i> Download PDF</a></li>
|
<li><a class="dropdown-item" target="_blank" href="{% url 'profile_single' lecturer.id %}?download_pdf=1"><i class="fas fa-download"></i>{% trans 'Download PDF' %}</a></li>
|
||||||
<li><a class="dropdown-item text-danger" href="{% url 'lecturer_delete' pk=lecturer.pk %}"><i class="fas fa-trash-alt"></i> Delete</a></li>
|
<li><a class="dropdown-item text-danger" href="{% url 'lecturer_delete' pk=lecturer.pk %}"><i class="fas fa-trash-alt"></i> {% trans 'Delete' %}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
@ -67,11 +68,11 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td colspan="8">
|
<td colspan="8">
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No Lecturer(s).
|
{% trans 'No Lecturer(s).' %}
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<a href="{% url 'add_lecturer' %}">
|
<a href="{% url 'add_lecturer' %}">
|
||||||
<i class="primary" style="font-size: 22px;">
|
<i class="primary" style="font-size: 22px;">
|
||||||
Add Lecturer Now.
|
{% trans 'Add Lecturer Now.' %}
|
||||||
</i>
|
</i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,7 +8,7 @@
|
|||||||
|
|
||||||
<form method="POST">{% csrf_token %}
|
<form method="POST">{% csrf_token %}
|
||||||
{{ form.as_p }}
|
{{ form.as_p }}
|
||||||
<input type="submit" name="" value="Save">
|
<input type="submit" name="" value="{% trans 'Save' %}">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@ -1,8 +1,9 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %} {{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %} {{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
|
|
||||||
{% load static %}
|
{% load static %}
|
||||||
{% load i18n %}
|
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
@ -10,7 +11,7 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">{{ user.get_full_name }}</li>
|
<li class="breadcrumb-item active" aria-current="page">{{ user.get_full_name }}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
@ -25,17 +26,17 @@
|
|||||||
<img src="{{ user.picture.url }}" class="w-100">
|
<img src="{{ user.picture.url }}" class="w-100">
|
||||||
<ul class="px-2 list-unstyled">
|
<ul class="px-2 list-unstyled">
|
||||||
<li>{{ user.get_full_name|title }}</li>
|
<li>{{ user.get_full_name|title }}</li>
|
||||||
<li><strong>Last login: </strong>{{ user.last_login|date }}</li>
|
<li><strong>{% trans 'Last login:' %} </strong>{{ user.last_login|date }}</li>
|
||||||
<li><strong>Role: </strong>
|
<li><strong>{% trans 'Role:' %} </strong>
|
||||||
{{ user.get_user_role }}
|
{{ user.get_user_role }}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<a class="mb-2" href="{% url 'edit_profile' %}"><i class="fas fa-user-edit unstyled"></i>
|
<a class="mb-2" href="{% url 'edit_profile' %}"><i class="fas fa-user-edit unstyled"></i>
|
||||||
<span class="mobile-hide">Edit Profile</span></a>
|
<span class="mobile-hide">{% trans 'Edit Profile' %}</span></a>
|
||||||
<a href="{% url 'change_password' %}"><i class="fas fa-lock unstyled"></i><span class="mobile-hide">
|
<a href="{% url 'change_password' %}"><i class="fas fa-lock unstyled"></i><span class="mobile-hide">
|
||||||
Change password</span></a>
|
{% trans 'Change password' %}</span></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -58,7 +59,7 @@
|
|||||||
{% endif %} -->
|
{% endif %} -->
|
||||||
|
|
||||||
{% if user.is_lecturer %}
|
{% if user.is_lecturer %}
|
||||||
<p class="fw-bold"><i class="fas fa-book-open"></i> My Courses</p>
|
<p class="fw-bold"><i class="fas fa-book-open"></i>{% trans 'My Courses' %}</p>
|
||||||
{% if courses %}
|
{% if courses %}
|
||||||
<ul>
|
<ul>
|
||||||
{% for course in courses %}
|
{% for course in courses %}
|
||||||
@ -66,42 +67,42 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="text-danger">No courses assigned!</div>
|
<div class="text-danger">{% trans 'No courses assigned!' %}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<hr>
|
<hr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<p class="fw-bold"><i class="fas fa-user"></i> Personal Info</p>
|
<p class="fw-bold"><i class="fas fa-user"></i>{% trans 'Personal Info' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>First Name:</strong> {{ user.first_name|title }}</p>
|
<p><strong>{% trans 'First Name:' %}</strong> {{ user.first_name|title }}</p>
|
||||||
<p><strong>Last Name:</strong> {{ user.last_name|title }}</p>
|
<p><strong>{% trans 'Last Name:' %}</strong> {{ user.last_name|title }}</p>
|
||||||
<p><strong>ID No.:</strong> {{ user.username }}</p>
|
<p><strong>{% trans 'ID No.:' %}</strong> {{ user.username }}</p>
|
||||||
</div>
|
</div>
|
||||||
{% if user.is_student %}
|
{% if user.is_student %}
|
||||||
<hr>
|
<hr>
|
||||||
<p class="fw-bold"><i class="fas fa-graduation-cap"></i> Applicant Info</p>
|
<p class="fw-bold"><i class="fas fa-graduation-cap"></i>{% trans 'Applicant Info' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>School: </strong>Hawas Preparatory School</p>
|
<p><strong>{% trans 'School:' %} </strong>{% trans 'Hawas Preparatory School' %}</p>
|
||||||
<p><strong>Level: </strong>{{ level.level }}</p>
|
<p><strong>{% trans 'Level:' %} </strong>{{ level.level }}</p>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<p class="fw-bold"><i class="fas fa-phone-square-alt"></i> Contact Info</p>
|
<p class="fw-bold"><i class="fas fa-phone-square-alt"></i>{% trans 'Contact Info' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>Email:</strong> {{ user.email }}</p>
|
<p><strong>{% trans 'Email:' %}</strong> {{ user.email }}</p>
|
||||||
<p><strong>Tel No.:</strong> {{ user.phone }}</p>
|
<p><strong>{% trans 'Tel No.:' %}</strong> {{ user.phone }}</p>
|
||||||
<p><strong>Address/city:</strong> {{ user.address }}</p>
|
<p><strong>{% trans 'Address/city:' %}</strong> {{ user.address }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<p class="fw-bold"><i class="fa fa-calendar-day"></i> Important Dates</p>
|
<p class="fw-bold"><i class="fa fa-calendar-day"></i>{% trans 'Important Dates' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>Last login:</strong> {{ user.last_login }}</p>
|
<p><strong>{% trans 'Last login:' %}</strong> {{ user.last_login }}</p>
|
||||||
{% if current_semester and current_session %}
|
{% if current_semester and current_session %}
|
||||||
<p><strong>Academic Year:</strong> {{ current_semester }} Semester {{ current_session }}</p>
|
<p><strong>{% trans 'Academic Year:' %}</strong> {{ current_semester }} {% trans 'Semester' %} {{ current_session }}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<p><strong>Registered Date:</strong> {{ user.date_joined|date }}</p>
|
<p><strong>{% trans 'Registered Date:' %}</strong> {{ user.date_joined|date }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,8 +1,9 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %} {{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %} {{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
|
|
||||||
{% load static %}
|
{% load static %}
|
||||||
{% load i18n %}
|
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
@ -10,7 +11,7 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">{{ user.get_full_name }}</li>
|
<li class="breadcrumb-item active" aria-current="page">{{ user.get_full_name }}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
@ -25,8 +26,8 @@
|
|||||||
<img src="{{ user.picture.url }}" class="w-100">
|
<img src="{{ user.picture.url }}" class="w-100">
|
||||||
<ul class="px-2 list-unstyled">
|
<ul class="px-2 list-unstyled">
|
||||||
<li>{{ user.get_full_name|title }}</li>
|
<li>{{ user.get_full_name|title }}</li>
|
||||||
<li><strong>Last login: </strong>{{ user.last_login|date }}</li>
|
<li><strong>{% trans 'Last login' %}: </strong>{{ user.last_login|date }}</li>
|
||||||
<li><strong>Role: </strong>
|
<li><strong>{% trans 'Role' %}: </strong>
|
||||||
{{ user.get_user_role }}
|
{{ user.get_user_role }}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -36,15 +37,15 @@
|
|||||||
<div class="d-flex flex-column">
|
<div class="d-flex flex-column">
|
||||||
{% if user.is_student %}
|
{% if user.is_student %}
|
||||||
<a href="{% url 'student_edit' pk=user.id %}">
|
<a href="{% url 'student_edit' pk=user.id %}">
|
||||||
<i class="fas fa-user-edit unstyled"></i><span class="mobile-hide">Edit Profile</span>
|
<i class="fas fa-user-edit unstyled"></i><span class="mobile-hide">{% trans 'Edit Profile' %}</span>
|
||||||
</a>
|
</a>
|
||||||
<a href="{% url 'student_program_edit' user.id %}">
|
<a href="{% url 'student_program_edit' user.id %}">
|
||||||
<i class="fas fa-pen-to-square unstyled"></i><span class="mobile-hide">Change Program</span>
|
<i class="fas fa-pen-to-square unstyled"></i><span class="mobile-hide">{% trans 'Change Program' %}</span>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if user.is_lecturer %}
|
{% if user.is_lecturer %}
|
||||||
<a href="{% url 'staff_edit' pk=user.id %}">
|
<a href="{% url 'staff_edit' pk=user.id %}">
|
||||||
<i class="fas fa-user-edit unstyled"></i><span class="mobile-hide">Edit Profile</span>
|
<i class="fas fa-user-edit unstyled"></i><span class="mobile-hide">{% trans 'Edit Profile' %}</span>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
@ -71,7 +72,7 @@
|
|||||||
{% endif %} -->
|
{% endif %} -->
|
||||||
|
|
||||||
{% if user.is_lecturer %}
|
{% if user.is_lecturer %}
|
||||||
<p class="fw-bold"><i class="fas fa-book-open"></i> My Courses</p>
|
<p class="fw-bold"><i class="fas fa-book-open"></i> {% trans 'My Courses' %}</p>
|
||||||
{% if courses %}
|
{% if courses %}
|
||||||
<ul>
|
<ul>
|
||||||
{% for course in courses %}
|
{% for course in courses %}
|
||||||
@ -79,43 +80,43 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="text-danger">No courses assigned!</div>
|
<div class="text-danger">{% trans 'No courses assigned!' %}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<hr>
|
<hr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<p class="fw-bold"><i class="fas fa-user"></i> Personal Info</p>
|
<p class="fw-bold"><i class="fas fa-user"></i> {% trans 'Personal Info' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>First Name:</strong> {{ user.first_name|title }}</p>
|
<p><strong>{% trans 'First Name' %}:</strong> {{ user.first_name|title }}</p>
|
||||||
<p><strong>Last Name:</strong> {{ user.last_name|title }}</p>
|
<p><strong>{% trans 'Last Name' %}:</strong> {{ user.last_name|title }}</p>
|
||||||
<p><strong>ID No.:</strong> {{ user.username }}</p>
|
<p><strong>{% trans 'ID No.' %}:</strong> {{ user.username }}</p>
|
||||||
</div>
|
</div>
|
||||||
{% if user.is_student %}
|
{% if user.is_student %}
|
||||||
<hr>
|
<hr>
|
||||||
<p class="fw-bold"><i class="fas fa-graduation-cap"></i> Applicant Info</p>
|
<p class="fw-bold"><i class="fas fa-graduation-cap"></i> {% trans 'Applicant Info' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>School: </strong>Hawas Preparatory School</p>
|
<p><strong>{% trans 'School' %}: </strong>Unity College</p>
|
||||||
<p><strong>Level: </strong>{{ level.level }}</p>
|
<p><strong>{% trans 'Level' %}: </strong>{{ level.level }}</p>
|
||||||
<p><strong>Program: </strong>{{ student.program }}</p>
|
<p><strong>{% trans 'Program' %}: </strong>{{ student.program }}</p>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<p class="fw-bold"><i class="fas fa-phone-square-alt"></i> Contact Info</p>
|
<p class="fw-bold"><i class="fas fa-phone-square-alt"></i>{% trans 'Contact Info' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>Email:</strong> {{ user.email }}</p>
|
<p><strong>{% trans 'Email' %}:</strong> {{ user.email }}</p>
|
||||||
<p><strong>Tel No.:</strong> {{ user.phone }}</p>
|
<p><strong>{% trans 'Tel No.' %}:</strong> {{ user.phone }}</p>
|
||||||
<p><strong>Address/city:</strong> {{ user.address }}</p>
|
<p><strong>{% trans 'Address/city' %}:</strong> {{ user.address }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<p class="fw-bold"><i class="fa fa-calendar-day"></i> Important Dates</p>
|
<p class="fw-bold"><i class="fa fa-calendar-day"></i>{% trans 'Important Dates' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>Last login:</strong> {{ user.last_login }}</p>
|
<p><strong>{% trans 'Last login' %}:</strong> {{ user.last_login }}</p>
|
||||||
{% if current_semester and current_session %}
|
{% if current_semester and current_session %}
|
||||||
<p><strong>Academic Year:</strong> {{ current_semester }} Semester {{ current_session }}</p>
|
<p><strong>{% trans 'Academic Year' %}:</strong> {{ current_semester }} {% trans 'Semester' %} {{ current_session }}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<p><strong>Registered Date:</strong> {{ user.date_joined|date }}</p>
|
<p><strong>{% trans 'Registered Date' %}:</strong> {{ user.date_joined|date }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,13 +1,14 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Students</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Students' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -15,12 +16,12 @@
|
|||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<div class="manage-wrap">
|
<div class="manage-wrap">
|
||||||
<a class="btn btn-sm btn-primary" href="{% url 'add_student' %}"><i class="fas fa-plus"></i> Add Student</a>
|
<a class="btn btn-sm btn-primary" href="{% url 'add_student' %}"><i class="fas fa-plus"></i>{% trans 'Add Student' %}</a>
|
||||||
<a class="btn btn-sm btn-primary" target="_blank" href="{% url 'student_list_pdf' %}"><i class="fas fa-download"></i> Download pdf</a> <!--new-->
|
<a class="btn btn-sm btn-primary" target="_blank" href="{% url 'student_list_pdf' %}"><i class="fas fa-download"></i>{% trans 'Download pdf' %}</a> <!--new-->
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="title-1"><i class="fas fa-user-graduate"></i>Students</div>
|
<div class="title-1"><i class="fas fa-user-graduate"></i>{% trans 'Students' %}</div>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
@ -32,12 +33,12 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th> ID No. </th>
|
<th>{% trans 'ID No.' %} </th>
|
||||||
<th> Full Name </th>
|
<th> {% trans 'Full Name' %} </th>
|
||||||
<th> Email </th>
|
<th> {% trans 'Email' %} </th>
|
||||||
<th> Program </th>
|
<th> {% trans 'Program' %} </th>
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<th> Action </th>
|
<th> {% trans 'Action' %} </th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -57,9 +58,9 @@
|
|||||||
<i class="fa fa-ellipsis-vertical"></i>
|
<i class="fa fa-ellipsis-vertical"></i>
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu position-fixed">
|
<ul class="dropdown-menu position-fixed">
|
||||||
<li><a class="dropdown-item" href="{% url 'student_edit' student.student.pk %}"><i class="fas fa-edit"></i> Update</a></li>
|
<li><a class="dropdown-item" href="{% url 'student_edit' student.student.pk %}"><i class="fas fa-edit"></i>{% trans 'Update' %}</a></li>
|
||||||
<li><a class="dropdown-item" target="_blank" href="{% url 'profile_single' student.student.id %}?download_pdf=1"><i class="fas fa-download"></i> Download PDF</a></li>
|
<li><a class="dropdown-item" target="_blank" href="{% url 'profile_single' student.student.id %}?download_pdf=1"><i class="fas fa-download"></i>{% trans 'Download PDF' %}</a></li>
|
||||||
<li><a class="dropdown-item text-danger" href="{% url 'student_delete' student.pk %}"><i class="fas fa-trash-alt"></i> Delete</a></li>
|
<li><a class="dropdown-item text-danger" href="{% url 'student_delete' student.pk %}"><i class="fas fa-trash-alt"></i>{% trans 'Delete' %}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
@ -69,11 +70,11 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td colspan="6">
|
<td colspan="6">
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No Student.
|
{% trans 'No Student.' %}
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<a href="{% url 'add_student' %}">
|
<a href="{% url 'add_student' %}">
|
||||||
<i class="primary" style="font-size: 22px;">
|
<i class="primary" style="font-size: 22px;">
|
||||||
Add Student Now.
|
{% trans 'Add Student Now.' %}
|
||||||
</i>
|
</i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
{% load static %}
|
{% load static %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.top-side {
|
.top-side {
|
||||||
@ -33,89 +34,92 @@
|
|||||||
{% url 'course_registration' as cr %} {% url 'edit_profile' as ep %} {% url 'change_password' as cp %}
|
{% url 'course_registration' as cr %} {% url 'edit_profile' as ep %} {% url 'change_password' as cp %}
|
||||||
{% url 'quiz_progress' as qpr %} {% url 'quiz_marking' as qce %} {% url 'user_course_list' as ucl %}
|
{% url 'quiz_progress' as qpr %} {% url 'quiz_marking' as qce %} {% url 'user_course_list' as ucl %}
|
||||||
{% url 'admin_panel' as admin_p %}
|
{% url 'admin_panel' as admin_p %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<li class="{% if request.path == dash %}active{% endif %}">
|
<li class="{% if request.path == dash %}active{% endif %}">
|
||||||
<a href="{% url 'dashboard' %}"><i class="fas fa-tachometer-alt"></i>Dashboard</a>
|
<a href="{% url 'dashboard' %}"><i class="fas fa-tachometer-alt"></i>{% trans 'Dashboard' %}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li class="{% if request.path == hom %}active{% endif %}">
|
<li class="{% if request.path == hom %}active{% endif %}">
|
||||||
<a href="{% url 'home' %}"><i class="fas fa-home"></i>Home</a>
|
<a href="{% url 'home' %}"><i class="fas fa-home"></i>{% trans 'Home' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="{% if request.path == prof %}active{% endif %}">
|
<li class="{% if request.path == prof %}active{% endif %}">
|
||||||
<a href="{% url 'profile' %}"><i class="fas fa-user"></i>Profile</a>
|
<a href="{% url 'profile' %}"><i class="fas fa-user"></i>{% trans 'Profile' %}</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<li class="{% if request.path == admin_p %}active{% endif %}">
|
<li class="{% if request.path == admin_p %}active{% endif %}">
|
||||||
<a href="{% url 'admin_panel' %}"><i class="fas fa-user-tie"></i>Admin Panel</a>
|
<a href="{% url 'admin_panel' %}"><i class="fas fa-user-tie"></i>{% trans 'Admin Panel' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="{% if request.path == lec %}active{% endif %}">
|
<li class="{% if request.path == lec %}active{% endif %}">
|
||||||
<a href="{% url 'lecturer_list' %}"><i class="fas fa-chalkboard-teacher"></i>Lecturers</a>
|
<a href="{% url 'lecturer_list' %}"><i class="fas fa-chalkboard-teacher"></i>{% trans 'Lecturers' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="{% if request.path == stu %}active{% endif %}">
|
<li class="{% if request.path == stu %}active{% endif %}">
|
||||||
<a href="{% url 'student_list' %}"><i class="fas fa-user-graduate"></i>Students</a>
|
<a href="{% url 'student_list' %}"><i class="fas fa-user-graduate"></i>{% trans 'Students' %}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if request.user.is_lecturer or request.user.is_student %}
|
{% if request.user.is_lecturer or request.user.is_student %}
|
||||||
<li class="{% if request.path == ucl %}active{% endif %}">
|
<li class="{% if request.path == ucl %}active{% endif %}">
|
||||||
<a href="{% url 'user_course_list' %}"><i class="fas fa-book"></i>My Courses</a>
|
<a href="{% url 'user_course_list' %}"><i class="fas fa-book"></i>{% trans 'My Courses' %}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<li class="{% if request.path == pro %}active{% endif %}">
|
<li class="{% if request.path == pro %}active{% endif %}">
|
||||||
<a href="{% url 'programs' %}"><i class="fas fa-book-open"></i>Programs & Courses</a>
|
<a href="{% url 'programs' %}"><i class="fas fa-book-open"></i>{% trans 'Programs & Courses' %}</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
{% if request.user.is_superuser or request.user.is_lecturer %}
|
{% if request.user.is_superuser or request.user.is_lecturer %}
|
||||||
<li class="{% if request.path == qce %}active{% endif %}">
|
<li class="{% if request.path == qce %}active{% endif %}">
|
||||||
<a href="{% url 'quiz_marking' %}"><i class="fas fa-check-double"></i>Complete Exams</a>
|
<a href="{% url 'quiz_marking' %}"><i class="fas fa-check-double"></i>{% trans 'Complete Exams' %}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<li class="{% if request.path == qpr %}active{% endif %}">
|
<li class="{% if request.path == qpr %}active{% endif %}">
|
||||||
<a href="{% url 'quiz_progress' %}"><i class="fas fa-record-vinyl"></i>Quiz Progress Rec</a>
|
<a href="{% url 'quiz_progress' %}"><i class="fas fa-record-vinyl"></i>{% trans 'Quiz Progress Rec' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="{% if request.path == cav %}active{% endif %}">
|
<li class="{% if request.path == cav %}active{% endif %}">
|
||||||
<a href="{% url 'course_allocation_view' %}"><i class="fas fa-tasks"></i>Course Allocation</a>
|
<a href="{% url 'course_allocation_view' %}"><i class="fas fa-tasks"></i>{% trans 'Course Allocation' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="{% if request.path == sess %}active{% endif %}">
|
<li class="{% if request.path == sess %}active{% endif %}">
|
||||||
<a href="{% url 'session_list' %}"><i class="fas fa-calendar-week"></i>Manage Session</a>
|
<a href="{% url 'session_list' %}"><i class="fas fa-calendar-week"></i>{% trans 'Manage Session' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="{% if request.path == sem %}active{% endif %}">
|
<li class="{% if request.path == sem %}active{% endif %}">
|
||||||
<a href="{% url 'semester_list' %}"><i class="fas fa-calendar-alt"></i>Manage Semester</a>
|
<a href="{% url 'semester_list' %}"><i class="fas fa-calendar-alt"></i>{% trans 'Manage Semester' %}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if request.user.is_lecturer %}
|
{% if request.user.is_lecturer %}
|
||||||
<li class="{% if request.path == ascore %}active{% endif %}">
|
<li class="{% if request.path == ascore %}active{% endif %}">
|
||||||
<a href="{% url 'add_score' %}"><i class="fas fa-table"></i>Manage Score</a>
|
<a href="{% url 'add_score' %}"><i class="fas fa-table"></i>{% trans 'Manage Score' %}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if request.user.is_student %}
|
{% if request.user.is_student %}
|
||||||
<li class="{% if request.path == qpr %}active{% endif %}">
|
<li class="{% if request.path == qpr %}active{% endif %}">
|
||||||
<a href="{% url 'quiz_progress' %}"><i class="fas fa-record-vinyl"></i>Quiz Progress Rec</a>
|
<a href="{% url 'quiz_progress' %}"><i class="fas fa-record-vinyl"></i>{% trans 'Quiz Progress Rec' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="{% if request.path == vr %}active{% endif %}">
|
<li class="{% if request.path == vr %}active{% endif %}">
|
||||||
<a href="{% url 'grade_results' %}"><i class="fa fa-spell-check"></i>Grade Results</a>
|
<a href="{% url 'grade_results' %}"><i class="fa fa-spell-check"></i>{% trans 'Grade Results' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="{% if request.path == ar %}active{% endif %}">
|
<li class="{% if request.path == ar %}active{% endif %}">
|
||||||
<a href="{% url 'ass_results' %}"><i class="fa fa-list-ol"></i> Assesment Results</a>
|
<a href="{% url 'ass_results' %}"><i class="fa fa-list-ol"></i> {% trans 'Assesment Results' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="{% if request.path == cr %}active{% endif %}">
|
<li class="{% if request.path == cr %}active{% endif %}">
|
||||||
<a href="{% url 'course_registration' %}"><i class="fas fa-plus"></i>Add & Drop Course</a>
|
<a href="{% url 'course_registration' %}"><i class="fas fa-plus"></i>{% trans 'Add' %} &{% trans 'Drop Course' %}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<br />
|
<br />
|
||||||
<p class="ml-3">→ Others</p>
|
<p class="ml-3">→ Others</p>
|
||||||
<li class="{% if request.path == ep %}active{% endif %}">
|
<li class="{% if request.path == ep %}active{% endif %}">
|
||||||
<a href="{% url 'edit_profile' %}"><i class="fas fa-cogs"></i>Account Setting</a>
|
<a href="{% url 'edit_profile' %}"><i class="fas fa-cogs"></i>{% trans 'Account Setting' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="{% if request.path == cp %}active{% endif %}">
|
<li class="{% if request.path == cp %}active{% endif %}">
|
||||||
<a href="{% url 'change_password' %}"><i class="fas fa-key"></i>Change Password</a>
|
<a href="{% url 'change_password' %}"><i class="fas fa-key"></i>{% trans 'Change Password' %}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -123,12 +127,12 @@
|
|||||||
<footer class="card-footer mt-5 pt-3 pb-5 px-2">
|
<footer class="card-footer mt-5 pt-3 pb-5 px-2">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p class="small m-0">
|
<p class="small m-0">
|
||||||
Read our <a href="#"> Privacy </a> and <a href="#"> Terms of use. </a>
|
{% trans 'Read our' %} <a href="#"> {% trans 'Privacy' %} </a> {% trans 'and' %} <a href="#"> {% trans 'Terms of use.' %}' </a>
|
||||||
<br />Django LMS © <script>document.write(new Date().getFullYear());</script>
|
<br />Django LMS © <script>document.write(new Date().getFullYear());</script>
|
||||||
<br />
|
<br />
|
||||||
</p>
|
</p>
|
||||||
<a href="https://github.com/adilmohak/django-lms" class="btn btn-sm btn-dark mx-auto" target="_blank">
|
<a href="https://github.com/adilmohak/django-lms" class="btn btn-sm btn-dark mx-auto" target="_blank">
|
||||||
⭐️ Star This Project
|
{% trans '⭐️ Star This Project' %}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
{% load static %}
|
{% load static %}
|
||||||
|
{% load i18n %}
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
@ -40,7 +41,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
<script src="{% url 'javascript-catalog' %}"></script>
|
||||||
<script type="text/javascript" src="{% static 'vendor/jquery-3.7.1/jquery-3.7.1.min.js' %}"></script>
|
<script type="text/javascript" src="{% static 'vendor/jquery-3.7.1/jquery-3.7.1.min.js' %}"></script>
|
||||||
<script type="text/javascript" src="{% static 'vendor/bootstrap-5.3.2/js/bootstrap.bundle.min.js' %}"></script>
|
<script type="text/javascript" src="{% static 'vendor/bootstrap-5.3.2/js/bootstrap.bundle.min.js' %}"></script>
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %} Dashboard | Learning management system {% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %} {% trans 'Dashboard' %} | {% trans 'Learning management system' %} {% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
@ -9,13 +10,13 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Dashboard</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Dashboard' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
{% for message in messages %}
|
{% for message in messages %}Program
|
||||||
{% if message.tags == 'error' %}
|
{% if message.tags == 'error' %}
|
||||||
<div class="alert alert-danger">
|
<div class="alert alert-danger">
|
||||||
<i class="fas fa-exclamation-circle"></i>{{ message }}
|
<i class="fas fa-exclamation-circle"></i>{{ message }}
|
||||||
@ -29,18 +30,18 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||||
<h1 class="title-1">Dashboard</h1>
|
<h1 class="title-1">{% trans 'Dashboard' %}</h1>
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<button type="button" class="btn btn-light dropdown-toggle" data-bs-toggle="dropdown"
|
<button type="button" class="btn btn-light dropdown-toggle" data-bs-toggle="dropdown"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="fas fa-cog"></i>
|
<i class="fas fa-cog"></i>
|
||||||
</button>
|
</button>
|
||||||
<div class="dropdown-menu">
|
<div class="dropdown-menu">
|
||||||
<h6 class="dropdown-header">Dashboard settings</h6>
|
<h6 class="dropdown-header">{% trans 'Dashboard settings' %}</h6>
|
||||||
<button class="dropdown-item active" type="button">Display grid</button>
|
<button class="dropdown-item active" type="button">{% trans 'Display grid' %}</button>
|
||||||
<button class="dropdown-item" type="button">Display table</button>
|
<button class="dropdown-item" type="button">{% trans 'Display table' %}</button>
|
||||||
<hr>
|
<hr>
|
||||||
<button class="dropdown-item" type="button">Manage dashboard</button>
|
<button class="dropdown-item" type="button">{% trans 'Manage dashboard' %}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -50,7 +51,7 @@
|
|||||||
<div class="card-count p-3">
|
<div class="card-count p-3">
|
||||||
<h3><i class="fas fa-users bg-light-aqua"></i></h3>
|
<h3><i class="fas fa-users bg-light-aqua"></i></h3>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
Students
|
{% trans 'Students' %}
|
||||||
<h2>{{ student_count }}</h2>
|
<h2>{{ student_count }}</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -59,7 +60,7 @@
|
|||||||
<div class="card-count p-3">
|
<div class="card-count p-3">
|
||||||
<h3><i class="fas fa-users bg-light-orange"></i></h3>
|
<h3><i class="fas fa-users bg-light-orange"></i></h3>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
Lecturers
|
{% trans 'Lecturers' %}
|
||||||
<h2>{{ lecturer_count }}</h2>
|
<h2>{{ lecturer_count }}</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -68,7 +69,7 @@
|
|||||||
<div class="card-count p-3">
|
<div class="card-count p-3">
|
||||||
<h3><i class="fas fa-users bg-light-red"></i></h3>
|
<h3><i class="fas fa-users bg-light-red"></i></h3>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
Administrators
|
{% trans 'Administrators' %}
|
||||||
<h2>{{ superuser_count }}</h2>
|
<h2>{{ superuser_count }}</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -77,7 +78,7 @@
|
|||||||
<div class="card-count p-3">
|
<div class="card-count p-3">
|
||||||
<h3><i class="fas fa-users bg-light-purple"></i></h3>
|
<h3><i class="fas fa-users bg-light-purple"></i></h3>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
Lab Assistance
|
{% trans 'Lab Assistance' %}
|
||||||
<h2>500</h2>
|
<h2>500</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -86,7 +87,7 @@
|
|||||||
<div class="card-count p-3">
|
<div class="card-count p-3">
|
||||||
<h3><i class="fas fa-users bg-light-red"></i></h3>
|
<h3><i class="fas fa-users bg-light-red"></i></h3>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
Librarians
|
{% trans 'Librarians' %}
|
||||||
<h2>300</h2>
|
<h2>300</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -95,7 +96,7 @@
|
|||||||
<div class="card-count p-3">
|
<div class="card-count p-3">
|
||||||
<h3><i class="fas fa-users bg-light-purple"></i></h3>
|
<h3><i class="fas fa-users bg-light-purple"></i></h3>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
Supervisors
|
{% trans 'Supervisors' %}
|
||||||
<h2>660</h2>
|
<h2>660</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -104,7 +105,7 @@
|
|||||||
<div class="card-count p-3">
|
<div class="card-count p-3">
|
||||||
<h3><i class="fas fa-users bg-light-orange"></i></h3>
|
<h3><i class="fas fa-users bg-light-orange"></i></h3>
|
||||||
<div class="text-right pl-2">
|
<div class="text-right pl-2">
|
||||||
Office Assistance
|
{% trans 'Office Assistance' %}
|
||||||
<h2>1,700</h2>
|
<h2>1,700</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -113,7 +114,7 @@
|
|||||||
<div class="card-count p-3">
|
<div class="card-count p-3">
|
||||||
<h3><i class="fas fa-users bg-light-aqua"></i></h3>
|
<h3><i class="fas fa-users bg-light-aqua"></i></h3>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
Others
|
{% trans 'Others' %}
|
||||||
<h2>1,250</h2>
|
<h2>1,250</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -141,12 +142,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 p-2">
|
<div class="col-md-6 p-2">
|
||||||
<div class="card w-100 h-100 p-3">
|
<div class="card w-100 h-100 p-3">
|
||||||
<h5>Latest activities</h5>
|
<h5>{% trans 'Latest activities' %}</h5>
|
||||||
<ul class="ps-2 small">
|
<ul class="ps-2 small">
|
||||||
{% for log in logs %}
|
{% for log in logs %}
|
||||||
<li>{{ log.message }} <span class="text-muted">- {{ log.created_at }}</span></li>
|
<li>{{ log.message }} <span class="text-muted">- {{ log.created_at }}</span></li>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
<li>No recent activity</li>
|
<li>{% trans 'No recent activity' %}</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -154,7 +155,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<div class="bg-white p-3">
|
<div class="bg-white p-3">
|
||||||
<h5 class="border-bottom pb-2">School Demographics</h5>
|
<h5 class="border-bottom pb-2">{% trans 'School Demographics' %}</h5>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<i class="fas fa-expand-alt"></i>
|
<i class="fas fa-expand-alt"></i>
|
||||||
@ -175,8 +176,20 @@
|
|||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
|
|
||||||
|
<script src="{% url 'javascript-catalog' %}"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||||
|
<script src="{% static 'js/dashboard.js' %}"></script>
|
||||||
|
<script>
|
||||||
|
$('.fa-expand-alt').click(function () {
|
||||||
|
if ($(this).parent('.chart-wrap').parent('.col-md-6').hasClass('expand')) {
|
||||||
|
$('.col-md-6.expand').removeClass('expand');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('.col-md-6.expand')?.removeClass('expand');
|
||||||
|
$(this).parent('.chart-wrap').parent('.col-md-6').addClass('expand');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
<script>
|
<script>
|
||||||
const malesCount = {{ males_count }}
|
const malesCount = {{ males_count }}
|
||||||
const femalesCount = {{ females_count }}
|
const femalesCount = {{ females_count }}
|
||||||
@ -185,35 +198,35 @@
|
|||||||
|
|
||||||
// Setup
|
// Setup
|
||||||
const labels = [
|
const labels = [
|
||||||
'January',
|
gettext('January'),
|
||||||
'February',
|
gettext('February'),
|
||||||
'March',
|
gettext('March'),
|
||||||
'April',
|
gettext('April'),
|
||||||
'May',
|
gettext('May'),
|
||||||
'June',
|
gettext('June'),
|
||||||
];
|
];
|
||||||
const data = {
|
const data = {
|
||||||
labels: labels,
|
labels: labels,
|
||||||
datasets: [{
|
datasets: [{
|
||||||
label: 'Students',
|
label: gettext('Students'),
|
||||||
backgroundColor: 'rgba(86, 224, 224, 0.5)',
|
backgroundColor: 'rgba(86, 224, 224, 0.5)',
|
||||||
borderColor: 'rgb(86, 224, 224)',
|
borderColor: 'rgb(86, 224, 224)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
data: [0, 10, 5, 2, 20, 30, 45]
|
data: [0, 10, 5, 2, 20, 30, 45]
|
||||||
}, {
|
}, {
|
||||||
label: 'Teachers',
|
label: gettext('Teachers'),
|
||||||
backgroundColor: 'rgba(253, 174, 28, 0.5)',
|
backgroundColor: 'rgba(253, 174, 28, 0.5)',
|
||||||
borderColor: 'rgb(253, 174, 28)',
|
borderColor: 'rgb(253, 174, 28)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
data: [20, 0, 15, 4, 6, 4, 60],
|
data: [20, 0, 15, 4, 6, 4, 60],
|
||||||
}, {
|
}, {
|
||||||
label: 'Admins',
|
label: gettext('Admins'),
|
||||||
backgroundColor: 'rgba(203, 31, 255, 0.5)',
|
backgroundColor: 'rgba(203, 31, 255, 0.5)',
|
||||||
borderColor: 'rgb(203, 31, 255)',
|
borderColor: 'rgb(203, 31, 255)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
data: [85, 30, 34, 20, 20, 55, 45],
|
data: [85, 30, 34, 20, 20, 55, 45],
|
||||||
}, {
|
}, {
|
||||||
label: 'Stuffs',
|
label: gettext('Stuffs'),
|
||||||
backgroundColor: 'rgba(255, 19, 157, 0.5)',
|
backgroundColor: 'rgba(255, 19, 157, 0.5)',
|
||||||
borderColor: 'rgb(255, 19, 157)',
|
borderColor: 'rgb(255, 19, 157)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
@ -229,7 +242,7 @@
|
|||||||
plugins: {
|
plugins: {
|
||||||
title: {
|
title: {
|
||||||
display: true,
|
display: true,
|
||||||
text: 'Website Traffic',
|
text: gettext('Website Traffic'),
|
||||||
padding: 15
|
padding: 15
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -248,31 +261,31 @@
|
|||||||
const dataEnrollment = {
|
const dataEnrollment = {
|
||||||
labels: labelsEnrollment,
|
labels: labelsEnrollment,
|
||||||
datasets: [{
|
datasets: [{
|
||||||
label: 'Comp.S',
|
label: gettext('Comp.S'),
|
||||||
backgroundColor: 'rgba(86, 224, 224, 0.5)',
|
backgroundColor: 'rgba(86, 224, 224, 0.5)',
|
||||||
borderColor: 'rgb(86, 224, 224)',
|
borderColor: 'rgb(86, 224, 224)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
data: [0, 10, 5, 2, 20, 30, 45]
|
data: [0, 10, 5, 2, 20, 30, 45]
|
||||||
}, {
|
}, {
|
||||||
label: 'Architecture',
|
label: gettext('Architecture'),
|
||||||
backgroundColor: 'rgba(253, 174, 28, 0.5)',
|
backgroundColor: 'rgba(253, 174, 28, 0.5)',
|
||||||
borderColor: 'rgb(253, 174, 28)',
|
borderColor: 'rgb(253, 174, 28)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
data: [20, 0, 15, 4, 6, 4, 60],
|
data: [20, 0, 15, 4, 6, 4, 60],
|
||||||
}, {
|
}, {
|
||||||
label: 'Civil Eng',
|
label: gettext('Civil Eng'),
|
||||||
backgroundColor: 'rgba(203, 31, 255, 0.5)',
|
backgroundColor: 'rgba(203, 31, 255, 0.5)',
|
||||||
borderColor: 'rgb(203, 31, 255)',
|
borderColor: 'rgb(203, 31, 255)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
data: [85, 30, 34, 20, 20, 55, 45],
|
data: [85, 30, 34, 20, 20, 55, 45],
|
||||||
}, {
|
}, {
|
||||||
label: 'Accounting',
|
label: gettext('Accounting'),
|
||||||
backgroundColor: 'rgba(255, 19, 157, 0.5)',
|
backgroundColor: 'rgba(255, 19, 157, 0.5)',
|
||||||
borderColor: 'rgb(255, 19, 157)',
|
borderColor: 'rgb(255, 19, 157)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
data: [45, 75, 70, 80, 20, 30, 90],
|
data: [45, 75, 70, 80, 20, 30, 90],
|
||||||
}, {
|
}, {
|
||||||
label: 'Business M.',
|
label: gettext('Business M.'),
|
||||||
backgroundColor: 'rgba(0, 0, 0, 0.5)',
|
backgroundColor: 'rgba(0, 0, 0, 0.5)',
|
||||||
borderColor: 'rgb(0, 0, 0)',
|
borderColor: 'rgb(0, 0, 0)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
@ -288,7 +301,7 @@
|
|||||||
plugins: {
|
plugins: {
|
||||||
title: {
|
title: {
|
||||||
display: true,
|
display: true,
|
||||||
text: 'Enrollment per course',
|
text: gettext('Enrollment per course'),
|
||||||
padding: 20
|
padding: 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -306,25 +319,25 @@
|
|||||||
const dataGrade = {
|
const dataGrade = {
|
||||||
labels: labelsGrade,
|
labels: labelsGrade,
|
||||||
datasets: [{
|
datasets: [{
|
||||||
label: "Comp sci.",
|
label: gettext("Comp sci."),
|
||||||
backgroundColor: 'rgba(86, 224, 224, 0.5)',
|
backgroundColor: 'rgba(86, 224, 224, 0.5)',
|
||||||
borderColor: 'rgb(86, 224, 224)',
|
borderColor: 'rgb(86, 224, 224)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
data: [0, 10, 5, 2, 20, 30, 45]
|
data: [0, 10, 5, 2, 20, 30, 45]
|
||||||
}, {
|
}, {
|
||||||
label: "Civil eng.",
|
label: gettext("Civil eng."),
|
||||||
backgroundColor: 'rgba(253, 174, 28, 0.5)',
|
backgroundColor: 'rgba(253, 174, 28, 0.5)',
|
||||||
borderColor: 'rgb(253, 174, 28)',
|
borderColor: 'rgb(253, 174, 28)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
data: [20, 0, 15, 4, 6, 4, 60],
|
data: [20, 0, 15, 4, 6, 4, 60],
|
||||||
}, {
|
}, {
|
||||||
label: "Architect.",
|
label: gettext("Architect."),
|
||||||
backgroundColor: 'rgba(203, 31, 255, 0.5)',
|
backgroundColor: 'rgba(203, 31, 255, 0.5)',
|
||||||
borderColor: 'rgb(203, 31, 255)',
|
borderColor: 'rgb(203, 31, 255)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
data: [85, 30, 34, 20, 20, 55, 45],
|
data: [85, 30, 34, 20, 20, 55, 45],
|
||||||
}, {
|
}, {
|
||||||
label: "Economics",
|
label: gettext("Economics"),
|
||||||
backgroundColor: 'rgba(255, 19, 157, 0.5)',
|
backgroundColor: 'rgba(255, 19, 157, 0.5)',
|
||||||
borderColor: 'rgb(255, 19, 157)',
|
borderColor: 'rgb(255, 19, 157)',
|
||||||
hoverBorderWidth: 3,
|
hoverBorderWidth: 3,
|
||||||
@ -340,7 +353,7 @@
|
|||||||
plugins: {
|
plugins: {
|
||||||
title: {
|
title: {
|
||||||
display: true,
|
display: true,
|
||||||
text: 'Students average grade (performance)',
|
text: gettext('Students average grade (performance)'),
|
||||||
padding: 20
|
padding: 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -349,11 +362,11 @@
|
|||||||
|
|
||||||
const dataGender = {
|
const dataGender = {
|
||||||
labels: [
|
labels: [
|
||||||
'Man',
|
gettext('Man'),
|
||||||
'Women'
|
gettext('Women')
|
||||||
],
|
],
|
||||||
datasets: [{
|
datasets: [{
|
||||||
label: "Students Gender Dataset",
|
label: gettext("Students Gender Dataset"),
|
||||||
data: [malesCount, femalesCount],
|
data: [malesCount, femalesCount],
|
||||||
backgroundColor: [
|
backgroundColor: [
|
||||||
'rgb(255, 99, 132)',
|
'rgb(255, 99, 132)',
|
||||||
@ -371,7 +384,7 @@
|
|||||||
plugins: {
|
plugins: {
|
||||||
title: {
|
title: {
|
||||||
display: true,
|
display: true,
|
||||||
text: 'Students Gender',
|
text: gettext('Students Gender'),
|
||||||
padding: 20
|
padding: 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -380,12 +393,12 @@
|
|||||||
|
|
||||||
const dataQualification = {
|
const dataQualification = {
|
||||||
labels: [
|
labels: [
|
||||||
'PHD',
|
gettext('PHD'),
|
||||||
'Masters',
|
gettext('Masters'),
|
||||||
'BSc degree'
|
gettext('BSc degree')
|
||||||
],
|
],
|
||||||
datasets: [{
|
datasets: [{
|
||||||
label: "Lecturer Qualifications Dataset",
|
label: gettext("Lecturer Qualifications Dataset"),
|
||||||
data: [24, 30, 26],
|
data: [24, 30, 26],
|
||||||
backgroundColor: [
|
backgroundColor: [
|
||||||
'rgb(255, 99, 132)',
|
'rgb(255, 99, 132)',
|
||||||
@ -403,7 +416,7 @@
|
|||||||
plugins: {
|
plugins: {
|
||||||
title: {
|
title: {
|
||||||
display: true,
|
display: true,
|
||||||
text: 'Lecturer qualifications',
|
text: gettext('Lecturer qualifications'),
|
||||||
padding: 20
|
padding: 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -412,12 +425,12 @@
|
|||||||
|
|
||||||
const dataLevels = {
|
const dataLevels = {
|
||||||
labels: [
|
labels: [
|
||||||
'PHD',
|
gettext('PHD'),
|
||||||
'Masters',
|
gettext('Masters'),
|
||||||
'BSc degree'
|
gettext('BSc degree')
|
||||||
],
|
],
|
||||||
datasets: [{
|
datasets: [{
|
||||||
label: "Students level",
|
label: gettext("Students level"),
|
||||||
data: [14, 30, 56],
|
data: [14, 30, 56],
|
||||||
backgroundColor: [
|
backgroundColor: [
|
||||||
'rgb(255, 99, 132)',
|
'rgb(255, 99, 132)',
|
||||||
@ -435,7 +448,7 @@
|
|||||||
plugins: {
|
plugins: {
|
||||||
title: {
|
title: {
|
||||||
display: true,
|
display: true,
|
||||||
text: 'Student levels',
|
text: gettext('Student levels'),
|
||||||
padding: 20
|
padding: 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -445,16 +458,4 @@
|
|||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
|
||||||
$('.fa-expand-alt').click(function () {
|
|
||||||
if ($(this).parent('.chart-wrap').parent('.col-md-6').hasClass('expand')) {
|
|
||||||
$('.col-md-6.expand').removeClass('expand');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('.col-md-6.expand')?.removeClass('expand');
|
|
||||||
$(this).parent('.chart-wrap').parent('.col-md-6').addClass('expand');
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
@ -30,28 +31,28 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item active" aria-current="page">Home</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Home' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<div class="manage-wrap">
|
<div class="manage-wrap">
|
||||||
<a class="btn btn-primary" href="{% url 'add_item' %}"><i class="fas fa-plus"></i> Add New Post</a>
|
<a class="btn btn-primary" href="{% url 'add_item' %}"><i class="fas fa-plus"></i>{% trans 'Add New Post' %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="title-1">News & Events</div>
|
<div class="title-1">{% trans 'News' %} & {% trans 'Events' %}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-2 ms-auto d-flex">
|
<div class="col-md-2 ms-auto d-flex">
|
||||||
<div class="me-3">
|
<div class="me-3">
|
||||||
<span class="color-indicator bg-primary"></span> News
|
<span class="color-indicator bg-primary"></span> {% trans 'News' %}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span class="color-indicator bg-purple"></span> Events
|
<span class="color-indicator bg-purple"></span> {% trans 'Events' %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -61,7 +62,7 @@
|
|||||||
{% for item in items %}
|
{% for item in items %}
|
||||||
<div class="col-md-4 mb-4">
|
<div class="col-md-4 mb-4">
|
||||||
<div class="bg-white border">
|
<div class="bg-white border">
|
||||||
<div class="card-header-ne {% if item.posted_as == 'News' %}news{% else %}events{% endif %} p-2">
|
<div class="card-header-ne {% if item.posted_as == 'News' %}{% trans 'news' %}{% else %}{% trans 'events' %}{% endif %} p-2">
|
||||||
<span class="p-0">
|
<span class="p-0">
|
||||||
{{ item.title|title }}
|
{{ item.title|title }}
|
||||||
</span>
|
</span>
|
||||||
@ -72,9 +73,9 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="dropdown-menu">
|
<div class="dropdown-menu">
|
||||||
<a class="dropdown-item" href="{% url 'edit_post' pk=item.id %}"><i
|
<a class="dropdown-item" href="{% url 'edit_post' pk=item.id %}"><i
|
||||||
class="fas fa-pencil-alt"></i> Edit</a>
|
class="fas fa-pencil-alt"></i>{% trans 'Edit' %}</a>
|
||||||
<a class="dropdown-item" href="{% url 'delete_post' pk=item.id %}"><i
|
<a class="dropdown-item" href="{% url 'delete_post' pk=item.id %}"><i
|
||||||
class="fas fa-trash-alt"></i> Delete</a>
|
class="fas fa-trash-alt"></i>{% trans 'Delete' %}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -84,7 +85,7 @@
|
|||||||
|
|
||||||
<div class="bg-light p-1 small text-secondary text-end pe-3">
|
<div class="bg-light p-1 small text-secondary text-end pe-3">
|
||||||
<i class="fa fa-calendar small unstyled"></i>
|
<i class="fa fa-calendar small unstyled"></i>
|
||||||
{{ item.updated_date|timesince }} ago
|
{{ item.updated_date|timesince }} {% trans 'ago' %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -94,7 +95,7 @@
|
|||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<h4 class="text-center mt-5 py-5 text-muted">
|
<h4 class="text-center mt-5 py-5 text-muted">
|
||||||
<i class="fa-regular fa-folder-open me-2"></i> School news and events will appear here.
|
<i class="fa-regular fa-folder-open me-2"></i>{% trans 'School news and events will appear here.' %}
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,8 +8,8 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Post form</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Post form' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -17,12 +18,12 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 mx-auto">
|
<div class="col-md-6 mx-auto">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Post Form</p>
|
<p class="form-title">{% trans 'Post Form' %}</p>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form action="" method="POST">{% csrf_token %}
|
<form action="" method="POST">{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
<input class="btn btn-primary" type="submit" value="Save">
|
<input class="btn btn-primary" type="submit" value="{% trans 'Save' %}">
|
||||||
<a class="btn" href="{% url 'home' %}" style="float: right;">Cancel</a>
|
<a class="btn" href="{% url 'home' %}" style="float: right;">{% trans 'Cancel' %}</a>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,22 +1,23 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %} {% endblock title %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Semester list</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Semester list' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<div class="manage-wrap">
|
<div class="manage-wrap">
|
||||||
<a class="btn btn-primary" href="{% url 'add_semester' %}"><i class="fas fa-plus"></i>Add New Semester</a>
|
<a class="btn btn-primary" href="{% url 'add_semester' %}"><i class="fas fa-plus"></i>{% trans 'Add New Semester' %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="title-1"><i class="fas fa-calendar-alt"></i>Semester List</div>
|
<div class="title-1"><i class="fas fa-calendar-alt"></i>{% trans 'Semester List' %}</div>
|
||||||
|
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
{% for message in messages %}
|
{% for message in messages %}
|
||||||
@ -37,12 +38,12 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th> Semester </th>
|
<th> {% trans 'Semester' %} </th>
|
||||||
<th> Is Current semester </th>
|
<th> {% trans 'Is Current semester' %} </th>
|
||||||
<th> Session </th>
|
<th> {% trans 'Session' %} </th>
|
||||||
<th> Next Semester Begins </th>
|
<th> {% trans 'Next Semester Begins' %} </th>
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<th> Actions </th>
|
<th> {% trans 'Actions' %} </th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -65,9 +66,9 @@
|
|||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<td>
|
<td>
|
||||||
<div class="update-delete">
|
<div class="update-delete">
|
||||||
<a href="{% url 'edit_semester' pk=semester.pk %}" class="update" title="Edit"><i
|
<a href="{% url 'edit_semester' pk=semester.pk %}" class="update" title="{% trans 'Edit' %}"><i
|
||||||
class="fas fa-pencil-alt"></i></a>
|
class="fas fa-pencil-alt"></i></a>
|
||||||
<a href="{% url 'delete_semester' pk=semester.pk %}" class="delete" title="Delete"><i
|
<a href="{% url 'delete_semester' pk=semester.pk %}" class="delete" title="{% trans 'Delete' %}"><i
|
||||||
class="fas fa-trash-alt"></i></a>
|
class="fas fa-trash-alt"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
@ -79,11 +80,11 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No Semester.
|
{% trans 'No Semester.' %}
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<a href="{% url 'add_semester' %}">
|
<a href="{% url 'add_semester' %}">
|
||||||
<i class="primary" style="font-size: 22px;">
|
<i class="primary" style="font-size: 22px;">
|
||||||
Add Semester Now.
|
{% trans 'Add Semester Now.' %}
|
||||||
</i>
|
</i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,9 +8,9 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'semester_list' %}">Semester List</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'semester_list' %}">{% trans 'Semester List' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Semester Form</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Semester Form' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -30,11 +31,11 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 mx-auto">
|
<div class="col-md-6 mx-auto">
|
||||||
<div class="card pb-3">
|
<div class="card pb-3">
|
||||||
<p class="form-title">Semester Add & update Form</p>
|
<p class="form-title">{% trans 'Semester Add & update Form' %}</p>
|
||||||
<div class="container"><br>
|
<div class="container"><br>
|
||||||
<form action="" method="POST">{% csrf_token %}
|
<form action="" method="POST">{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
<input class="btn btn-primary" type="submit" value="Save">
|
<input class="btn btn-primary" type="submit" value="{% trans 'Save' %}">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,22 +1,23 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Session List</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Session List' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<div class="manage-wrap">
|
<div class="manage-wrap">
|
||||||
<a class="btn btn-primary" href="{% url 'add_session' %}"><i class="fas fa-plus"></i>Add New Session</a>
|
<a class="btn btn-primary" href="{% url 'add_session' %}"><i class="fas fa-plus"></i>{% trans 'Add New Session' %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="title-1"><i class="fas fa-calendar-week"></i>Session List</div>
|
<div class="title-1"><i class="fas fa-calendar-week"></i>{% trans 'Session List' %}</div>
|
||||||
|
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
{% for message in messages %}
|
{% for message in messages %}
|
||||||
@ -37,11 +38,11 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th> Session </th>
|
<th> {% trans 'Session' %} </th>
|
||||||
<th> Is Current Session </th>
|
<th> {% trans 'Is Current Session' %} </th>
|
||||||
<th> Next Session Begins </th>
|
<th> {% trans 'Next Session Begins' %} </th>
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<th> Actions </th>
|
<th> {% trans 'Actions' %} </th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -61,8 +62,8 @@
|
|||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<td> <div class="update-delete">
|
<td> <div class="update-delete">
|
||||||
<a href="{% url 'edit_session' pk=session.pk %}" class="update" title="Edit"><i class="fas fa-pencil-alt"></i></a>
|
<a href="{% url 'edit_session' pk=session.pk %}" class="update" title="{% trans 'Edit' %}"><i class="fas fa-pencil-alt"></i></a>
|
||||||
<a href="{% url 'delete_session' pk=session.pk %}" class="delete" title="Delete"><i class="fas fa-trash-alt"></i></a>
|
<a href="{% url 'delete_session' pk=session.pk %}" class="delete" title="{% trans 'Delete' %}"><i class="fas fa-trash-alt"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -73,11 +74,11 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No Session.
|
{% trans 'No Session.' %}
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<a href="{% url 'add_session' %}">
|
<a href="{% url 'add_session' %}">
|
||||||
<i class="primary" style="font-size: 22px;">
|
<i class="primary" style="font-size: 22px;">
|
||||||
Add Session Now.
|
{% trans 'Add Session Now.' %}
|
||||||
</i>
|
</i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,9 +8,9 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'session_list' %}">Session List</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'session_list' %}">{% trans 'Session List' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Session Form</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Session Form' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -30,11 +31,11 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 mx-auto">
|
<div class="col-md-6 mx-auto">
|
||||||
<div class="card pb-3">
|
<div class="card pb-3">
|
||||||
<p class="form-title">Session Add & update Form</p>
|
<p class="form-title">{% trans 'Session Add & update Form' %}</p>
|
||||||
<div class="container"><br>
|
<div class="container"><br>
|
||||||
<form action="" method="POST">{% csrf_token %}
|
<form action="" method="POST">{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
<input class="btn btn-primary" type="submit" value="Save">
|
<input class="btn btn-primary" type="submit" value="{% trans 'Save' %}">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,13 +8,13 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">{% trans 'Programs' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Course Form</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Course Form' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="title-1">Course Form</div>
|
<div class="title-1">{% trans 'Course Form' %}</div>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
@ -23,7 +24,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Course Detail</p>
|
<p class="form-title">{% trans 'Course Detail' %}</p>
|
||||||
<div class="p-3">
|
<div class="p-3">
|
||||||
{{ form.title|as_crispy_field }}
|
{{ form.title|as_crispy_field }}
|
||||||
{{ form.code|as_crispy_field }}
|
{{ form.code|as_crispy_field }}
|
||||||
@ -33,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Other Info</p>
|
<p class="form-title">{% trans 'Other Info' %}</p>
|
||||||
<div class="p-3">
|
<div class="p-3">
|
||||||
{{ form.program|as_crispy_field }}
|
{{ form.program|as_crispy_field }}
|
||||||
{{ form.credit|as_crispy_field }}
|
{{ form.credit|as_crispy_field }}
|
||||||
@ -45,7 +46,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input class="btn btn-primary mt-3" type="submit" value="Save">
|
<input class="btn btn-primary mt-3" type="submit" value="{% trans 'Save' %}">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
|
{% load i18n %}
|
||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,9 +8,9 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'course_allocation_view' %}">Course Allocations</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'course_allocation_view' %}">{% trans 'Course Allocations' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Allocation Form</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Allocation Form' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -30,7 +31,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 mx-auto">
|
<div class="col-md-6 mx-auto">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Course Allocation Form</p>
|
<p class="form-title">{% trans 'Course Allocation Form' %}</p>
|
||||||
<div class="p-3">
|
<div class="p-3">
|
||||||
<form action="" method="POST">{% csrf_token %}
|
<form action="" method="POST">{% csrf_token %}
|
||||||
<!-- {{ form|crispy }} -->
|
<!-- {{ form|crispy }} -->
|
||||||
@ -45,7 +46,7 @@
|
|||||||
|
|
||||||
{% for course in form.courses.all %}{{ course }}{% endfor %}
|
{% for course in form.courses.all %}{{ course }}{% endfor %}
|
||||||
|
|
||||||
<input class="btn btn-outline-primary" type="submit" value="Save">
|
<input class="btn btn-outline-primary" type="submit" value="{% trans 'Save' %}">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,22 +1,23 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Allocation list</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Allocation list' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<div class="manage-wrap">
|
<div class="manage-wrap">
|
||||||
<a class="btn btn-primary" href="{% url 'course_allocation' %}"><i class="fas fa-plus"></i>Allocate Now</a>
|
<a class="btn btn-primary" href="{% url 'course_allocation' %}"><i class="fas fa-plus"></i>{% trans 'Allocate Now' %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="title-1"><i class="fas fa-tasks"></i>Course Allocations</div>
|
<div class="title-1"><i class="fas fa-tasks"></i>{% trans 'Course Allocations' %}</div>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
@ -28,10 +29,10 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>Lecturer</th>
|
<th>{% trans 'Lecturer' %}</th>
|
||||||
<th>Courses</th>
|
<th>C{% trans 'Courses' %}</th>
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<th>Action</th>
|
<th>{% trans 'Action' %}</th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -46,10 +47,10 @@
|
|||||||
</td>
|
</td>
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<td><div class="update-delete">
|
<td><div class="update-delete">
|
||||||
<a href="{% url 'edit_allocated_course' pk=course.pk %}" class="update" title="Edit or Update">
|
<a href="{% url 'edit_allocated_course' pk=course.pk %}" class="update" title="{% trans 'Edit or Update' %}">
|
||||||
<i class="fas fa-edit"></i>
|
<i class="fas fa-edit"></i>
|
||||||
</a>
|
</a>
|
||||||
<a href="{% url 'course_deallocate' pk=course.pk %}" class="delete" title="Deallocate">
|
<a href="{% url 'course_deallocate' pk=course.pk %}" class="delete" title="{% trans 'Deallocate' %}">
|
||||||
<i class="fas fa-trash-alt"></i>
|
<i class="fas fa-trash-alt"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@ -61,11 +62,11 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">No Course Allocated.
|
<span class="text-danger">{% trans 'No Course Allocated.' %}
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<a href="{% url 'course_allocation' %}">
|
<a href="{% url 'course_allocation' %}">
|
||||||
<i class="primary" style="font-size: 22px;">
|
<i class="primary" style="font-size: 22px;">
|
||||||
Allocate now
|
{% trans 'Allocate now' %}
|
||||||
</i>
|
</i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
@ -8,12 +9,12 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Course Registration</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Course Registration' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<p class="title-1">Course Add & Drop</p>
|
<p class="title-1">{% trans 'Course Add' %} & {% trans 'Drop' %}</p>
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
|
|
||||||
@ -21,8 +22,8 @@
|
|||||||
{% if is_calender_on == False %}
|
{% if is_calender_on == False %}
|
||||||
|
|
||||||
<div class="alert bg-danger">
|
<div class="alert bg-danger">
|
||||||
<h1 class="text-light text-center">Calender is off</h1>
|
<h1 class="text-light text-center">{% trans 'Calender is off' %}</h1>
|
||||||
<h5 class="text-light text-center">Check the university calender</h5>
|
<h5 class="text-light text-center">{% trans 'Check the university calender' %}</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
@ -31,26 +32,26 @@
|
|||||||
|
|
||||||
<form action="{% url 'course_registration' %}" method="POST">{% csrf_token %}
|
<form action="{% url 'course_registration' %}" method="POST">{% csrf_token %}
|
||||||
<div class="col-md-12 p-0 bg-white">
|
<div class="col-md-12 p-0 bg-white">
|
||||||
<p class="form-title fw-bold">Course Add</p>
|
<p class="form-title fw-bold">{% trans 'Course Add' %}</p>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="d-flex justify-content-between mb-3">
|
<div class="d-flex justify-content-between mb-3">
|
||||||
<button title="Save Score" type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> Add
|
<button title="{% trans 'Save Score' %}" type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> {% trans 'Add
|
||||||
Selected</button>
|
Selected' %}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="table-responsive p-0 px-2 mt-2">
|
<div class="table-responsive p-0 px-2 mt-2">
|
||||||
<div class="table-title"><u>First Semester:</u></div>
|
<div class="table-title"><u>{% trans 'First Semester:' %}</u></div>
|
||||||
<div class="table-shadow">
|
<div class="table-shadow">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Mark</th>
|
<th>{% trans 'Mark' %}</th>
|
||||||
<th>Course Code</th>
|
<th>{% trans 'Course Code' %}</th>
|
||||||
<th>Course Title</th>
|
<th>{% trans 'Course Title' %}</th>
|
||||||
<th>Cr.Hr(s)</th>
|
<th>{% trans 'Cr.Hr(s)' %}</th>
|
||||||
<th>Year</th>
|
<th>{% trans 'Year' %}</th>
|
||||||
<th>Classification</th>
|
<th>{% trans 'Classification' %}</th>
|
||||||
<th>Elective Group</th>
|
<th>{% trans 'Elective Group' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -65,9 +66,9 @@
|
|||||||
<td>{{ course.credit }}</td>
|
<td>{{ course.credit }}</td>
|
||||||
<td>{{ course.year }}</td>
|
<td>{{ course.year }}</td>
|
||||||
{% if course.is_elective %}
|
{% if course.is_elective %}
|
||||||
<td>Elective</td>
|
<td>{% trans 'Elective' %}</td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td>Core</td>
|
<td>{% trans 'Core' %}</td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<th>-</th>
|
<th>-</th>
|
||||||
</tr>
|
</tr>
|
||||||
@ -79,7 +80,7 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No Course.
|
{% trans 'No Course.' %}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
@ -93,7 +94,7 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><b>First semester Credit(s):</b> {{ total_first_semester_credit }} </td>
|
<td><b>{% trans 'First semester Credit(s):' %}</b> {{ total_first_semester_credit }} </td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -102,18 +103,18 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="table-responsive p-0 px-2 mt-2">
|
<div class="table-responsive p-0 px-2 mt-2">
|
||||||
<div class="table-title"><u>Second Semester:</u></div>
|
<div class="table-title"><u>{% trans 'Second Semester:' %}</u></div>
|
||||||
<div class="table-shadow">
|
<div class="table-shadow">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Mark</th>
|
<th>{% trans 'Mark' %}</th>
|
||||||
<th>Course Code</th>
|
<th>{% trans 'Course Code' %}</th>
|
||||||
<th>Course Title</th>
|
<th>{% trans 'Course Title' %}</th>
|
||||||
<th>Cr.Hr(s)</th>
|
<th>{% trans 'Cr.Hr(s)' %}</th>
|
||||||
<th>Year</th>
|
<th>{% trans 'Year' %}</th>
|
||||||
<th>Classification</th>
|
<th>{% trans 'Classification' %}</th>
|
||||||
<th>Elective Group</th>
|
<th>{% trans 'Elective Group' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -128,9 +129,9 @@
|
|||||||
<td>{{ course.credit }}</td>
|
<td>{{ course.credit }}</td>
|
||||||
<td>{{ course.year }}</td>
|
<td>{{ course.year }}</td>
|
||||||
{% if course.is_elective %}
|
{% if course.is_elective %}
|
||||||
<td>Elective</td>
|
<td>{% trans 'Elective' %}</td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td>Core</td>
|
<td>{% trans 'Core' %}</td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<th>-</th>
|
<th>-</th>
|
||||||
</tr>
|
</tr>
|
||||||
@ -142,7 +143,7 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No Course.
|
{% trans 'No Course.' %}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
@ -156,17 +157,17 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><b>Second semester credit(s):</b> {{ total_sec_semester_credit }} </td>
|
<td><b>{% trans 'Second semester credit(s):' %}</b> {{ total_sec_semester_credit }} </td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"></th>
|
<th scope="row"></th>
|
||||||
<td><b>Registerd course credit(s): <a id="units">{{ total_registered_credit }}</a></b>
|
<td><b>{% trans 'Registerd course credit(s):' %}' <a id="units">{{ total_registered_credit }}</a></b>
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><b>Total credit(s):</b> {{ total_sec_semester_credit|add:total_first_semester_credit }} </td>
|
<td><b>{% trans 'Total credit(s):' %}</b> {{ total_sec_semester_credit|add:total_first_semester_credit }} </td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -182,12 +183,12 @@
|
|||||||
|
|
||||||
{% if not no_course_is_registered %}
|
{% if not no_course_is_registered %}
|
||||||
|
|
||||||
<a class="btn btn-warning" href="{% url 'course_registration_form' %}" target="_blank" title="Print Registration Form">
|
<a class="btn btn-warning" href="{% url 'course_registration_form' %}" target="_blank" title="{% trans 'Print Registration Form' %}">
|
||||||
<i class="fas fa-print"></i> Print Registerd Courses
|
<i class="fas fa-print"></i> {% trans 'Print Registerd Courses' %}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="col-md-12 p-0 bg-white">
|
<div class="col-md-12 p-0 bg-white">
|
||||||
<p class="form-title"><b>Course Drop</b>
|
<p class="form-title"><b>{% trans 'Course Drop' %}</b>
|
||||||
<div class="level-wrapper">
|
<div class="level-wrapper">
|
||||||
<div class="info-text">{{ student.level }}</div>
|
<div class="info-text">{{ student.level }}</div>
|
||||||
</div>
|
</div>
|
||||||
@ -196,8 +197,8 @@
|
|||||||
<form action="{% url 'course_drop' %}" method="POST">
|
<form action="{% url 'course_drop' %}" method="POST">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="d-flex justify-content-between mb-4">
|
<div class="d-flex justify-content-between mb-4">
|
||||||
<button title="Save Score" type="submit" class="btn btn-primary">
|
<button title="{% trans 'Save Score' %}" type="submit" class="btn btn-primary">
|
||||||
<i class="fa fa-times"></i> Drop Selected
|
<i class="fa fa-times"></i> {% trans 'Drop Selected' %}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -212,13 +213,13 @@
|
|||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Mark</th>
|
<th>{% trans 'Mark' %}</th>
|
||||||
<th>Course Code</th>
|
<th>{% trans 'Course Code' %}</th>
|
||||||
<th>Course Title</th>
|
<th>{% trans 'Course Title' %}</th>
|
||||||
<th>Cr.Hr(s)</th>
|
<th>{% trans 'Cr.Hr(s)' %}</th>
|
||||||
<th>Year</th>
|
<th>{% trans 'Year' %}</th>
|
||||||
<th>Classification</th>
|
<th>{% trans 'Classification' %}</th>
|
||||||
<th>Elective Group</th>
|
<th>{% trans 'Elective Group' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -232,9 +233,9 @@
|
|||||||
<td>{{ course.credit }}</td>
|
<td>{{ course.credit }}</td>
|
||||||
<td>{{ course.year }}</td>
|
<td>{{ course.year }}</td>
|
||||||
{% if course.is_elective %}
|
{% if course.is_elective %}
|
||||||
<td>Elective</td>
|
<td>{% trans 'Elective' %}</td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td>Core</td>
|
<td>{% trans 'Core' %}</td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<th>-</th>
|
<th>-</th>
|
||||||
</tr>
|
</tr>
|
||||||
@ -245,7 +246,7 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No Course.
|
{% trans 'No Course.' %}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
@ -259,7 +260,7 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><b>Total credit(s):</b> {{ total_registered_credit }} </td>
|
<td><b>{% trans 'Total credit(s):' %}</b> {{ total_registered_credit }} </td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@ -1,13 +1,14 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">{% trans 'Programs' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">{{ course }}</li>
|
<li class="breadcrumb-item active" aria-current="page">{{ course }}</li>
|
||||||
</ol>
|
</ol>
|
||||||
@ -18,21 +19,21 @@
|
|||||||
<div class="">
|
<div class="">
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<a class="btn btn-sm btn-light" href="{% url 'edit_course' course.slug %}">
|
<a class="btn btn-sm btn-light" href="{% url 'edit_course' course.slug %}">
|
||||||
<i class="fas fa-pencil-alt"></i> Edit course
|
<i class="fas fa-pencil-alt"></i> {% trans 'Edit course' %}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if request.user.is_superuser or request.user.is_lecturer %}
|
{% if request.user.is_superuser or request.user.is_lecturer %}
|
||||||
<a class="btn btn-sm btn-primary" href="{% url 'upload_file_view' course.slug %}"><i class="fas fa-plus"></i>
|
<a class="btn btn-sm btn-primary" href="{% url 'upload_file_view' course.slug %}"><i class="fas fa-plus"></i>
|
||||||
Upload new file
|
{% trans 'Upload new file' %}
|
||||||
</a>
|
</a>
|
||||||
<a class="btn btn-sm btn-primary" href="{% url 'upload_video' course.slug %}"><i class="fas fa-plus"></i>
|
<a class="btn btn-sm btn-primary" href="{% url 'upload_video' course.slug %}"><i class="fas fa-plus"></i>
|
||||||
Upload new video
|
{% trans 'Upload new video' %}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="ms-auto">
|
<div class="ms-auto">
|
||||||
<a class="btn btn-sm btn-warning" href="{% url 'quiz_index' course.slug %}"><i class="fas fa-list"></i>
|
<a class="btn btn-sm btn-warning" href="{% url 'quiz_index' course.slug %}"><i class="fas fa-list"></i>
|
||||||
Take a Quiz
|
{% trans 'Take a Quiz' %}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -47,17 +48,17 @@
|
|||||||
|
|
||||||
<div class="row mb-5">
|
<div class="row mb-5">
|
||||||
<div class="col-md-12 p-0">
|
<div class="col-md-12 p-0">
|
||||||
<p class="form-title m-0">Video Tutorials</p>
|
<p class="form-title m-0">{% trans 'Video Tutorials' %}</p>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-shadow table-light table-striped m-0">
|
<table class="table table-shadow table-light table-striped m-0">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>Video Title</th>
|
<th>{% trans 'Video Title' %}</th>
|
||||||
<th>Uploaded Date</th>
|
<th>{% trans 'Uploaded Date' %}</th>
|
||||||
<th>Get Started</th>
|
<th>{% trans 'Get Started' %}</th>
|
||||||
{% if request.user.is_superuser or request.user.is_lecturer %}
|
{% if request.user.is_superuser or request.user.is_lecturer %}
|
||||||
<th>Actions</th>
|
<th>{% trans 'Actions' %}</th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -75,7 +76,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<a class="download-btn" href="{{ video.get_absolute_url }}"
|
<a class="download-btn" href="{{ video.get_absolute_url }}"
|
||||||
title="Download to your device">
|
title="Download to your device">
|
||||||
<i class="fas fa-play me-1"></i>Play now</a>
|
<i class="fas fa-play me-1"></i>{% trans 'Play now' %}</a>
|
||||||
</div>
|
</div>
|
||||||
</th>
|
</th>
|
||||||
|
|
||||||
@ -83,11 +84,11 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="update-delete">
|
<div class="update-delete">
|
||||||
<a href="{% url 'upload_video_edit' slug=course.slug video_slug=video.slug %}"
|
<a href="{% url 'upload_video_edit' slug=course.slug video_slug=video.slug %}"
|
||||||
class="update" title="Edit">
|
class="update" title="{% trans 'Edit' %}">
|
||||||
<i class="fas fa-pencil-alt"></i>
|
<i class="fas fa-pencil-alt"></i>
|
||||||
</a>
|
</a>
|
||||||
<a href="{% url 'upload_video_delete' slug=course.slug video_slug=video.slug %}"
|
<a href="{% url 'upload_video_delete' slug=course.slug video_slug=video.slug %}"
|
||||||
class="delete" title="Delete">
|
class="delete" title="{% trans 'Delete' %}">
|
||||||
<i class="fas fa-trash-alt"></i>
|
<i class="fas fa-trash-alt"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@ -100,11 +101,11 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No video Uploaded.
|
{% trans 'No video Uploaded.' %}
|
||||||
{% if request.user.is_superuser or request.user.is_lecturer %}
|
{% if request.user.is_superuser or request.user.is_lecturer %}
|
||||||
<a href="{% url 'upload_video' course.slug %}">
|
<a href="{% url 'upload_video' course.slug %}">
|
||||||
<i class="primary" style="font-size: 22px;">
|
<i class="primary" style="font-size: 22px;">
|
||||||
Upload now.
|
{% trans 'Upload now.' %}
|
||||||
</i>
|
</i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
@ -123,18 +124,18 @@
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 p-0">
|
<div class="col-md-12 p-0">
|
||||||
<p class="form-title m-0">Documentations</p>
|
<p class="form-title m-0">{% trans 'Documentations' %}</p>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-shadow table-light table-striped m-0">
|
<table class="table table-shadow table-light table-striped m-0">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>File name</th>
|
<th>{% trans 'File name' %}</th>
|
||||||
<th>Uploaded Date</th>
|
<th>{% trans 'Uploaded Date' %}</th>
|
||||||
<th>Updated Date</th>
|
<th>{% trans 'Updated Date' %}</th>
|
||||||
<th>Downloads</th>
|
<th>{% trans 'Downloads' %}</th>
|
||||||
{% if request.user.is_superuser or request.user.is_lecturer %}
|
{% if request.user.is_superuser or request.user.is_lecturer %}
|
||||||
<th>Actions</th>
|
<th>{% trans 'Actions' %}</th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -152,7 +153,7 @@
|
|||||||
<th>
|
<th>
|
||||||
<div>
|
<div>
|
||||||
<a class="download-btn" href="{{ file.file.url }}" title="Download to your device">
|
<a class="download-btn" href="{{ file.file.url }}" title="Download to your device">
|
||||||
<i class="fas fa-download me-1"></i>Download</a>
|
<i class="fas fa-download me-1"></i>{% trans 'Download' %}</a>
|
||||||
</div>
|
</div>
|
||||||
</th>
|
</th>
|
||||||
|
|
||||||
@ -160,11 +161,11 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="update-delete">
|
<div class="update-delete">
|
||||||
<a href="{% url 'upload_file_edit' slug=course.slug file_id=file.pk %}"
|
<a href="{% url 'upload_file_edit' slug=course.slug file_id=file.pk %}"
|
||||||
class="update" title="Edit">
|
class="update" title="{% trans 'Edit' %}">
|
||||||
<i class="fas fa-pencil-alt"></i>
|
<i class="fas fa-pencil-alt"></i>
|
||||||
</a>
|
</a>
|
||||||
<a href="{% url 'upload_file_delete' slug=course.slug file_id=file.pk %}"
|
<a href="{% url 'upload_file_delete' slug=course.slug file_id=file.pk %}"
|
||||||
class="delete" title="Delete">
|
class="delete" title="{% trans 'Delete' %}">
|
||||||
<i class="fas fa-trash-alt"></i>
|
<i class="fas fa-trash-alt"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@ -177,11 +178,11 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No File Uploaded.
|
{% trans 'No File Uploaded.' %}
|
||||||
{% if request.user.is_superuser or request.user.is_lecturer %}
|
{% if request.user.is_superuser or request.user.is_lecturer %}
|
||||||
<a href="{% url 'upload_file_view' course.slug %}">
|
<a href="{% url 'upload_file_view' course.slug %}">
|
||||||
<i class="primary" style="font-size: 22px;">
|
<i class="primary" style="font-size: 22px;">
|
||||||
Upload now.
|
{% trans 'Upload now.' %}
|
||||||
</i>
|
</i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
@ -201,7 +202,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="site-section mb-5 mt-4">
|
<div class="site-section mb-5 mt-4">
|
||||||
<div class="title-1">Lecturer(s)</div>
|
<div class="title-1">{% trans 'Lecturer(s)' %}</div>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
@ -228,7 +229,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
<h6 class="text-muted mt-3">No lecturer assigned for this course</h6>
|
<h6 class="text-muted mt-3">{% trans 'No lecturer assigned for this course' %}</h6>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,9 +8,9 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">{% trans 'Programs' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Program Form</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Program Form' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -18,11 +19,11 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 mx-auto">
|
<div class="col-md-6 mx-auto">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Program Add Form</p>
|
<p class="form-title">{% trans 'Program Add Form' %}</p>
|
||||||
<div class="p-3"><br>
|
<div class="p-3"><br>
|
||||||
<form action="" method="POST">{% csrf_token %}
|
<form action="" method="POST">{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
<input class="btn btn-primary" type="submit" value="Save">
|
<input class="btn btn-primary" type="submit" value="{% trans 'Save' %}">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,22 +1,23 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Programs</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Programs' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<div class="manage-wrap">
|
<div class="manage-wrap">
|
||||||
<a class="btn btn-primary" href="{% url 'add_program' %}"><i class="fas fa-plus"></i>Add Program</a>
|
<a class="btn btn-primary" href="{% url 'add_program' %}"><i class="fas fa-plus"></i>{% trans 'Add Program' %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="title-1"><i class="fas fa-book-open"></i>Program List</div>
|
<div class="title-1"><i class="fas fa-book-open"></i>{% trans 'Program List' %}</div>
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
@ -28,10 +29,10 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>Program Name</th>
|
<th>{% trans 'Program Name' %}</th>
|
||||||
<th>Summary</th>
|
<th>{% trans 'Summary' %}</th>
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<th>Action</th>
|
<th>{% trans 'Action' %}</th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -52,8 +53,8 @@
|
|||||||
<i class="fa fa-ellipsis-vertical"></i>
|
<i class="fa fa-ellipsis-vertical"></i>
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu position-fixed">
|
<ul class="dropdown-menu position-fixed">
|
||||||
<li><a class="dropdown-item" href="{% url 'edit_program' pk=program.pk %}"><i class="fas fa-edit"></i> Update</a></li>
|
<li><a class="dropdown-item" href="{% url 'edit_program' pk=program.pk %}"><i class="fas fa-edit"></i>{% trans 'Update' %}</a></li>
|
||||||
<li><a class="dropdown-item text-danger" href="{% url 'program_delete' pk=program.pk %}"><i class="fas fa-trash-alt"></i> Delete</a></li>
|
<li><a class="dropdown-item text-danger" href="{% url 'program_delete' pk=program.pk %}"><i class="fas fa-trash-alt"></i>{% trans 'Delete' %}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
@ -65,11 +66,11 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No program.
|
{% trans 'No program.' %}
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<a href="{% url 'add_program' %}">
|
<a href="{% url 'add_program' %}">
|
||||||
<i class="primary" style="font-size: 22px;">
|
<i class="primary" style="font-size: 22px;">
|
||||||
Add program now.
|
{% trans 'Add program now.' %}
|
||||||
</i>
|
</i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -1,21 +1,21 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %} {{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %} {{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">{% trans 'Programs' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">{{ program.title }}</li>
|
<li class="breadcrumb-item active" aria-current="page">{{ program.title }}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<div class="manage-wrap">
|
<div class="manage-wrap">
|
||||||
<a class="btn btn-sm btn-primary" href="{% url 'course_add' pk=program.pk %}"><i class="fas fa-plus"></i>Add
|
<a class="btn btn-sm btn-primary" href="{% url 'course_add' pk=program.pk %}"><i class="fas fa-plus"></i>{% trans 'Add Course' %}</a>
|
||||||
Course</a>
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
@ -36,15 +36,15 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th> Course Name </th>
|
<th> {% trans 'Course Name' %} </th>
|
||||||
<th> Course Code </th>
|
<th> {% trans 'Course Code' %} </th>
|
||||||
<th> Cr.Hr </th>
|
<th> {% trans 'Cr.Hr' %} </th>
|
||||||
<th> Level </th>
|
<th> {% trans 'Level' %} </th>
|
||||||
<th> Year </th>
|
<th> {% trans 'Year' %} </th>
|
||||||
<th> Semester </th>
|
<th> {% trans 'Semester' %} </th>
|
||||||
<th> Current Semester </th>
|
<th> {% trans 'Current Semester' %} </th>
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<th>Action</th>
|
<th>{% trans 'Action' %}</th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -75,10 +75,10 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="dropdown-menu position-fixed">
|
<div class="dropdown-menu position-fixed">
|
||||||
<a class="dropdown-item" href="{% url 'edit_course' slug=course.slug %}">
|
<a class="dropdown-item" href="{% url 'edit_course' slug=course.slug %}">
|
||||||
<i class="fas fa-pencil-alt"></i> Edit
|
<i class="fas fa-pencil-alt"></i> {% trans 'Edit' %}
|
||||||
</a>
|
</a>
|
||||||
<a class="dropdown-item" href="{% url 'delete_course' slug=course.slug %}">
|
<a class="dropdown-item" href="{% url 'delete_course' slug=course.slug %}">
|
||||||
<i class="fas fa-trash-alt"></i> Delete
|
<i class="fas fa-trash-alt"></i> {% trans 'Delete' %}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -89,11 +89,11 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td colspan="9">
|
<td colspan="9">
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No course for this progrm.
|
{% trans 'No course for this progrm.' %}
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<a href="{% url 'course_add' pk=program.pk %}">
|
<a href="{% url 'course_add' pk=program.pk %}">
|
||||||
<i class="primary" style="font-size: 22px;">
|
<i class="primary" style="font-size: 22px;">
|
||||||
Add one now.
|
{% trans 'Add one now.' %}
|
||||||
</i>
|
</i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -1,13 +1,14 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %} My Courses | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %} {% trans 'My Courses' %} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">My Courses</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'My Courses' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -19,7 +20,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if request.user.is_lecturer %}
|
{% if request.user.is_lecturer %}
|
||||||
<div class="title-1">My Courses</div>
|
<div class="title-1">{% trans 'My Courses' %}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
@ -38,19 +39,19 @@
|
|||||||
|
|
||||||
{% if request.user.is_student %}
|
{% if request.user.is_student %}
|
||||||
<div class="table-responsive p-3 mt-3">
|
<div class="table-responsive p-3 mt-3">
|
||||||
<h6 class="fw-bold text-primary"><u>Taken Courses:</u></h6>
|
<h6 class="fw-bold text-primary"><u>{% trans 'Taken Courses:' %}</u></h6>
|
||||||
<div class="table-shadow">
|
<div class="table-shadow">
|
||||||
<table class="table table-light">
|
<table class="table table-light">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th> Course Name </th>
|
<th> {% trans 'Course Name' %} </th>
|
||||||
<th> Course Code </th>
|
<th> {% trans 'Course Code' %} </th>
|
||||||
<th> Cr.Hr </th>
|
<th> {% trans 'Cr.Hr' %} </th>
|
||||||
<th> Year </th>
|
<th> {% trans 'Year' %} </th>
|
||||||
<th> Semester </th>
|
<th> {% trans 'Semester' %} </th>
|
||||||
<th> Current Semester </th>
|
<th> {% trans 'Current Semester' %} </th>
|
||||||
<th> Taken </th>
|
<th> {% trans 'Taken' %} </th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -71,7 +72,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</th>
|
</th>
|
||||||
<td class="success">
|
<td class="success">
|
||||||
<i class="fas fa-check-circle"></i> Taken
|
<i class="fas fa-check-circle"></i> {% trans 'Taken' %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -82,18 +83,18 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="table-responsive p-3">
|
<div class="table-responsive p-3">
|
||||||
<h6 class="fw-bold text-primary"><u>All Courses:</u></h6>
|
<h6 class="fw-bold text-primary"><u>{% trans 'All Courses:' %}</u></h6>
|
||||||
<div class="table-shadow">
|
<div class="table-shadow">
|
||||||
<table class="table table-light">
|
<table class="table table-light">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th> Course Name </th>
|
<th> {% trans 'Course Name' %} </th>
|
||||||
<th> Course Code </th>
|
<th> {% trans 'Course Code' %} </th>
|
||||||
<th> Cr.Hr </th>
|
<th> {% trans 'Cr.Hr' %} </th>
|
||||||
<th> Year </th>
|
<th> {% trans 'Year' %} </th>
|
||||||
<th> Semester </th>
|
<th> {% trans 'Semester' %} </th>
|
||||||
<th> Current Semester </th>
|
<th> {% trans 'Current Semester' %} </th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
<h1>Invoices</h1>
|
{% load i18n %}
|
||||||
|
<h1>{% trans 'Invoices' %}</h1>
|
||||||
|
|
||||||
<h3>{{ invoice.user }}</h3>
|
<h3>{{ invoice.user }}</h3>
|
||||||
<h3>{{ invoice.amount }}</h3>
|
<h3>{{ invoice.amount }}</h3>
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
<h1>Invoices</h1>
|
<h1>{% trans 'Invoices' %}</h1>
|
||||||
|
|
||||||
<form method="POST">{% csrf_token %}
|
<form method="POST">{% csrf_token %}
|
||||||
<input type="number" name="amount" required="true">
|
<input type="number" name="amount" required="true">
|
||||||
<button type="submit">Pay now</button>
|
<button type="submit">{% trans 'Pay now' %}</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
{% for invoice in invoices %}
|
{% for invoice in invoices %}
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
{% load i18n%}
|
||||||
<div id="top-navbar" class="py-1">
|
<div id="top-navbar" class="py-1">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="nav-wrapper">
|
<div class="nav-wrapper">
|
||||||
@ -8,7 +9,7 @@
|
|||||||
|
|
||||||
<form class="form-header" action="{% url 'query' %}" method="GET">
|
<form class="form-header" action="{% url 'query' %}" method="GET">
|
||||||
<input id="primary-search" class="form-control rounded-end-0" type="text" name="q" value="{{ request.GET.q }}"
|
<input id="primary-search" class="form-control rounded-end-0" type="text" name="q" value="{{ request.GET.q }}"
|
||||||
placeholder="Search All... #course, #program, #Quiz, #News, #Events" required />
|
placeholder="{% trans 'Search All... #course, #program, #Quiz, #News, #Events' %}" required />
|
||||||
<button class="btn btn-dark rounded-start-0" type="submit">
|
<button class="btn btn-dark rounded-start-0" type="submit">
|
||||||
<i class="fas fa-search"></i>
|
<i class="fas fa-search"></i>
|
||||||
</button>
|
</button>
|
||||||
@ -25,31 +26,42 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="small text-muted text-center mb-0">
|
<p class="small text-muted text-center mb-0">
|
||||||
Last login: {{ request.user.last_login|date }}</p>
|
{% trans 'Last login:' %} {{ request.user.last_login|date }}</p>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
{% if request.user.is_lecturer or request.user.is_student %}
|
{% if request.user.is_lecturer or request.user.is_student %}
|
||||||
<a class="dropdown-item" href="{% url 'user_course_list' %}"><i class="fas fa-book me-2"></i>My
|
<a class="dropdown-item" href="{% url 'user_course_list' %}"><i class="fas fa-book me-2"></i>{% trans 'My Courses' %}</a>
|
||||||
Courses</a>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if request.user.is_superuser %}
|
{% if request.user.is_superuser %}
|
||||||
<a class="dropdown-item" href="{% url 'admin_panel' %}"><i class="fas fa-user-tie me-2"></i>Admin
|
<a class="dropdown-item" href="{% url 'admin_panel' %}"><i class="fas fa-user-tie me-2"></i>{% trans 'Admin Panel' %}</a>
|
||||||
Panel</a>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<a class="dropdown-item" href="{% url 'profile' %}"><i class="fas fa-user me-2"></i>Profile</a>
|
<a class="dropdown-item" href="{% url 'profile' %}"><i class="fas fa-user me-2"></i>{% trans 'Profile' %}</a>
|
||||||
<a class="dropdown-item" href="{% url 'edit_profile' %}"><i class="fas fa-cog me-2"></i>Setting</a>
|
<a class="dropdown-item" href="{% url 'edit_profile' %}"><i class="fas fa-cog me-2"></i>{% trans 'Setting' %}</a>
|
||||||
<hr>
|
<hr>
|
||||||
<div style="display: flex; justify-content: center; align-items: center;">
|
<div style="display: flex; justify-content: center; align-items: center;">
|
||||||
<a class="btn btn-secondary" href="{% url 'logout' %}">
|
<a class="btn btn-secondary" href="{% url 'logout' %}">
|
||||||
<i class="fas fa-sign-out-alt"></i> Signout
|
<i class="fas fa-sign-out-alt"></i> {% trans 'Signout' %}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<form action="{% url 'set_language' %}" method="post">{% csrf_token %}
|
||||||
|
<input name="next" type="hidden" value="{{ redirect_to }}">
|
||||||
|
<select name="language">
|
||||||
|
{% get_current_language as LANGUAGE_CODE %}
|
||||||
|
{% get_available_languages as LANGUAGES %}
|
||||||
|
{% get_language_info_list for LANGUAGES as languages %}
|
||||||
|
{% for language in languages %}
|
||||||
|
<option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected{% endif %}>
|
||||||
|
{{ language.name_local }} ({{ language.code }})
|
||||||
|
</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
<input type="submit" value="Go">
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -1,4 +1,5 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
|
{% load i18n %}
|
||||||
{% block title %}PayPal{% endblock title %}
|
{% block title %}PayPal{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -20,8 +21,8 @@
|
|||||||
</style>
|
</style>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<center>
|
<center>
|
||||||
<h3><i class="fa fa-check-circle-o text-success" aria-hidden="true"></i> Payment Succeed, You has been make payment successfuly.</h3>
|
<h3><i class="fa fa-check-circle-o text-success" aria-hidden="true"></i>{% trans 'Payment Succeed, You has been make payment successfuly.' %}</h3>
|
||||||
<div class="counter-wrapper">Redirect to your dashboard in <span class="bg-counter" id="counter">8</span></div>
|
<div class="counter-wrapper">{% trans 'Redirect to your dashboard in' %} <span class="bg-counter" id="counter">8</span></div>
|
||||||
</center>
|
</center>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}Coinbase{% endblock title %}
|
{% i18n %}
|
||||||
|
{% block title %}{% trans 'Coinbase' %}{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<center><h1>Coinbase</h1></center>
|
<center><h1>{% trans 'Coinbase' %}</h1></center>
|
||||||
</div>
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
|
{% load i18n %}
|
||||||
<style>
|
<style>
|
||||||
.table {
|
.table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -31,18 +32,18 @@
|
|||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<p class="title-1">Lecturers</p>
|
<p class="title-1">{% trans 'Lecturers' %}</p>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>ID No.</th>
|
<th>{% trans 'ID No.' %}</th>
|
||||||
<th>Full Name</th>
|
<th>{% trans 'Full Name' %}</th>
|
||||||
<th>Email</th>
|
<th>{% trans 'Email' %}</th>
|
||||||
<th>Mob No.</th>
|
<th>{% trans 'Mob No.' %}</th>
|
||||||
<th>Address/City</th>
|
<th>{% trans 'Address/City' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -59,7 +60,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No Lecturer(s).
|
{% trans 'No Lecturer(s).' %}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.user-picture {
|
.user-picture {
|
||||||
@ -37,8 +38,8 @@ table .info{
|
|||||||
</td>
|
</td>
|
||||||
<td class="info">
|
<td class="info">
|
||||||
<p>{{ user.get_full_name|title }}</p>
|
<p>{{ user.get_full_name|title }}</p>
|
||||||
<p><strong>Last login:</strong> {{ user.last_login|date }}</p>
|
<p><strong>{% trans 'Last login:' %}</strong> {{ user.last_login|date }}</p>
|
||||||
<p><strong>Role:</strong> {{ user.get_user_role }}</p>
|
<p><strong>{% trans 'Role:' %}</strong> {{ user.get_user_role }}</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@ -48,7 +49,7 @@ table .info{
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{% if user.is_lecturer %}
|
{% if user.is_lecturer %}
|
||||||
<p class="h5">My Courses</p>
|
<p class="h5">{% trans 'My Courses' %}</p>
|
||||||
{% if courses %}
|
{% if courses %}
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
{% for course in courses %}
|
{% for course in courses %}
|
||||||
@ -56,43 +57,43 @@ table .info{
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="text-danger">No courses assigned!</div>
|
<div class="text-danger">{% trans 'No courses assigned!' %}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<hr class="my-0">
|
<hr class="my-0">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<p class="h5">Personal Info</p>
|
<p class="h5">{% trans 'Personal Info' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>First Name:</strong> {{ user.first_name|title }}</p>
|
<p><strong>{% trans 'First Name:' %}</strong> {{ user.first_name|title }}</p>
|
||||||
<p><strong>Last Name:</strong> {{ user.last_name|title }}</p>
|
<p><strong>{% trans 'Last Name:' %}</strong> {{ user.last_name|title }}</p>
|
||||||
<p><strong>ID No.:</strong> {{ user.username }}</p>
|
<p><strong>{% trans 'ID No.:' %}</strong> {{ user.username }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if user.is_student %}
|
{% if user.is_student %}
|
||||||
<hr>
|
<hr>
|
||||||
<p class="h5">Applicant Info</p>
|
<p class="h5">{% trans 'Applicant Info' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>School:</strong> Hawas Preparatory School</p>
|
<p><strong>{% trans 'School:' %}</strong>{% trans 'Hawas Preparatory School' %}</p>
|
||||||
<p><strong>Level:</strong> {{ level.level }}</p>
|
<p><strong>{% trans 'Level:' %}</strong> {{ level.level }}</p>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<p class="h5">Contact Info</p>
|
<p class="h5">{% trans 'Contact Info' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>Email:</strong> {{ user.email }}</p>
|
<p><strong>{% trans 'Email:' %}</strong> {{ user.email }}</p>
|
||||||
<p><strong>Tel No.:</strong> {{ user.phone }}</p>
|
<p><strong>{% trans 'Tel No.:' %}</strong> {{ user.phone }}</p>
|
||||||
<p><strong>Address/city:</strong> {{ user.address }}</p>
|
<p><strong>{% trans 'Address/city:' %}</strong> {{ user.address }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<p class="h5">Important Dates</p>
|
<p class="h5">{% trans 'Important Dates' %}</p>
|
||||||
<div class="dashboard-description">
|
<div class="dashboard-description">
|
||||||
<p><strong>Last login:</strong> {{ user.last_login }}</p>
|
<p><strong>{% trans 'Last login:' %}</strong> {{ user.last_login }}</p>
|
||||||
{% if current_semester and current_session %}
|
{% if current_semester and current_session %}
|
||||||
<p><strong>Academic Year:</strong> {{ current_semester }} Semester {{ current_session }}</p>
|
<p><strong>{% trans 'Academic Year:' %}</strong> {{ current_semester }} {% trans 'Semester' %} {{ current_session }}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<p><strong>Registered Date:</strong> {{ user.date_joined|date }}</p>
|
<p><strong>{% trans 'Registered Date:' %}</strong> {{ user.date_joined|date }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
|
{% load i18n %}
|
||||||
<style>
|
<style>
|
||||||
.table {
|
.table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -31,17 +32,17 @@
|
|||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<p class="title-1">Students</p>
|
<p class="title-1">{% trans 'Students' %}</p>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>ID No.</th>
|
<th>{% trans 'ID No.' %}</th>
|
||||||
<th>Full Name</th>
|
<th>{% trans 'Full Name' %}</th>
|
||||||
<th>Email</th>
|
<th>{% trans 'Email' %}</th>
|
||||||
<th>Mob No.</th>
|
<th>{% trans 'Mob No.' %}</th>
|
||||||
<th>Program</th>
|
<th>{% trans 'Program' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -57,7 +58,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No Lecturer(s).
|
{% trans 'No Lecturer(s).' %}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -1,15 +1,15 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
{% block title %} {% trans "Progress Page" %} | Learning management system {% endblock %}
|
{% block title %} {% trans "Progress Page" %} | {% trans 'Learning management system' %} {% endblock %}
|
||||||
{% block description %} {% trans "User Progress Page" %} {% endblock %}
|
{% block description %} {% trans "User Progress Page" %} {% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Progress Page</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Progress Page' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -57,7 +57,7 @@
|
|||||||
<p class="lead text-muted">
|
<p class="lead text-muted">
|
||||||
{% trans "Below are the results of exams that you have sat." %}
|
{% trans "Below are the results of exams that you have sat." %}
|
||||||
</p>
|
</p>
|
||||||
<div class="info-text bg-danger mb-2">Total complete exams: {{ exams_counter }}</div>
|
<div class="info-text bg-danger mb-2">{% trans 'Total complete exams:' %} {{ exams_counter }}</div>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-bordered table-striped">
|
<table class="table table-bordered table-striped">
|
||||||
|
|
||||||
@ -67,7 +67,7 @@
|
|||||||
<th>{% trans "Quiz Title" %}</th>
|
<th>{% trans "Quiz Title" %}</th>
|
||||||
<th>{% trans "Score" %}</th>
|
<th>{% trans "Score" %}</th>
|
||||||
<th>{% trans "Possible Score" %}</th>
|
<th>{% trans "Possible Score" %}</th>
|
||||||
<th>Out of 100%</th>
|
<th>{% trans 'Out of 100%' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
@ -91,7 +91,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if not cat_scores and not exams %}
|
{% if not cat_scores and not exams %}
|
||||||
<div class="col-12 p-4 text-center"><h3><i class="far fa-frown"></i></h3> No recordes yet. Try to do some quizzes in your course.</div>
|
<div class="col-12 p-4 text-center"><h3><i class="far fa-frown"></i></h3> {% trans 'No recordes yet. Try to do some quizzes in your course.' %}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@ -2,18 +2,18 @@
|
|||||||
{% load i18n%}
|
{% load i18n%}
|
||||||
|
|
||||||
|
|
||||||
{% block title %} {{ quiz.title }} | Learning management system {% endblock %}
|
{% block title %} {{ quiz.title }} | {% trans 'Learning management system' %} {% endblock %}
|
||||||
{% block description %} {{ quiz.title }} - {{ quiz.description }} {% endblock %}
|
{% block description %} {{ quiz.title }} - {{ quiz.description }} {% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'quiz_index' course.slug %}">Quizzes</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'quiz_index' course.slug %}">{% trans 'Quizzes' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">{{ quiz.title|title }}</li>
|
<li class="breadcrumb-item active" aria-current="page">{{ quiz.title|title }}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
@ -105,15 +105,15 @@
|
|||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h1 class="modal-title fs-5" id="instractionModalLabel">Quiz instractions</h1>
|
<h1 class="modal-title fs-5" id="instractionModalLabel">{% trans 'Quiz instractions' %}</h1>
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
You can't go back to the previous question after you submit it,
|
{% trans 'You can't go back to the previous question after you submit it,
|
||||||
so double check your answer before proceeding to the next one!
|
so double check your answer before proceeding to the next one!' %}
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-primary" data-bs-dismiss="modal">Understood</button>
|
<button type="button" class="btn btn-primary" data-bs-dismiss="modal">{% trans 'Understood' %}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -153,7 +153,7 @@
|
|||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
<input type="submit" value={% trans "Check" %} class="btn btn-large btn-block btn-primary" />
|
<input type="submit" value="Check" class="btn btn-large btn-block btn-primary" />
|
||||||
<!-- <input type="submit" value={% trans "Previous" %} class="btn btn-large btn-block btn-outline-primary" > -->
|
<!-- <input type="submit" value={% trans "Previous" %} class="btn btn-large btn-block btn-outline-primary" > -->
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,20 +1,21 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
|
{% load i18n %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">{% trans 'Programs' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'quiz_index' course.slug %}">Quizzes</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'quiz_index' course.slug %}">{% trans 'Quizzes' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">MC Question Form</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'MC Question Form' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="title-1 mb-3">Add questions [{{ quiz_obj|truncatechars:15 }}]</div>
|
<div class="title-1 mb-3">{% trans 'Add questions' %} [{{ quiz_obj|truncatechars:15 }}]</div>
|
||||||
|
|
||||||
{% if formset.non_form_errors %}
|
{% if formset.non_form_errors %}
|
||||||
<div class="alert alert-danger">
|
<div class="alert alert-danger">
|
||||||
@ -27,10 +28,10 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="info-text bg-orange mb-3">{{ quizQuestions }} question added</div>
|
<div class="info-text bg-orange mb-3">{{ quizQuestions }} {% trans 'question added' %}</div>
|
||||||
|
|
||||||
<form action="#" method="POST">{% csrf_token %}
|
<form action="#" method="POST">{% csrf_token %}
|
||||||
{% if form.errors %}<p class="alert alert-danger">Correct the error(s) below.</p>{% endif %}
|
{% if form.errors %}<p class="alert alert-danger">{% trans 'Correct the error(s) below.' %}</p>{% endif %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mx-3 py-4 border bg-white">
|
<div class="col mx-3 py-4 border bg-white">
|
||||||
<div class="mb-2" hidden>
|
<div class="mb-2" hidden>
|
||||||
@ -43,17 +44,17 @@
|
|||||||
<div class="col mx-3 py-4 border bg-white">
|
<div class="col mx-3 py-4 border bg-white">
|
||||||
{{ form.choice_order|as_crispy_field }}
|
{{ form.choice_order|as_crispy_field }}
|
||||||
<div class="border p-2">
|
<div class="border p-2">
|
||||||
<label class="lead">Choices</label>
|
<label class="lead">{% trans 'Choices' %}</label>
|
||||||
{{ formset.management_form }}
|
{{ formset.management_form }}
|
||||||
{% for fs in formset %}
|
{% for fs in formset %}
|
||||||
<label for="username">{{ fs.label }}</label>
|
<label for="username">{{ fs.label }}</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">{{ fs.correct }} <small class="ms-1">Correct</small></span>
|
<span class="input-group-text">{{ fs.correct }} <small class="ms-1">{% trans 'Correct' %}</small></span>
|
||||||
</div>
|
</div>
|
||||||
{{ fs.choice }}
|
{{ fs.choice }}
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">{{ fs.DELETE }} <small class="ms-1">Delete</small></span>
|
<span class="input-group-text">{{ fs.DELETE }} <small class="ms-1">{% trans 'Delete' %}</small></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -63,7 +64,7 @@
|
|||||||
<button type="submit" formnovalidate name="another" class="btn btn-outline-primary">
|
<button type="submit" formnovalidate name="another" class="btn btn-outline-primary">
|
||||||
Save and add another
|
Save and add another
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-primary my-4" type="submit">Save</button>
|
<button class="btn btn-primary my-4" type="submit">{% trans 'Save' %}</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -1,20 +1,21 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">{% trans 'Programs' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'quiz_index' course.slug %}">Quizzes</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'quiz_index' course.slug %}">{% trans 'Quizzes' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Quiz Form</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Quiz Form' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="title-1">Quiz form for {{ course|truncatechars:15 }}</div>
|
<div class="title-1">{% trans 'Quiz form for' %} {{ course|truncatechars:15 }}</div>
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
@ -51,7 +52,7 @@
|
|||||||
<div hidden>
|
<div hidden>
|
||||||
<label for="questions">{{ form.questions.label }}</label><br> {{ form.questions }}
|
<label for="questions">{{ form.questions.label }}</label><br> {{ form.questions }}
|
||||||
<span class="danger">{{ form.questions.errors }}</span>
|
<span class="danger">{{ form.questions.errors }}</span>
|
||||||
<small class="d-block text-muted">Hold down "Control", or "Command" on a Mac, to select more than one.</small>
|
<small class="d-block text-muted">{% trans 'Hold down' %} "Control", {% trans 'or' %} "Command" {% trans 'on a Mac, to select more than one.' %}</small>
|
||||||
</div>
|
</div>
|
||||||
{{ form.random_order|as_crispy_field }}
|
{{ form.random_order|as_crispy_field }}
|
||||||
{{ form.answers_at_end|as_crispy_field }}
|
{{ form.answers_at_end|as_crispy_field }}
|
||||||
@ -62,7 +63,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-primary my-4" id="{% if form.is_valid %}btn-transition{% endif %}" type="submit">Save & Continue</button>
|
<button class="btn btn-primary my-4" id="{% if form.is_valid %}btn-transition{% endif %}" type="submit">{% trans 'Save' %} & {% trans 'Continue' %}</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
|
{% load i18n %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
@ -8,21 +9,21 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">{% trans 'Programs' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'program_detail' pk=1 %}">{{ course.program }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'program_detail' pk=1 %}">{{ course.program }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Quizzes</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Quizzes' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{% if request.user.is_superuser or request.user.is_lecturer %}
|
{% if request.user.is_superuser or request.user.is_lecturer %}
|
||||||
<div class="manage-wrap">
|
<div class="manage-wrap">
|
||||||
<a class="btn btn-primary" href="{% url 'quiz_create' course.slug %}"><i class="fas fa-plus"></i> Add Quiz</a>
|
<a class="btn btn-primary" href="{% url 'quiz_create' course.slug %}"><i class="fas fa-plus"></i>{% trans 'Add Quiz' %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="title-1">Quizzes [{{ course|truncatechars:25 }}]</div>
|
<div class="title-1">{% trans 'Quizzes' %} [{{ course|truncatechars:25 }}]</div>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
@ -35,9 +36,9 @@
|
|||||||
<div class="col-md-4 mb-2">
|
<div class="col-md-4 mb-2">
|
||||||
<div class="card p-2 quiz-wrapper">
|
<div class="card p-2 quiz-wrapper">
|
||||||
<div class="d-flex justify-content-between align-items-center text-success mb-4">
|
<div class="d-flex justify-content-between align-items-center text-success mb-4">
|
||||||
<em class="text-left">{{ quiz.category|title }} Quiz</em>
|
<em class="text-left">{{ quiz.category|title }} {% trans 'Quiz' %}</em>
|
||||||
<div class="text-right text-light bg-danger px-2 small rounded">
|
<div class="text-right text-light bg-danger px-2 small rounded">
|
||||||
{{ quiz.get_questions.count }} Questions
|
{{ quiz.get_questions.count }} {% trans 'Questions' %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -61,10 +62,10 @@
|
|||||||
<button class="btn btn-sm p-0 ms-2" type="button" data-bs-toggle="dropdown"><i class="fas fa-ellipsis-v m-0"></i></button>
|
<button class="btn btn-sm p-0 ms-2" type="button" data-bs-toggle="dropdown"><i class="fas fa-ellipsis-v m-0"></i></button>
|
||||||
<div class="dropdown-menu" aria-labelledby="dropdown01">
|
<div class="dropdown-menu" aria-labelledby="dropdown01">
|
||||||
<div class="dropdown-item">
|
<div class="dropdown-item">
|
||||||
<a href="{% url 'quiz_update' slug=course.slug pk=quiz.id %}" class="update"><i class="fas fa-pencil-alt"></i> Edit</a>
|
<a href="{% url 'quiz_update' slug=course.slug pk=quiz.id %}" class="update"><i class="fas fa-pencil-alt"></i>{% trans 'Edit' %}</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="dropdown-item">
|
<div class="dropdown-item">
|
||||||
<a href="{% url 'quiz_delete' slug=course.slug pk=quiz.id %}" class="delete"><i class="fas fa-trash-alt"></i> Delete</a>
|
<a href="{% url 'quiz_delete' slug=course.slug pk=quiz.id %}" class="delete"><i class="fas fa-trash-alt"></i>{% trans 'Delete' %}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,16 +1,16 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% block title %}
|
{% block title %}
|
||||||
{% trans "Result of" %} {{ sitting.quiz.title }} {% trans "for" %} {{ sitting.user }} | Learning management system
|
{% trans "Result of" %} {{ sitting.quiz.title }} {% trans "for" %} {{ sitting.user }} | {% trans 'Learning management system' %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'quiz_marking' %}">Completed Exams</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'quiz_marking' %}">{% trans 'Completed Exams' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Marking</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Marking' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% block title %}{% trans "All Quizzes" %} | Learning management system{% endblock %}
|
{% block title %}{% trans "All Quizzes" %} | {% trans 'Learning management system' %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Complete Exams</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Complete Exams' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
{% if sitting_list %}
|
{% if sitting_list %}
|
||||||
|
|
||||||
<div class="info-text bg-danger my-2">Total complete exams: {{ sitting_list.count }}</div>
|
<div class="info-text bg-danger my-2">{% trans 'Total complete exams:' %} {{ sitting_list.count }}</div>
|
||||||
|
|
||||||
<table class="table table-bordered table-striped">
|
<table class="table table-bordered table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'registration/registration_base.html' %}
|
{% extends 'registration/registration_base.html' %}
|
||||||
{% block title %}Dj Learning Management System - Login{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans 'Dj Learning Management System - Login' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
@ -7,28 +8,28 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="form-title">
|
<div class="form-title">
|
||||||
<i class="fas fa-lock me-2"></i>
|
<i class="fas fa-lock me-2"></i>
|
||||||
Sign in
|
{% trans 'Sign in' %}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form action="" method="POST" id="login-form">{% csrf_token %}
|
<form action="" method="POST" id="login-form">{% csrf_token %}
|
||||||
<div class="form-group mb-3">
|
<div class="form-group mb-3">
|
||||||
<label class="mb-2" for="username_id"><i class="fas fa-address-card me-2"></i>ID Number</label>
|
<label class="mb-2" for="username_id"><i class="fas fa-address-card me-2"></i>{% trans 'ID Number' %}</label>
|
||||||
<input type="text" name="username" id="username_id" class="form-control" required>
|
<input type="text" name="username" id="username_id" class="form-control" required>
|
||||||
<div id="message-wrapper"></div>
|
<div id="message-wrapper"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mb-3">
|
<div class="form-group mb-3">
|
||||||
<label class="mb-2" for="password_id"><i class="fas fa-key me-2"></i>Password</label>
|
<label class="mb-2" for="password_id"><i class="fas fa-key me-2"></i>{% trans 'Password' %}</label>
|
||||||
<input type="password" name="password" id="password_id" class="form-control" required>
|
<input type="password" name="password" id="password_id" class="form-control" required>
|
||||||
</div>
|
</div>
|
||||||
{% if form.errors %}
|
{% if form.errors %}
|
||||||
<span class="text-danger"><i class="fas fa-exclamation-circle"></i> Invalid ID & Password.</span><br>
|
<span class="text-danger"><i class="fas fa-exclamation-circle"></i> {% trans 'Invalid ID & Password.' %}</span><br>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<button type="submit" class="btn btn-primary" id="login-btn"><i class="fas fa-sign-in-alt"></i><small> SIGN IN</small></button>
|
<button type="submit" class="btn btn-primary" id="login-btn"><i class="fas fa-sign-in-alt"></i><small>{% trans 'SIGN IN' %}</small></button>
|
||||||
</form>
|
</form>
|
||||||
<br>
|
<br>
|
||||||
<div class="login-bottom">
|
<div class="login-bottom">
|
||||||
<a href="{% url 'password_reset' %}" class="link">Forgot password ?</a>
|
<a href="{% url 'password_reset' %}" class="link">{% trans 'Forgot password ?' %}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,19 +1,20 @@
|
|||||||
{% extends 'registration/registration_base.html' %}
|
{% extends 'registration/registration_base.html' %}
|
||||||
{% block title %}Password Reset | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans 'Password Reset | Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div id="login">
|
<div id="login">
|
||||||
<h3 class="login-title">Password Reset</h3>
|
<h3 class="login-title">{% trans 'Password Reset' %}</h3>
|
||||||
|
|
||||||
<form action="" method="POST" class="form-box">{% csrf_token %}
|
<form action="" method="POST" class="form-box">{% csrf_token %}
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<!-- {{ form|crispy }} -->
|
<!-- {{ form|crispy }} -->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<i class="fas fa-envelope"></i>Email {{ form.email }}
|
<i class="fas fa-envelope"></i>{% trans 'Email' %} {{ form.email }}
|
||||||
<span class="danger">{{ form.email.errors }}</span>
|
<span class="danger">{{ form.email.errors }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-primary"><small>Request Password Reset</small></button>
|
<button type="submit" class="btn btn-primary"><small>{% trans 'Request Password Reset' %}</small></button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@ -1,15 +1,16 @@
|
|||||||
{% extends 'registration/registration_base.html' %}
|
{% extends 'registration/registration_base.html' %}
|
||||||
{% block title %}Password Reset Complete | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans 'Password Reset Complete | Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div id="login">
|
<div id="login">
|
||||||
<h3 class="login-title">Password Reset Complete</h3>
|
<h3 class="login-title">{% trans 'Password Reset Complete' %}</h3>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="alert alert-success">
|
<div class="alert alert-success">
|
||||||
<i class="fas fa-check-circle"></i>Your password has been set, you are now able to Log In!
|
<i class="fas fa-check-circle"></i>{% trans 'Your password has been set, you are now able to Log In!' %}
|
||||||
</div>
|
</div>
|
||||||
<a class="btn btn-primary" href="{% url 'login' %}">Sign In Here</a>
|
<a class="btn btn-primary" href="{% url 'login' %}">{% trans 'Sign In Here' %}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'registration/registration_base.html' %}
|
{% extends 'registration/registration_base.html' %}
|
||||||
{% block title %}New Password | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans 'New Password | Learning management system %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
@ -18,7 +19,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div id="login">
|
<div id="login">
|
||||||
<h3 class="login-title">Confirm New Password</h3>
|
<h3 class="login-title">{% trans 'Confirm New Password' %}</h3>
|
||||||
<div class="p-3">
|
<div class="p-3">
|
||||||
<form action="" method="POST" class="form-box text-left">{% csrf_token %}
|
<form action="" method="POST" class="form-box text-left">{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
@ -27,7 +28,7 @@
|
|||||||
<label for="password2">Confirm Password</label>
|
<label for="password2">Confirm Password</label>
|
||||||
<input type="password" id="password2" name="password2" class="form-control" required>
|
<input type="password" id="password2" name="password2" class="form-control" required>
|
||||||
<hr> -->
|
<hr> -->
|
||||||
<input type="submit" class="btn btn-primary" value="Reset Password">
|
<input type="submit" class="btn btn-primary" value="{% trans 'Reset Password' %}">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,16 +1,17 @@
|
|||||||
{% extends 'registration/registration_base.html' %}
|
{% extends 'registration/registration_base.html' %}
|
||||||
{% block title %}Email Sent | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans 'Email Sent | Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div id="login">
|
<div id="login">
|
||||||
<h3 class="login-title">Email sent</h3>
|
<h3 class="login-title">{% trans 'Email sent' %}</h3>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="alert alert-success">
|
<div class="alert alert-success">
|
||||||
<i class="fas fa-check-circle"></i>An Email has been sent with instructions
|
<i class="fas fa-check-circle"></i>{% trans 'An Email has been sent with instructions
|
||||||
to reset your password, check your email.
|
to reset your password, check your email.' %}
|
||||||
</div>
|
</div>
|
||||||
<a class="btn btn-primary" href="{% url 'login' %}"><i class="far fa-arrow-alt-circle-left"></i>Back To Login</a>
|
<a class="btn btn-primary" href="{% url 'login' %}"><i class="far fa-arrow-alt-circle-left"></i>{% trans 'Back To Login' %}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'registration/registration_base.html' %}
|
{% extends 'registration/registration_base.html' %}
|
||||||
{% block title %} Register | Learning management system {% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans 'Register | Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
@ -8,7 +9,7 @@
|
|||||||
|
|
||||||
<div class="blue-gradient text-light p-3 mb-5">
|
<div class="blue-gradient text-light p-3 mb-5">
|
||||||
<h1 class="lead my-0">
|
<h1 class="lead my-0">
|
||||||
<i class="fas fa-lock mr-2"></i>Create Your Account
|
<i class="fas fa-lock mr-2"></i>{% trans 'Create Your Account' %}
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -16,7 +17,7 @@
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<h1 class="lead p-2 bg-light">Login Form</h1>
|
<h1 class="lead p-2 bg-light">{% trans 'Login Form' %}</h1>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="username_id" class="form-label">{{ form.username.label }}</label>
|
<label for="username_id" class="form-label">{{ form.username.label }}</label>
|
||||||
{{ form.username }}
|
{{ form.username }}
|
||||||
@ -36,7 +37,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<h1 class="lead p-2 bg-light">Personal Info</h1>
|
<h1 class="lead p-2 bg-light">{% trans 'Personal Info' %}</h1>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="address_id" class="form-label">{{ form.address.label }}</label>
|
<label for="address_id" class="form-label">{{ form.address.label }}</label>
|
||||||
{{ form.address }}
|
{{ form.address }}
|
||||||
@ -69,13 +70,13 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if form.errors %}
|
{% if form.errors %}
|
||||||
<p class="text-danger my-2"><i class="fas fa-exclamation-circle"></i> Invalid ID & Password.</p><br>
|
<p class="text-danger my-2"><i class="fas fa-exclamation-circle"></i>{% trans 'Invalid ID & Password.' %}</p><br>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<button type="submit" class="btn btn-primary" id="login-btn"><i class="fas fa-sign-in-alt"></i><small> SIGN UP</small></button>
|
<button type="submit" class="btn btn-primary" id="login-btn"><i class="fas fa-sign-in-alt"></i><small>{% trans 'SIGN UP' %}</small></button>
|
||||||
</form>
|
</form>
|
||||||
<br>
|
<br>
|
||||||
<span> Already Registered ? </span><a href="{% url 'login' %}" class="link">Login</a>
|
<span> {% trans 'Already Registered ?' %} </span><a href="{% url 'login' %}" class="link">{% trans 'Login' %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
||||||
|
|||||||
@ -4,26 +4,26 @@
|
|||||||
{% load quiz_tags %}
|
{% load quiz_tags %}
|
||||||
|
|
||||||
|
|
||||||
{% block title %} {{ quiz.title}} | Learning management system {% endblock %}
|
{% block title %} {{ quiz.title}} | {% trans 'Learning management system' %} {% endblock %}
|
||||||
{% block description %} {% trans "Quiz Results for" %} {{ quiz.title }} {% endblock %}
|
{% block description %} {% trans "Quiz Results for" %} {{ quiz.title }} {% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">{% trans 'Programs' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'quiz_index' course.slug %}">Quizzes</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'quiz_index' course.slug %}">{% trans 'Quizzes' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'quiz_take' course.id quiz.slug %}">{{ quiz.title|title }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'quiz_take' course.id quiz.slug %}">{{ quiz.title|title }}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Result</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Result' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div id="progress-card">
|
<div id="progress-card">
|
||||||
<div class="col-md-6 mx-auto">
|
<div class="col-md-6 mx-auto">
|
||||||
<h5 class="lead">Calculating your result...</h5>
|
<h5 class="lead">{% trans 'Calculating your result...' %}</h5>
|
||||||
<div class="progress">
|
<div class="progress">
|
||||||
<div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
|
<div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,41 +1,42 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Manage Score</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Manage Score' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
|
|
||||||
<div class="title-1 mb-3"><i class="fas fa-table"></i>Manage Score</div>
|
<div class="title-1 mb-3"><i class="fas fa-table"></i>{% trans 'Manage Score' %}</div>
|
||||||
|
|
||||||
{% if current_semester %}
|
{% if current_semester %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<div class="card text-center">
|
<div class="card text-center">
|
||||||
<p class="form-title">
|
<p class="form-title">
|
||||||
{{ current_semester }} Semester - <i class="result-title">{{ current_session }}</i>
|
{{ current_semester }} {% trans 'Semester' %} - <i class="result-title">{{ current_session }}</i>
|
||||||
</p>
|
</p>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<button class="btn btn-primary dropdown-toggle mx-auto mb-2" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<button class="btn btn-primary dropdown-toggle mx-auto mb-2" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
Select Your Course Here
|
{% trans 'Select Your Course Here' %}
|
||||||
</button>
|
</button>
|
||||||
<div class="dropdown-menu">
|
<div class="dropdown-menu">
|
||||||
{% for course in courses %}
|
{% for course in courses %}
|
||||||
<a class="dropdown-item" href="{% url 'add_score_for' course.id %}" title="{{ course.code }}">{{ course.title }}</a>
|
<a class="dropdown-item" href="{% url 'add_score_for' course.id %}" title="{{ course.code }}">{{ course.title }}</a>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
<p class="dropdown-item">No course.</p>
|
<p class="dropdown-item">{% trans 'No course.' %}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>To manage scores, please select the course using the button above.</p>
|
<p>{% trans 'To manage scores, please select the course using the button above.' %}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,14 +1,15 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{ course }}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Manage Score</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Manage Score' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -20,13 +21,13 @@
|
|||||||
{% for course in courses %}
|
{% for course in courses %}
|
||||||
<a class="dropdown-item" href="{% url 'add_score_for' course.id %}" title="{{ course.code }}">{{ course.title }}</a>
|
<a class="dropdown-item" href="{% url 'add_score_for' course.id %}" title="{{ course.code }}">{{ course.title }}</a>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
<p class="dropdown-item">No course.</p>
|
<p class="dropdown-item">{% trans 'No course.' %}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<h4 class="title-1">Students result form | {{ course|truncatechars:15 }}</h4>
|
<h4 class="title-1">{% trans 'Students result form' %} | {{ course|truncatechars:15 }}</h4>
|
||||||
<p>{{ course.summary }}</p>
|
<p>{{ course.summary }}</p>
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
@ -34,30 +35,30 @@
|
|||||||
<form action="" method="POST">
|
<form action="" method="POST">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="btn-flex">
|
<div class="btn-flex">
|
||||||
<button title="Save Score" type="submit" class="btn btn-primary">Save</button>
|
<button title="Save Score" type="submit" class="btn btn-primary">{% trans 'Save' %}</button>
|
||||||
<a target="_blank" href="{% url 'result_sheet_pdf_view' id=course.id %}">
|
<a target="_blank" href="{% url 'result_sheet_pdf_view' id=course.id %}">
|
||||||
<span data-toggle="tooltip" title="Print Result sheet" class="btn btn-warning">
|
<span data-toggle="tooltip" title="Print Result sheet" class="btn btn-warning">
|
||||||
<i class="far fa-file-pdf"></i> Grade report
|
<i class="far fa-file-pdf"></i> {% trans 'Grade report' %}
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h4 class="mt-3">{{ current_semester }} Semester <i class="text-light px-2 rounded small bg-danger">{{ current_session }}</i></h4>
|
<h4 class="mt-3">{{ current_semester }} {% trans 'Semester' %} <i class="text-light px-2 rounded small bg-danger">{{ current_session }}</i></h4>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-light">
|
<table class="table table-light">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>Student</th>
|
<th>{% trans 'Student' %}</th>
|
||||||
<th>Assignment</th>
|
<th>{% trans 'Assignment' %}</th>
|
||||||
<th>Mid exam</th>
|
<th>{% trans 'Mid exam' %}</th>
|
||||||
<th>Quiz</th>
|
<th>{% trans 'Quiz' %}</th>
|
||||||
<th>Attendance</th>
|
<th>{% trans 'Attendance' %}</th>
|
||||||
<th>Final exam</th>
|
<th>{% trans 'Final exam' %}</th>
|
||||||
<th>Total</th>
|
<th>{% trans 'Total' %}</th>
|
||||||
<th>Point</th>
|
<th>{% trans 'Point' %}</th>
|
||||||
<th>Grade</th>
|
<th>{% trans 'Grade' %}</th>
|
||||||
<th>Comment</th>
|
<th>{% trans 'Comment' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -101,7 +102,7 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
No Student.
|
{% trans 'No Student.' %}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Assesment Results</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Assesment Results' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -24,24 +25,24 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="title-1"><i class="fa fa-spell-check"></i>Assesment Results</div>
|
<div class="title-1"><i class="fa fa-spell-check"></i>{% trans 'Assesment Results' %}</div>
|
||||||
<p>{{ student.level }} Result</p>
|
<p>{{ student.level }} {% trans 'Result' %}</p>
|
||||||
|
|
||||||
<div class="table-responsive p-0 px-2 mt-3">
|
<div class="table-responsive p-0 px-2 mt-3">
|
||||||
<div class="table-title"><u>First Semester:</u></div>
|
<div class="table-title"><u>{% trans 'First Semester:' %}</u></div>
|
||||||
<table class="table table-light">
|
<table class="table table-light">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>Course Title</th>
|
<th>{% trans 'Course Title' %}</th>
|
||||||
<th>Course Code</th>
|
<th>{% trans 'Course Code' %}</th>
|
||||||
<th>Cr.Hr(s)</th>
|
<th>{% trans 'Cr.Hr(s)' %}</th>
|
||||||
<th>Assignment</th>
|
<th>{% trans 'Assignment' %}</th>
|
||||||
<th>Mid exam</th>
|
<th>{% trans 'Mid exam' %}</th>
|
||||||
<th>Quiz</th>
|
<th>{% trans 'Quiz' %}</th>
|
||||||
<th>Attendance</th>
|
<th>{% trans 'Attendance' %}</th>
|
||||||
<th>Final exam</th>
|
<th>{% trans 'Final exam' %}</th>
|
||||||
<th>Total</th>
|
<th>{% trans 'Total' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% for course in courses %}
|
{% for course in courses %}
|
||||||
@ -70,20 +71,20 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="table-responsive p-3 mt-3">
|
<div class="table-responsive p-3 mt-3">
|
||||||
<div class="table-title"><u>Second Semester:</u></div>
|
<div class="table-title"><u>{% trans 'Second Semester:' %}</u></div>
|
||||||
<table class="table table-light">
|
<table class="table table-light">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>Course Title</th>
|
<th>{% trans 'Course Title' %}</th>
|
||||||
<th>Course Code</th>
|
<th>{% trans 'Course Code %}</th>
|
||||||
<th>Cr.Hr(s)</th>
|
<th>{% trans 'Cr.Hr(s)' %}</th>
|
||||||
<th>Assignment</th>
|
<th>{% trans 'Assignment' %}</th>
|
||||||
<th>Mid exam</th>
|
<th>{% trans 'Mid exam' %}</th>
|
||||||
<th>Quiz</th>
|
<th>{% trans 'Quiz' %}</th>
|
||||||
<th>Attendance</th>
|
<th>{% trans 'Attendance' %}</th>
|
||||||
<th>Final exam</th>
|
<th>{% trans 'Final exam' %}</th>
|
||||||
<th>Total</th>
|
<th>{% trans 'Total' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% for course in courses %}
|
{% for course in courses %}
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Grade Results</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Grade Results' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -24,21 +25,21 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="title-1"><i class="fas fa-table"></i>Grade Results</div>
|
<div class="title-1"><i class="fas fa-table"></i>{% trans 'Grade Results' %}</div>
|
||||||
<p>{{ student.level }} Result</p>
|
<p>{{ student.level }} {% trans 'Result' %}</p>
|
||||||
|
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<div class="table-title"><u>First Semester:</u></div>
|
<div class="table-title"><u>{% trans 'First Semester:' %}</u></div>
|
||||||
<table class="table table-light">
|
<table class="table table-light">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>Course Title</th>
|
<th>{% trans 'Course Title' %}</th>
|
||||||
<th>Course Code</th>
|
<th>{% trans 'Course Code' %}</th>
|
||||||
<th>Cr.Hr</th>
|
<th>{% trans 'Cr.Hr' %}</th>
|
||||||
<th>Grade</th>
|
<th>{% trans 'Grade' %}</th>
|
||||||
<th>Points</th>
|
<th>{% trans 'Points' %}</th>
|
||||||
<th>Comment</th>
|
<th>{% trans 'Comment' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% for course in courses %}
|
{% for course in courses %}
|
||||||
@ -54,9 +55,9 @@
|
|||||||
<td>{{ course.point }}</td>
|
<td>{{ course.point }}</td>
|
||||||
|
|
||||||
{% if course.comment == 'PASS' %}
|
{% if course.comment == 'PASS' %}
|
||||||
<td class="success"><i class="fas fa-check-circle"></i> PASS</td>
|
<td class="success"><i class="fas fa-check-circle"></i>{% trans 'PASS' %}</td>
|
||||||
{% elif course.comment == 'FAIL' %}
|
{% elif course.comment == 'FAIL' %}
|
||||||
<td class="danger"><i class="fas fa-exclamation-circle"></i> FAIL</td>
|
<td class="danger"><i class="fas fa-exclamation-circle"></i>{% trans 'FAIL' %}</td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td></td>
|
<td></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -75,7 +76,7 @@
|
|||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th>Total first semester credit: {{ total_first_semester_credit }}</th>
|
<th>{% trans 'Total first semester credit:' %} {{ total_first_semester_credit }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="bg-orange text-white">
|
<tr class="bg-orange text-white">
|
||||||
<th></th>
|
<th></th>
|
||||||
@ -84,7 +85,7 @@
|
|||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th>First Semester GPA: {{ result.gpa }}</th>
|
<th>{% trans 'First Semester GPA:' %} {{ result.gpa }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -93,17 +94,17 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="table-responsive p-0 px-2 mt-3">
|
<div class="table-responsive p-0 px-2 mt-3">
|
||||||
<div class="table-title"><u>Second Semester:</u></div>
|
<div class="table-title"><u>{% trans 'Second Semester:' %}</u></div>
|
||||||
<table class="table table-light">
|
<table class="table table-light">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>Course Title</th>
|
<th>{% trans 'Course Title' %}</th>
|
||||||
<th>Course Code</th>
|
<th>{% trans 'Course Code' %}</th>
|
||||||
<th>Cr.Hr</th>
|
<th>{% trans 'Cr.Hr' %}</th>
|
||||||
<th>GRADE</th>
|
<th>{% trans 'GRADE' %}</th>
|
||||||
<th>Points</th>
|
<th>{% trans 'Points' %}</th>
|
||||||
<th>Comment</th>
|
<th>{% trans 'Comment' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% for course in courses %}
|
{% for course in courses %}
|
||||||
@ -119,9 +120,9 @@
|
|||||||
<td>{{ course.point }}</td>
|
<td>{{ course.point }}</td>
|
||||||
|
|
||||||
{% if course.comment == 'PASS' %}
|
{% if course.comment == 'PASS' %}
|
||||||
<td class="success"><i class="fas fa-check-circle"></i> PASS</td>
|
<td class="success"><i class="fas fa-check-circle"></i>{% trans 'PASS' %}</td>
|
||||||
{% elif course.comment == 'FAIL' %}
|
{% elif course.comment == 'FAIL' %}
|
||||||
<td class="danger"><i class="fas fa-exclamation-circle"></i> FAIL</td>
|
<td class="danger"><i class="fas fa-exclamation-circle"></i>{% trans 'FAIL' %}</td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td></td>
|
<td></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -135,12 +136,12 @@
|
|||||||
{% if result.semester == "Second" %}
|
{% if result.semester == "Second" %}
|
||||||
<tr style="background: #f3f2f2;">
|
<tr style="background: #f3f2f2;">
|
||||||
<th></th>
|
<th></th>
|
||||||
<th>Total second semester credit: {{ total_sec_semester_credit }}</th>
|
<th>{% trans 'Total second semester credit:' %} {{ total_sec_semester_credit }}</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th>Total Credit: {{ total_first_and_second_semester_credit }}</th>
|
<th>{% trans 'Total Credit:' %} {{ total_first_and_second_semester_credit }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr style="background: #f3f2f2;">
|
<tr style="background: #f3f2f2;">
|
||||||
<th></th>
|
<th></th>
|
||||||
@ -149,7 +150,7 @@
|
|||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th>Second Semester GPA: {{ result.gpa }}</th>
|
<th>{% trans 'Second Semester GPA:' %} {{ result.gpa }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr style="background: #fd7e14; color: #fff;">
|
<tr style="background: #fd7e14; color: #fff;">
|
||||||
<th></th>
|
<th></th>
|
||||||
@ -158,7 +159,7 @@
|
|||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th>Previous CGPA: {{ previousCGPA }}</th>
|
<th>{% trans 'Previous CGPA:' %} {{ previousCGPA }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -173,14 +174,14 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th><label>First Semester GPA:</label> {{ result.gpa }}</th>
|
<th><label>{% trans 'First Semester GPA:' %}</label> {{ result.gpa }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
<br>
|
<br>
|
||||||
{% elif result.semester == "Second" %}
|
{% elif result.semester == "Second" %}
|
||||||
<tr>
|
<tr>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th><label>Second Semester GPA:</label> {{ result.gpa }}</th>
|
<th><label>{% trans 'Second Semester GPA:' %}</label> {{ result.gpa }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
<br>
|
<br>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -188,7 +189,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th><label>Previous CGPA:</label> {{ previousCGPA }}</th>
|
<th><label>{% trans 'Previous CGPA:' %}</label> {{ previousCGPA }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
<br>
|
<br>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block title %}Search result for {{ query }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans 'Search result for' %} {{ query }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
|
|
||||||
{% load class_name %}
|
{% load class_name %}
|
||||||
|
|
||||||
@ -7,8 +8,8 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Search</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Search' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -39,13 +40,13 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div class="card p-3" style="box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.3); border-radius: 10px;">
|
<div class="card p-3" style="box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.3); border-radius: 10px;">
|
||||||
<h5 class="text-muted m-0">{{ count }} result{{ count|pluralize }} for <b><em class="text-orange"> {{ query }}</em></b></h5>
|
<h5 class="text-muted m-0">{{ count }} {% trans 'result' %}{{ count|pluralize }} {% trans 'for' %} <b><em class="text-orange"> {{ query }}</em></b></h5>
|
||||||
<hr>
|
<hr>
|
||||||
{% for object in object_list %}
|
{% for object in object_list %}
|
||||||
{% with object|class_name as klass %}
|
{% with object|class_name as klass %}
|
||||||
{% if klass == "Program" %}
|
{% if klass == "Program" %}
|
||||||
<div class="session-wrapper">
|
<div class="session-wrapper">
|
||||||
<div class="session"><div class="info-text bg-orange">Program</div></div>
|
<div class="session"><div class="info-text bg-orange">{% trans 'Program' %}</div></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 class-item">
|
<div class="col-12 class-item">
|
||||||
<!-- <p><b>Program of</b> {{ object }}</p> -->
|
<!-- <p><b>Program of</b> {{ object }}</p> -->
|
||||||
@ -55,37 +56,37 @@
|
|||||||
|
|
||||||
{% elif klass == "Course" %}
|
{% elif klass == "Course" %}
|
||||||
<div class="session-wrapper">
|
<div class="session-wrapper">
|
||||||
<div class="session"><div class="info-text bg-orange">Course</div></div>
|
<div class="session"><div class="info-text bg-orange">{% trans 'Course' %}</div></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 class-item">
|
<div class="col-12 class-item">
|
||||||
<p><b>Program of</b> {{ object.program }}</p>
|
<p><b>{% trans 'Program of' %}</b> {{ object.program }}</p>
|
||||||
<h4><a href="{{ object.get_absolute_url }}"><b>{{ object }}</b></a></h4>
|
<h4><a href="{{ object.get_absolute_url }}"><b>{{ object }}</b></a></h4>
|
||||||
<p>{{ object.summary }}</p>
|
<p>{{ object.summary }}</p>
|
||||||
</div><hr>
|
</div><hr>
|
||||||
|
|
||||||
{% elif klass == "NewsAndEvents" %}
|
{% elif klass == "NewsAndEvents" %}
|
||||||
<div class="session-wrapper">
|
<div class="session-wrapper">
|
||||||
<div class="session"><div class="info-text bg-orange">News And Events</div></div>
|
<div class="session"><div class="info-text bg-orange">{% trans 'News And Events' %}</div></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 class-item">
|
<div class="col-12 class-item">
|
||||||
<p><b>Date: </b> {{ object.updated_date|timesince }} ago</p>
|
<p><b>{% trans 'Date:' %} </b> {{ object.updated_date|timesince }} ago</p>
|
||||||
<h4><a href="{{ object.get_absolute_url }}"><b>{{ object.title }}</b></a></h4>
|
<h4><a href="{{ object.get_absolute_url }}"><b>{{ object.title }}</b></a></h4>
|
||||||
<p>{{ object.summary }}</p>
|
<p>{{ object.summary }}</p>
|
||||||
</div><hr>
|
</div><hr>
|
||||||
|
|
||||||
{% elif klass == "Quiz" %}
|
{% elif klass == "Quiz" %}
|
||||||
<div class="session-wrapper">
|
<div class="session-wrapper">
|
||||||
<div class="session"><div class="info-text bg-orange">Quiz</div></div>
|
<div class="session"><div class="info-text bg-orange">{% trans 'Quiz' %}</div></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 class-item">
|
<div class="col-12 class-item">
|
||||||
<p>{{ object.category }} quiz, <b>Course:</b> {{ object.course }}</p>
|
<p>{{ object.category }} {% trans 'quiz' %}, <b>{% trans 'Course:' %}</b> {{ object.course }}</p>
|
||||||
<h4><a href="{{ object.get_absolute_url }}"><b>{{ object.title }}</b></a></h4>
|
<h4><a href="{{ object.get_absolute_url }}"><b>{{ object.title }}</b></a></h4>
|
||||||
<p>{{ object.description }}</p>
|
<p>{{ object.description }}</p>
|
||||||
</div><hr>
|
</div><hr>
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="session-wrapper">
|
<div class="session-wrapper">
|
||||||
<div class="session"><div class="info-text bg-orange">Program</div></div>
|
<div class="session"><div class="info-text bg-orange">{% trans 'Program' %}</div></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 col-lg-8 offset-lg-4">
|
<div class="col-12 col-lg-8 offset-lg-4">
|
||||||
<a href="{{ object.get_absolute_url }}" class="class-item d-flex">{{ object }} | {{ object|class_name }}</a>
|
<a href="{{ object.get_absolute_url }}" class="class-item d-flex">{{ object }} | {{ object|class_name }}</a>
|
||||||
@ -118,12 +119,12 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 pl-5">
|
<div class="col-12 pl-5">
|
||||||
<h5>Search by:</h5>
|
<h5>{% trans 'Search by:' %}</h5>
|
||||||
<ul class="pl-3">
|
<ul class="pl-3">
|
||||||
<li>Program <span class="text-orange">></span> Title or Description</li>
|
<li>{% trans 'Program' %} <span class="text-orange">></span> {% trans 'Title or Description' %}</li>
|
||||||
<li>Course <span class="text-orange">></span> Title, Code or Description</li>
|
<li>{% trans 'Course' %} <span class="text-orange">></span>{% trans 'Title, Code or Description' %}</li>
|
||||||
<li>News And Events <span class="text-orange">></span> Title, Description or just by typing "news" or "event"</li>
|
<li>{% trans 'News And Events' %} <span class="text-orange">></span> {% trans 'Title, Description or just by typing "news" or "event %}li>
|
||||||
<li>Quiz <span class="text-orange">></span> Title, Description or Category(practice, assignment and exam)</li>
|
<li>{% trans 'Quiz' %} <span class="text-orange">></span>{% trans 'Title, Description or Category(practice, assignment and exam)' %}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,12 +8,12 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Admin Panel</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Admin Panel' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="title-1"><i class="fas fa-user-tie"></i>Admin Panel</div>
|
<div class="title-1"><i class="fas fa-user-tie"></i>{% trans 'Admin Panel' %}</div>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
@ -33,51 +34,51 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="border-bottom">
|
<div class="border-bottom">
|
||||||
Manage<a class="link" href="{% url 'lecturer_list' %}"> Lecturers »</a>
|
{% trans 'Manage' %}<a class="link" href="{% url 'lecturer_list' %}">{% trans 'Lecturers' %} »</a>
|
||||||
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) lecturers</p>
|
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) lecturers</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="border-bottom mt-3">
|
<div class="border-bottom mt-3">
|
||||||
Manage<a class="link" href="{% url 'student_list' %}"> Students »</a>
|
{% trans 'Manage' %}<a class="link" href="{% url 'student_list' %}">{% trans 'Students' %} »</a>
|
||||||
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) students</p>
|
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) {% trans 'students' %}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="border-bottom mt-3">
|
<div class="border-bottom mt-3">
|
||||||
Manage<a class="link" href="{% url 'session_list' %}"> Session »</a>
|
{% trans 'Manage' %}<a class="link" href="{% url 'session_list' %}">{% trans 'Session' %} »</a>
|
||||||
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) sessions</p>
|
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) {% trans 'sessions' %}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-3">
|
<div class="mt-3">
|
||||||
Manage<a class="link" href="{% url 'semester_list' %}"> Semester »</a>
|
{% trans 'Manage' %}<a class="link" href="{% url 'semester_list' %}"> {% trans 'Semester' %} »</a>
|
||||||
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) semesters</p>
|
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) {% trans 'semesters' %}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="border-bottom">
|
<div class="border-bottom">
|
||||||
Course Add & Drop
|
{% trans 'Course Add' %} & {% trans 'Drop' %}
|
||||||
<label class="switch switch-text switch-success switch-pill" style="float: right;">
|
<label class="switch switch-text switch-success switch-pill" style="float: right;">
|
||||||
<input type="checkbox" class="switch-input" checked="true">
|
<input type="checkbox" class="switch-input" checked="true">
|
||||||
<span data-on="On" data-off="Off" class="switch-label"></span>
|
<span data-on="On" data-off="Off" class="switch-label"></span>
|
||||||
<span class="switch-handle"></span>
|
<span class="switch-handle"></span>
|
||||||
</label>
|
</label>
|
||||||
<p class="text-muted">Switch
|
<p class="text-muted">{% trans 'Switch' %}
|
||||||
<i class="info-text py-0 px-2 bg-success text-light">ON</i> or <i class="info-text py-0 px-2 bg-danger text-light">OFF</i>
|
<i class="info-text py-0 px-2 bg-success text-light">ON</i> or <i class="info-text py-0 px-2 bg-danger text-light">OFF</i>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="border-bottom mt-3">
|
<div class="border-bottom mt-3">
|
||||||
Manage<a class="link" href="{% url 'programs' %}"> Programs & Courses »</a>
|
{% trans 'Manage' %}<a class="link" href="{% url 'programs' %}"> {% trans 'Programs' %} & {% trans 'Courses' %} »</a>
|
||||||
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) programs</p>
|
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) {% trans 'programs' %}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="border-bottom mt-3">
|
<div class="border-bottom mt-3">
|
||||||
Manage<a class="link" href="{% url 'course_allocation_view' %}"> Course Allocations »</a>
|
{% trans 'Manage' %}<a class="link" href="{% url 'course_allocation_view' %}"> {% trans 'Course Allocations' %} »</a>
|
||||||
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) course allocations</p>
|
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) {% trans 'course allocations' %}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-3">
|
<div class="mt-3">
|
||||||
Manage<a class="link" href="{% url 'home' %}"> News & Events »</a>
|
{% trans 'Manage' %}<a class="link" href="{% url 'home' %}"> {% trans 'News' %} & {% trans 'Events' %} »</a>
|
||||||
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) News & Events</p>
|
<p class="text-muted">CRUD (Create, Retrieve, Update & Delete) {% trans 'News' %} & {% trans 'Events' %}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,8 +8,8 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Password Change</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Password Change' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -17,11 +18,11 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 mx-auto">
|
<div class="col-md-6 mx-auto">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title"><i class="fas fa-lock"></i> Change Password</p>
|
<p class="form-title"><i class="fas fa-lock"></i>{% trans 'Change Password' %}</p>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form action="" method="POST">{% csrf_token %}
|
<form action="" method="POST">{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
<center><input class="btn btn-primary" type="submit" value="Change Password"></center><br>
|
<center><input class="btn btn-primary" type="submit" value="{% trans 'Change Password' %}"></center><br>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
@ -7,12 +8,12 @@
|
|||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Account setting</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Account setting' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<p class="title-1"><i class="fas fa-user-edit"></i>Account Settings</p>
|
<p class="title-1"><i class="fas fa-user-edit"></i>{% trans 'Account Settings' %}</p>
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
|
|
||||||
@ -20,7 +21,7 @@
|
|||||||
<div class="row mb-4">
|
<div class="row mb-4">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="form-title">Email & Personal Info</div>
|
<div class="form-title">{% trans 'Email' %} & {% trans 'Personal Info' %}</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{{ form.email|as_crispy_field }}
|
{{ form.email|as_crispy_field }}
|
||||||
{{ form.first_name|as_crispy_field }}
|
{{ form.first_name|as_crispy_field }}
|
||||||
@ -33,13 +34,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Others</p>
|
<p class="form-title">{% trans 'Others' %}</p>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{{ form.picture|as_crispy_field }}
|
{{ form.picture|as_crispy_field }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-primary" type="submit">Update Profile</button>
|
<button class="btn btn-primary" type="submit">{% trans 'Update Profile' %}</button>
|
||||||
</form>
|
</form>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
|
{% load i18n %}
|
||||||
{% if filter.form %}
|
{% if filter.form %}
|
||||||
|
|
||||||
<form action="" method="get">
|
<form action="" method="get">
|
||||||
<div class="d-flex flex-wrap align-items-center">
|
<div class="d-flex flex-wrap align-items-center">
|
||||||
{% for field in filter.form %}
|
{% for field in filter.form %}
|
||||||
@ -7,7 +9,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<button class="btn btn-sm mb-2" type="submit">
|
<button class="btn btn-sm mb-2" type="submit">
|
||||||
<i class="fa fa-sliders"></i> Filter
|
<i class="fa fa-sliders"></i> {% trans 'Filter' %}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@ -1,20 +1,21 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">{% trans 'Programs' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'course_detail' course.slug %}">{{ course }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'course_detail' course.slug %}">{{ course }}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">File upload</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'File upload' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<p class="title-1">File upload for {{ course|truncatechars:25 }}</p>
|
<p class="title-1">{% trans 'File upload for' %} {{ course|truncatechars:25 }}</p>
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
@ -22,15 +23,15 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-8 p-0 mx-auto">
|
<div class="col-md-8 p-0 mx-auto">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">File Upload Form</p>
|
<p class="form-title">{% trans 'File Upload Form' %}</p>
|
||||||
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form action="" method="POST" enctype="multipart/form-data">{% csrf_token %}
|
<form action="" method="POST" enctype="multipart/form-data">{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button class="btn btn-primary" type="submit">Upload</button>
|
<button class="btn btn-primary" type="submit">{% trans 'Upload' %}</button>
|
||||||
<a class="btn btn-danger" href="{% url 'course_detail' course.slug %}" style="float: right;">Cancel</a>
|
<a class="btn btn-danger" href="{% url 'course_detail' course.slug %}" style="float: right;">{% trans 'Cancel' %}</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,20 +1,21 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">{% trans 'Programs' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'program_detail' course.program.id %}">{{ course.program }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'course_detail' course.slug %}">{{ course }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'course_detail' course.slug %}">{{ course }}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">Video upload</li>
|
<li class="breadcrumb-item active" aria-current="page">{% trans 'Video upload' %}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<p class="title-1">Video upload for {{ course|truncatechars:25 }}</p>
|
<p class="title-1">{% trans 'Video upload for' %} {{ course|truncatechars:25 }}</p>
|
||||||
<div class="title-line"></div><br>
|
<div class="title-line"></div><br>
|
||||||
|
|
||||||
{% include 'snippets/messages.html' %}
|
{% include 'snippets/messages.html' %}
|
||||||
@ -22,14 +23,14 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-8 mx-auto">
|
<div class="col-md-8 mx-auto">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p class="form-title">Video Upload Form</p>
|
<p class="form-title">{% trans 'Video Upload Form' %}</p>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form action="" method="POST" enctype="multipart/form-data">{% csrf_token %}
|
<form action="" method="POST" enctype="multipart/form-data">{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button class="btn btn-primary" type="submit">Upload</button>
|
<button class="btn btn-primary" type="submit">{% trans 'Upload' %}</button>
|
||||||
<a class="btn btn-danger" href="{% url 'course_detail' course.slug %}" style="float: right;">Cancel</a>
|
<a class="btn btn-danger" href="{% url 'course_detail' course.slug %}" style="float: right;">{% trans 'Cancel' %}</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,13 +1,14 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block title %}{{ video.title }} | Learning management system{% endblock title %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ video.title }} | {% trans 'Learning management system' %}{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
<li class="breadcrumb-item"><a href="/">{% trans 'Home' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'programs' %}">Programs</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'programs' %}">{% trans 'Programs' %}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'program_detail' video.course.program.id %}">{{ video.course.program }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'program_detail' video.course.program.id %}">{{ video.course.program }}</a></li>
|
||||||
<li class="breadcrumb-item"><a href="{% url 'course_detail' video.course.slug %}">{{ video.course }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'course_detail' video.course.slug %}">{{ video.course }}</a></li>
|
||||||
<li class="breadcrumb-item active" aria-current="page">{{ video.title }}</li>
|
<li class="breadcrumb-item active" aria-current="page">{{ video.title }}</li>
|
||||||
@ -27,11 +28,11 @@
|
|||||||
|
|
||||||
<div class="col-md-10 mx-auto d-block">
|
<div class="col-md-10 mx-auto d-block">
|
||||||
<div class=""><video src="{{ video.video.url }}" controls ></video></div>
|
<div class=""><video src="{{ video.video.url }}" controls ></video></div>
|
||||||
<p><i class="fas fa-calendar"></i> {{ video.timestamp|timesince }} ago</p>
|
<p><i class="fas fa-calendar"></i> {{ video.timestamp|timesince }} {% trans 'ago' %}</p>
|
||||||
{% if video.summary %}
|
{% if video.summary %}
|
||||||
<p class="text-orange text-center">{{ video.summary }}</p>
|
<p class="text-orange text-center">{{ video.summary }}</p>
|
||||||
{% else %}
|
{% else %}
|
||||||
No video description set.
|
{% trans 'No video description set.' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user