Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
4f152585
Commit
4f152585
authored
Jan 27, 2012
by
Bridger Maxwell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Changed behavior of due date tagger to be more like downward inheritance
--HG-- branch : profiledev
parent
fa63a17a
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
20 additions
and
29 deletions
+20
-29
courseware/content_parser.py
+20
-29
No files found.
courseware/content_parser.py
View file @
4f152585
...
...
@@ -88,37 +88,28 @@ def id_tag(course):
else
:
elem
.
set
(
'id'
,
fasthash
(
etree
.
tostring
(
elem
)))
def
due_tag
(
course
):
# The primary purpose of this tagging is to make sure that each problem
# inherits the due date from the section that it is in. We also make
# sure that each section has a due date. If it does not, it inherits
# the last section's due date. This is to make sure that the sections
# are in chronological order. It is an exception to have a later section
# due before an earlier one.
# How are due dates handled for different time zones? What _time_ are things due?
# First, we grab the first due date to occur. This is our starting date.
firstSectionDue
=
course
.
xpath
(
"//section[@due]"
)[
0
]
# I tried adding [1] to the end of the query string to select the first,
# but it didn't work. Is this not supported in etree?
# All new dates must be further than currentDate
currentDate
=
firstSectionDue
.
get
(
'due'
)
sections
=
course
.
xpath
(
"//section"
)
for
section
in
sections
:
existingDate
=
section
.
get
(
'due'
)
if
existingDate
:
#TODO: Make sure existing date is further into the future than currentDate
currentDate
=
existingDate
def
due_tag
(
element
,
parent_due_date
=
None
):
''' This call is to pass down due dates. If an element has a due date,
all of the elements children will inherit this due date (unless the element
has a due date of its own). This is called recursively'''
if
(
parent_due_date
==
None
):
#This is the entry call. Select all due elements
all_due_elements
=
element
.
xpath
(
"//*[@due]"
)
for
due_element
in
all_due_elements
:
due_date
=
due_element
.
get
(
'due'
)
for
child_element
in
due_element
:
due_tag
(
child_element
,
due_date
)
else
:
section
.
set
(
'due'
,
currentDate
)
problems
=
course
.
xpath
(
'//section[@name=$section]//problem'
,
section
=
section
.
get
(
'name'
))
#The hack below is because we would get _ContentOnlyELements from the
#iterator that can't have due dates set. We can't find API for it
if
not
element
.
get
(
'due'
)
and
type
(
element
)
==
etree
.
_Element
:
element
.
set
(
'due'
,
parent_due_date
)
due_date
=
parent_due_date
else
:
due_date
=
element
.
get
(
'due'
)
for
problem
in
problems
:
problem
.
set
(
'due'
,
currentD
ate
)
for
child_element
in
element
:
due_tag
(
child_element
,
due_d
ate
)
def
course_file
(
user
):
# TODO: Cache.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment