Resolve conflicts

This commit is contained in:
Adil Mohak 2024-09-29 10:39:50 +03:00
commit 561d820af8
88 changed files with 3217 additions and 1504 deletions

View File

@ -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

View File

@ -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
View File

View 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")

View File

@ -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)

View File

@ -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)

View File

@ -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),
),
]

View File

@ -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
View 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

View File

@ -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)

View File

@ -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

View File

@ -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),
),
]

View File

@ -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),
),
]

View File

@ -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
View 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

View File

@ -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 ""

File diff suppressed because it is too large Load Diff

View 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 "Уровни студентов"

View File

@ -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",)

View File

@ -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'),
),
]

View File

@ -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
View 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

View File

@ -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

View File

@ -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">&LeftArrow; Return to the app</a> <a href="/" class="link">&LeftArrow; {% trans 'Return to the app' %}</a>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -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">&LeftArrow; Return to the app</a> <a href="/" class="link">&LeftArrow; {% trans 'Return to the app' %}</a>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -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">&LeftArrow; Return to the app</a> <a href="/" class="link">&LeftArrow; {% trans 'Return to the app' %}</a>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -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">&LeftArrow; Return to the app</a> <a href="/" class="link">&LeftArrow; {% trans 'Return to the app' %}</a>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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 &amp; Personal Info</p> <p class="form-title">{% trans 'Email' %} &amp; {% 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 %}

View File

@ -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 &amp; Personal Info</p> <p class="form-title">{% trans 'Email' %} &amp; {% 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 %}

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 &amp; Drop Course</a> <a href="{% url 'course_registration' %}"><i class="fas fa-plus"></i>{% trans 'Add' %} &amp;{% trans 'Drop Course' %}</a>
</li> </li>
{% endif %} {% endif %}
<br /> <br />
<p class="ml-3">&RightArrow; Others</p> <p class="ml-3">&RightArrow; 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 &copy; <script>document.write(new Date().getFullYear());</script> <br />Django LMS &copy; <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>

View File

@ -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>

View File

@ -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,276 +176,9 @@
{% 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>
const malesCount = {{ males_count }}
const femalesCount = {{ females_count }}
$(document).ready(function () {
// Setup
const labels = [
'January',
'February',
'March',
'April',
'May',
'June',
];
const data = {
labels: labels,
datasets: [{
label: 'Students',
backgroundColor: 'rgba(86, 224, 224, 0.5)',
borderColor: 'rgb(86, 224, 224)',
hoverBorderWidth: 3,
data: [0, 10, 5, 2, 20, 30, 45]
}, {
label: 'Teachers',
backgroundColor: 'rgba(253, 174, 28, 0.5)',
borderColor: 'rgb(253, 174, 28)',
hoverBorderWidth: 3,
data: [20, 0, 15, 4, 6, 4, 60],
}, {
label: 'Admins',
backgroundColor: 'rgba(203, 31, 255, 0.5)',
borderColor: 'rgb(203, 31, 255)',
hoverBorderWidth: 3,
data: [85, 30, 34, 20, 20, 55, 45],
}, {
label: 'Stuffs',
backgroundColor: 'rgba(255, 19, 157, 0.5)',
borderColor: 'rgb(255, 19, 157)',
hoverBorderWidth: 3,
data: [45, 75, 70, 80, 20, 30, 90],
}]
};
var traffic = document.getElementById('traffic');
var chart = new Chart(traffic, {
type: 'line',
data: data,
options: {
plugins: {
title: {
display: true,
text: 'Website Traffic',
padding: 15
}
}
}
});
// Setup
const labelsEnrollment = [
'2016',
'2017',
'2018',
'2019',
'2020',
'2021',
];
const dataEnrollment = {
labels: labelsEnrollment,
datasets: [{
label: 'Comp.S',
backgroundColor: 'rgba(86, 224, 224, 0.5)',
borderColor: 'rgb(86, 224, 224)',
hoverBorderWidth: 3,
data: [0, 10, 5, 2, 20, 30, 45]
}, {
label: 'Architecture',
backgroundColor: 'rgba(253, 174, 28, 0.5)',
borderColor: 'rgb(253, 174, 28)',
hoverBorderWidth: 3,
data: [20, 0, 15, 4, 6, 4, 60],
}, {
label: 'Civil Eng',
backgroundColor: 'rgba(203, 31, 255, 0.5)',
borderColor: 'rgb(203, 31, 255)',
hoverBorderWidth: 3,
data: [85, 30, 34, 20, 20, 55, 45],
}, {
label: 'Accounting',
backgroundColor: 'rgba(255, 19, 157, 0.5)',
borderColor: 'rgb(255, 19, 157)',
hoverBorderWidth: 3,
data: [45, 75, 70, 80, 20, 30, 90],
}, {
label: 'Business M.',
backgroundColor: 'rgba(0, 0, 0, 0.5)',
borderColor: 'rgb(0, 0, 0)',
hoverBorderWidth: 3,
data: [15, 75, 45, 90, 60, 30, 90],
}]
};
var enrollement = document.getElementById('enrollement');
var chart = new Chart(enrollement, {
type: 'bar',
data: dataEnrollment,
options: {
plugins: {
title: {
display: true,
text: 'Enrollment per course',
padding: 20
}
}
}
});
// Average grade setup
const labelsGrade = [
'2017',
'2018',
'2019',
'2020',
'2022',
];
const dataGrade = {
labels: labelsGrade,
datasets: [{
label: "Comp sci.",
backgroundColor: 'rgba(86, 224, 224, 0.5)',
borderColor: 'rgb(86, 224, 224)',
hoverBorderWidth: 3,
data: [0, 10, 5, 2, 20, 30, 45]
}, {
label: "Civil eng.",
backgroundColor: 'rgba(253, 174, 28, 0.5)',
borderColor: 'rgb(253, 174, 28)',
hoverBorderWidth: 3,
data: [20, 0, 15, 4, 6, 4, 60],
}, {
label: "Architect.",
backgroundColor: 'rgba(203, 31, 255, 0.5)',
borderColor: 'rgb(203, 31, 255)',
hoverBorderWidth: 3,
data: [85, 30, 34, 20, 20, 55, 45],
}, {
label: "Economics",
backgroundColor: 'rgba(255, 19, 157, 0.5)',
borderColor: 'rgb(255, 19, 157)',
hoverBorderWidth: 3,
data: [45, 75, 70, 80, 20, 30, 90],
}]
};
var students_grade = document.getElementById('students_grade');
var chart = new Chart(students_grade, {
type: 'bar',
data: dataGrade,
options: {
plugins: {
title: {
display: true,
text: 'Students average grade (performance)',
padding: 20
}
}
}
});
const dataGender = {
labels: [
'Man',
'Women'
],
datasets: [{
label: "Students Gender Dataset",
data: [malesCount, femalesCount],
backgroundColor: [
'rgb(255, 99, 132)',
'rgb(54, 162, 235)'
],
hoverOffset: 4
}]
};
var gender = document.getElementById('gender');
var chart = new Chart(gender, {
type: 'pie',
data: dataGender,
options: {
plugins: {
title: {
display: true,
text: 'Students Gender',
padding: 20
}
}
}
});
const dataQualification = {
labels: [
'PHD',
'Masters',
'BSc degree'
],
datasets: [{
label: "Lecturer Qualifications Dataset",
data: [24, 30, 26],
backgroundColor: [
'rgb(255, 99, 132)',
'rgb(255, 193, 7)',
'rgb(54, 162, 235)'
],
hoverOffset: 4
}]
};
var ethnicity = document.getElementById('ethnicity');
var chart = new Chart(ethnicity, {
type: 'pie',
data: dataQualification,
options: {
plugins: {
title: {
display: true,
text: 'Lecturer qualifications',
padding: 20
}
}
}
});
const dataLevels = {
labels: [
'PHD',
'Masters',
'BSc degree'
],
datasets: [{
label: "Students level",
data: [14, 30, 56],
backgroundColor: [
'rgb(255, 99, 132)',
'rgb(255, 193, 7)',
'rgb(54, 162, 235)'
],
hoverOffset: 4
}]
};
var language = document.getElementById('language');
var chart = new Chart(language, {
type: 'pie',
data: dataLevels,
options: {
plugins: {
title: {
display: true,
text: 'Student levels',
padding: 20
}
}
}
});
})
</script>
<script> <script>
$('.fa-expand-alt').click(function () { $('.fa-expand-alt').click(function () {
if ($(this).parent('.chart-wrap').parent('.col-md-6').hasClass('expand')) { if ($(this).parent('.chart-wrap').parent('.col-md-6').hasClass('expand')) {
@ -456,5 +190,272 @@
} }
}) })
</script> </script>
<script>
const malesCount = {{ males_count }}
const femalesCount = {{ females_count }}
$(document).ready(function () {
// Setup
const labels = [
gettext('January'),
gettext('February'),
gettext('March'),
gettext('April'),
gettext('May'),
gettext('June'),
];
const data = {
labels: labels,
datasets: [{
label: gettext('Students'),
backgroundColor: 'rgba(86, 224, 224, 0.5)',
borderColor: 'rgb(86, 224, 224)',
hoverBorderWidth: 3,
data: [0, 10, 5, 2, 20, 30, 45]
}, {
label: gettext('Teachers'),
backgroundColor: 'rgba(253, 174, 28, 0.5)',
borderColor: 'rgb(253, 174, 28)',
hoverBorderWidth: 3,
data: [20, 0, 15, 4, 6, 4, 60],
}, {
label: gettext('Admins'),
backgroundColor: 'rgba(203, 31, 255, 0.5)',
borderColor: 'rgb(203, 31, 255)',
hoverBorderWidth: 3,
data: [85, 30, 34, 20, 20, 55, 45],
}, {
label: gettext('Stuffs'),
backgroundColor: 'rgba(255, 19, 157, 0.5)',
borderColor: 'rgb(255, 19, 157)',
hoverBorderWidth: 3,
data: [45, 75, 70, 80, 20, 30, 90],
}]
};
var traffic = document.getElementById('traffic');
var chart = new Chart(traffic, {
type: 'line',
data: data,
options: {
plugins: {
title: {
display: true,
text: gettext('Website Traffic'),
padding: 15
}
}
}
});
// Setup
const labelsEnrollment = [
'2016',
'2017',
'2018',
'2019',
'2020',
'2021',
];
const dataEnrollment = {
labels: labelsEnrollment,
datasets: [{
label: gettext('Comp.S'),
backgroundColor: 'rgba(86, 224, 224, 0.5)',
borderColor: 'rgb(86, 224, 224)',
hoverBorderWidth: 3,
data: [0, 10, 5, 2, 20, 30, 45]
}, {
label: gettext('Architecture'),
backgroundColor: 'rgba(253, 174, 28, 0.5)',
borderColor: 'rgb(253, 174, 28)',
hoverBorderWidth: 3,
data: [20, 0, 15, 4, 6, 4, 60],
}, {
label: gettext('Civil Eng'),
backgroundColor: 'rgba(203, 31, 255, 0.5)',
borderColor: 'rgb(203, 31, 255)',
hoverBorderWidth: 3,
data: [85, 30, 34, 20, 20, 55, 45],
}, {
label: gettext('Accounting'),
backgroundColor: 'rgba(255, 19, 157, 0.5)',
borderColor: 'rgb(255, 19, 157)',
hoverBorderWidth: 3,
data: [45, 75, 70, 80, 20, 30, 90],
}, {
label: gettext('Business M.'),
backgroundColor: 'rgba(0, 0, 0, 0.5)',
borderColor: 'rgb(0, 0, 0)',
hoverBorderWidth: 3,
data: [15, 75, 45, 90, 60, 30, 90],
}]
};
var enrollement = document.getElementById('enrollement');
var chart = new Chart(enrollement, {
type: 'bar',
data: dataEnrollment,
options: {
plugins: {
title: {
display: true,
text: gettext('Enrollment per course'),
padding: 20
}
}
}
});
// Average grade setup
const labelsGrade = [
'2017',
'2018',
'2019',
'2020',
'2022',
];
const dataGrade = {
labels: labelsGrade,
datasets: [{
label: gettext("Comp sci."),
backgroundColor: 'rgba(86, 224, 224, 0.5)',
borderColor: 'rgb(86, 224, 224)',
hoverBorderWidth: 3,
data: [0, 10, 5, 2, 20, 30, 45]
}, {
label: gettext("Civil eng."),
backgroundColor: 'rgba(253, 174, 28, 0.5)',
borderColor: 'rgb(253, 174, 28)',
hoverBorderWidth: 3,
data: [20, 0, 15, 4, 6, 4, 60],
}, {
label: gettext("Architect."),
backgroundColor: 'rgba(203, 31, 255, 0.5)',
borderColor: 'rgb(203, 31, 255)',
hoverBorderWidth: 3,
data: [85, 30, 34, 20, 20, 55, 45],
}, {
label: gettext("Economics"),
backgroundColor: 'rgba(255, 19, 157, 0.5)',
borderColor: 'rgb(255, 19, 157)',
hoverBorderWidth: 3,
data: [45, 75, 70, 80, 20, 30, 90],
}]
};
var students_grade = document.getElementById('students_grade');
var chart = new Chart(students_grade, {
type: 'bar',
data: dataGrade,
options: {
plugins: {
title: {
display: true,
text: gettext('Students average grade (performance)'),
padding: 20
}
}
}
});
const dataGender = {
labels: [
gettext('Man'),
gettext('Women')
],
datasets: [{
label: gettext("Students Gender Dataset"),
data: [malesCount, femalesCount],
backgroundColor: [
'rgb(255, 99, 132)',
'rgb(54, 162, 235)'
],
hoverOffset: 4
}]
};
var gender = document.getElementById('gender');
var chart = new Chart(gender, {
type: 'pie',
data: dataGender,
options: {
plugins: {
title: {
display: true,
text: gettext('Students Gender'),
padding: 20
}
}
}
});
const dataQualification = {
labels: [
gettext('PHD'),
gettext('Masters'),
gettext('BSc degree')
],
datasets: [{
label: gettext("Lecturer Qualifications Dataset"),
data: [24, 30, 26],
backgroundColor: [
'rgb(255, 99, 132)',
'rgb(255, 193, 7)',
'rgb(54, 162, 235)'
],
hoverOffset: 4
}]
};
var ethnicity = document.getElementById('ethnicity');
var chart = new Chart(ethnicity, {
type: 'pie',
data: dataQualification,
options: {
plugins: {
title: {
display: true,
text: gettext('Lecturer qualifications'),
padding: 20
}
}
}
});
const dataLevels = {
labels: [
gettext('PHD'),
gettext('Masters'),
gettext('BSc degree')
],
datasets: [{
label: gettext("Students level"),
data: [14, 30, 56],
backgroundColor: [
'rgb(255, 99, 132)',
'rgb(255, 193, 7)',
'rgb(54, 162, 235)'
],
hoverOffset: 4
}]
};
var language = document.getElementById('language');
var chart = new Chart(language, {
type: 'pie',
data: dataLevels,
options: {
plugins: {
title: {
display: true,
text: gettext('Student levels'),
padding: 20
}
}
}
});
})
</script>
{% endblock %} {% endblock %}

View File

@ -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 &amp; Events</div> <div class="title-1">{% trans 'News' %} &amp; {% 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 %}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -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>

View File

@ -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 &amp; Drop</p> <p class="title-1">{% trans 'Course Add' %} &amp; {% 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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -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>

View File

@ -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 &amp; Continue</button> <button class="btn btn-primary my-4" id="{% if form.is_valid %}btn-transition{% endif %}" type="submit">{% trans 'Save' %} &amp; {% trans 'Continue' %}</button>
</form> </form>
</div> </div>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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>

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -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">&gt;</span> Title or Description</li> <li>{% trans 'Program' %} <span class="text-orange">&gt;</span> {% trans 'Title or Description' %}</li>
<li>Course <span class="text-orange">&gt;</span> Title, Code or Description</li> <li>{% trans 'Course' %} <span class="text-orange">&gt;</span>{% trans 'Title, Code or Description' %}</li>
<li>News And Events <span class="text-orange">&gt;</span> Title, Description or just by typing "news" or "event"</li> <li>{% trans 'News And Events' %} <span class="text-orange">&gt;</span> {% trans 'Title, Description or just by typing "news" or "event %}li>
<li>Quiz <span class="text-orange">&gt;</span> Title, Description or Category(practice, assignment and exam)</li> <li>{% trans 'Quiz' %} <span class="text-orange">&gt;</span>{% trans 'Title, Description or Category(practice, assignment and exam)' %}</li>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -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 &raquo;</a> {% trans 'Manage' %}<a class="link" href="{% url 'lecturer_list' %}">{% trans 'Lecturers' %} &raquo;</a>
<p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) lecturers</p> <p class="text-muted">CRUD (Create, Retrieve, Update &amp; 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 &raquo;</a> {% trans 'Manage' %}<a class="link" href="{% url 'student_list' %}">{% trans 'Students' %} &raquo;</a>
<p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) students</p> <p class="text-muted">CRUD (Create, Retrieve, Update &amp; 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 &raquo;</a> {% trans 'Manage' %}<a class="link" href="{% url 'session_list' %}">{% trans 'Session' %} &raquo;</a>
<p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) sessions</p> <p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) {% trans 'sessions' %}</p>
</div> </div>
<div class="mt-3"> <div class="mt-3">
Manage<a class="link" href="{% url 'semester_list' %}"> Semester &raquo;</a> {% trans 'Manage' %}<a class="link" href="{% url 'semester_list' %}"> {% trans 'Semester' %} &raquo;</a>
<p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) semesters</p> <p class="text-muted">CRUD (Create, Retrieve, Update &amp; 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 &amp; Drop {% trans 'Course Add' %} &amp; {% 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 &amp; Courses &raquo;</a> {% trans 'Manage' %}<a class="link" href="{% url 'programs' %}"> {% trans 'Programs' %} &amp; {% trans 'Courses' %} &raquo;</a>
<p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) programs</p> <p class="text-muted">CRUD (Create, Retrieve, Update &amp; 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 &raquo;</a> {% trans 'Manage' %}<a class="link" href="{% url 'course_allocation_view' %}"> {% trans 'Course Allocations' %} &raquo;</a>
<p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) course allocations</p> <p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) {% trans 'course allocations' %}</p>
</div> </div>
<div class="mt-3"> <div class="mt-3">
Manage<a class="link" href="{% url 'home' %}"> News &amp; Events &raquo;</a> {% trans 'Manage' %}<a class="link" href="{% url 'home' %}"> {% trans 'News' %} &amp; {% trans 'Events' %} &raquo;</a>
<p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) News &amp; Events</p> <p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) {% trans 'News' %} &amp; {% trans 'Events' %}</p>
</div> </div>
</div> </div>
</div> </div>

View File

@ -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>

View File

@ -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 &amp; Personal Info</div> <div class="form-title">{% trans 'Email' %} &amp; {% 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 %}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>