-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/507df760-e873-4372-b20d-9b218fbf1496n%40googlegroups.com.
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login
from django.contrib import messages
from .forms import VideoUploadForm
from .models import Video, Progress
from django.http import JsonResponse
from django.contrib.auth.models import User
from django.middleware.csrf import get_token
from django.urls import reverse_lazy

def home(request):
    return render(request, 'home.html')

def login_view(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return JsonResponse({'success': True})  # Return success response
        else:
            return JsonResponse({'success': False, 'message': 'Invalid username or password.'})  # Return failure response
    else:
        return render(request, 'login.html')

"""def login_view(request):
    continue_watching_url = reverse_lazy('continue_watching')
    return render(request, 'login.html', {'continue_watching_url': continue_watching_url})"""

"""@login_required
def continue_watching(request):
    user = request.user
    progress_list = Progress.objects.filter(user=user)
    context = {'progress_list': progress_list}
    return render(request, 'continue_watching.html', context)"""

@login_required
def continue_watching_view(request):
    progress_list = [
        {'video': {'id': 1, 'title': 'Video 1'}, 'progress': 50},
        {'video': {'id': 2, 'title': 'Video 2'}, 'progress': 80},
        {'video': {'id': 3, 'title': 'Video 3'}, 'progress': 10},
    ]
    return render(request, 'continue_watching.html', {'progress_list': progress_list})

def get_progress_view(request, video_id):
    # Perform logic to fetch progress for the given video_id
    # Replace this with your actual implementation
    progress = 0
    if video_id == 1:
        progress = 75
    elif video_id == 2:
        progress = 50
    elif video_id == 3:
        progress = 90

    return JsonResponse({'progress': progress})


def update_progress(request, video_id):
    # Your logic to update the video progress
    video = Video.objects.get(id=video_id)
    csrf_token = get_token(request)  # Retrieve the CSRF token using the get_token() function

    return render(request, 'update_progress.html', {'video_id': video_id, 'csrf_token': csrf_token})

def upload_video(request):
    if request.method == 'POST':
        form = VideoUploadForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('video_list')
    else:
        form = VideoUploadForm()
    return render(request, 'upload_video.html', {'form': form})

def video_list(request):
    videos = Video.objects.all()
    return render(request, 'video_list.html', {'videos': videos})

def display_video(request, video_id):
    video = Video.objects.get(id=video_id)
    return render(request, 'display_video.html', {'video': video})
Title: Upload Video

Upload Video

{% csrf_token %} {{ form.as_p }}
Title: Login

Login

{% csrf_token %}
Title: Home

Welcome to the Home Page

This is the content of the home page.

Feel free to explore our website and discover amazing features.

Get Started
Title: Video List

Video List

    {% for video in videos %}
  • {{ video.title }}

  • {% empty %}
  • No videos available.
  • {% endfor %}
Title: Continue Watching

Continue Watching

{% if progress_list %}
    {% for progress in progress_list %}
  • {{ progress.video.title }} {{ progress.progress }}
  • {% endfor %}
{% else %}

No videos available.

{% endif %}
Title: Update Progress

Update Video Progress

from django.conf.urls.static import static
from django.conf import settings
from django.urls import path, include
from django.contrib import admin
from myapp import views  # Import the views module

urlpatterns = [
    path('', views.home, name='home'),
    path('admin/', admin.site.urls),
    path('accounts/', include('django.contrib.auth.urls')),
    path('login/', views.login_view, name='login'),
    path('continue_watching/', views.continue_watching_view, name='continue_watching'),
    path('get_progress/<int:video_id>/', views.get_progress_view, name='get_progress'),
    path('update_progress/<int:video_id>/', views.update_progress, name='update_progress'),
    path('upload_video/', views.upload_video, name='upload_video'),
    path('display_video/<int:video_id>/', views.display_video, name='display_video'),
    path('video_list/', views.video_list, name='video_list'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

SECRET_KEY = 'django-insecure-2#fnufoeoz=*qkws72cd9vuf33r=sj!w=8(*+up2abi#0nc=ku'

DEBUG = True

ALLOWED_HOSTS = []

LOGIN_URL = '/accounts/login/'

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'myproject.urls'
import os
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        # 'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
            'loaders': [
                'django.template.loaders.filesystem.Loader',
                # 'django.template.loaders.app_directories.Loader',
            ],
        },
    },
]

WSGI_APPLICATION = 'myproject.wsgi.application'

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'resume',
        'USER': 'root',
        'PASSWORD': 'admin',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
        }
    }
}

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_TZ = True

STATIC_URL = '/static/'

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
Title: Display Video

Video

Reply via email to