from django.urls import reverse_lazy, reverse from django.views.generic import ListView, DetailView, CreateView, UpdateView, DeleteView from web.models import Activity, User, ActivityLog class UserListView(ListView): model = User class UserCreateView(CreateView): model = User fields = ['name', 'email'] success_url = reverse_lazy('users') class UserDetailView(DetailView): model = User context_object_name = 'user' pk_url_kwarg = 'user_id' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['activity_logs'] = ActivityLog.objects.filter(user=self.object).order_by('start_time') return context class ActivityLogCreateView(CreateView): model = ActivityLog fields = ['activity', 'user', 'start_time', 'end_time'] def get_success_url(self): return reverse('user', kwargs={ 'user_id': self.object.user.id, }) class ActivityLogUpdateView(UpdateView): model = ActivityLog fields = ['activity', 'user', 'start_time', 'end_time'] pk_url_kwarg = 'activity_log_id' def get_success_url(self): return reverse('user', kwargs={ 'user_id': self.object.user.id, }) class ActivityLogDeleteView(DeleteView): model = ActivityLog pk_url_kwarg = 'activity_log_id' def get_success_url(self): return reverse('user', kwargs={ 'user_id': self.object.user.id, })