|
32 | 32 | from django.core.exceptions import ValidationError |
33 | 33 | from django.core.validators import URLValidator |
34 | 34 | from django.urls import reverse,reverse_lazy |
35 | | -from django.db.models import F, Min, Max, Q |
| 35 | +from django.db.models import F, Max, Q |
36 | 36 | from django.forms.models import modelform_factory, inlineformset_factory |
37 | 37 | from django.template import TemplateDoesNotExist |
38 | 38 | from django.template.loader import render_to_string |
@@ -1906,69 +1906,6 @@ def week_view(request, num=None, name=None, owner=None): |
1906 | 1906 | "items": json.dumps(items), |
1907 | 1907 | }) |
1908 | 1908 |
|
1909 | | -@role_required('Area Director','Secretariat','IAB') |
1910 | | -def room_view(request, num=None, name=None, owner=None): |
1911 | | - meeting = get_meeting(num) |
1912 | | - |
1913 | | - rooms = meeting.room_set.order_by('functional_name','name') |
1914 | | - if not rooms.exists(): |
1915 | | - return HttpResponse("No rooms defined yet") |
1916 | | - |
1917 | | - if name is None: |
1918 | | - schedule = get_schedule(meeting) |
1919 | | - else: |
1920 | | - person = get_person_by_email(owner) |
1921 | | - schedule = get_schedule_by_name(meeting, person, name) |
1922 | | - |
1923 | | - assignments = SchedTimeSessAssignment.objects.filter( |
1924 | | - schedule__in=[schedule, schedule.base if schedule else None] |
1925 | | - ).prefetch_related( |
1926 | | - 'timeslot', 'timeslot__location', 'session', 'session__group', 'session__group__parent' |
1927 | | - ) |
1928 | | - unavailable = meeting.timeslot_set.filter(type__slug='unavail') |
1929 | | - if not (assignments.exists() or unavailable.exists()): |
1930 | | - return HttpResponse("No sessions/timeslots available yet") |
1931 | | - |
1932 | | - earliest = None |
1933 | | - latest = None |
1934 | | - |
1935 | | - if assignments: |
1936 | | - earliest = assignments.aggregate(Min('timeslot__time'))['timeslot__time__min'] |
1937 | | - latest = assignments.aggregate(Max('timeslot__time'))['timeslot__time__max'] |
1938 | | - |
1939 | | - if unavailable: |
1940 | | - earliest_unavailable = unavailable.aggregate(Min('time'))['time__min'] |
1941 | | - if not earliest or ( earliest_unavailable and earliest_unavailable < earliest ): |
1942 | | - earliest = earliest_unavailable |
1943 | | - latest_unavailable = unavailable.aggregate(Max('time'))['time__max'] |
1944 | | - if not latest or ( latest_unavailable and latest_unavailable > latest ): |
1945 | | - latest = latest_unavailable |
1946 | | - |
1947 | | - if not (earliest and latest): |
1948 | | - raise Http404 |
1949 | | - |
1950 | | - base_time = earliest |
1951 | | - base_day = datetime.datetime(base_time.year,base_time.month,base_time.day) |
1952 | | - |
1953 | | - day = base_day |
1954 | | - days = [] |
1955 | | - while day <= latest : |
1956 | | - days.append(day) |
1957 | | - day += datetime.timedelta(days=1) |
1958 | | - |
1959 | | - unavailable = list(unavailable) |
1960 | | - for t in unavailable: |
1961 | | - t.delta_from_beginning = (t.time - base_time).total_seconds() |
1962 | | - t.day = (t.time-base_day).days |
1963 | | - |
1964 | | - assignments = list(assignments) |
1965 | | - for ss in assignments: |
1966 | | - ss.delta_from_beginning = (ss.timeslot.time - base_time).total_seconds() |
1967 | | - ss.day = (ss.timeslot.time-base_day).days |
1968 | | - |
1969 | | - template = "meeting/room-view.html" |
1970 | | - return render(request, template,{"meeting":meeting,"schedule":schedule,"unavailable":unavailable,"assignments":assignments,"rooms":rooms,"days":days}) |
1971 | | - |
1972 | 1909 | def ical_session_status(assignment): |
1973 | 1910 | if assignment.session.current_status == 'canceled': |
1974 | 1911 | return "CANCELLED" |
|
0 commit comments