Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Hi! I cleaned up your code for you! #16

Open
wants to merge 1 commit into from

0 participants

@GunioRobot

Hi there!

This is WhitespaceBot. I'm an open-source robot that removes trailing white space in your code, and gives you a gitignore file if you didn't have one!

Why whitespace? Whitespace is an eyesore for developers who use text editors with dark themes. It's not a huge deal, but it's a bit annoying if you use Vim in a terminal. Really, I'm just a proof of concept - GitHub's V3 API allows robots to automatically improve open source projects, and that's really cool. Hopefully, somebody, maybe you!, will fork me and make me even more useful. My owner is funding a bounty to anybody who can add security fixing features to me.

I've only cleaned your most popular project, and I've added you to a list of users not to contact again, so you won't get any more pull requests from me unless you ask. If I'm misbehaving, please email my owner and tell him to turn me off! If this is pull request is of no use to you, please just ignore it.

Thanks!
WhiteSpacebot from Gun.io.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Dec 19, 2011
  1. Remove whitespace [Gun.io WhitespaceBot]

    Gun.io Whitespace Robot authored
This page is out of date. Refresh to see the latest.
Showing with 342 additions and 342 deletions.
  1. +6 −6 README.rst
  2. +117 −117 djtracker/fixtures/initial_data.json
  3. +2 −2 djtracker/fixtures/testdata/00_test_users.json
  4. +101 −101 djtracker/fixtures/testdata/01_test_config.json
  5. +3 −3 djtracker/templates/djtracker/base.html
  6. +2 −2 djtracker/templates/djtracker/blocks/issue_proptab.html
  7. +24 −24 djtracker/templates/djtracker/djtracker.css
  8. +2 −2 djtracker/templates/djtracker/index.html
  9. +7 −7 djtracker/templates/djtracker/issue_detail.html
  10. +5 −5 djtracker/templates/djtracker/issue_filter.html
  11. +2 −2 djtracker/templates/djtracker/modify_issue.html
  12. +3 −3 djtracker/templates/djtracker/profile/login.html
  13. +4 −4 djtracker/templates/djtracker/project_index.html
  14. +44 −44 djtracker/templates/djtracker/sorttable.js
  15. +1 −1  djtracker/templates/djtracker/submit_issue.html
  16. +1 −1  djtracker/templates/djtracker/topnav.html
  17. +1 −1  djtracker/templates/djtracker/upload_form.html
  18. +5 −5 djtracker/templates/djtracker/user_dashboard.html
  19. +5 −5 djtracker/templates/djtracker/user_profile.html
  20. +1 −1  djtracker/templates/djtracker/usermenu.html
  21. +4 −4 docs/source/email.rst
  22. +2 −2 docs/source/usage.rst
View
12 README.rst
@@ -49,7 +49,7 @@ These permissions break down into three methods so that you can give groups, ind
Git Repo Polling (complete):
-DjTracker can polling a git repo's commits, and auto-update issues based on a certain string. This is pretty common in other issue trackers as well. You can set this up by setting the "Git Repo Path" of a project, which correlates to a location on your *filesystem*. gitpython doesn't handle parsing git URLs as far as I can tell yet, so you need to have the repo checked out on the server. This has a couple of drawbacks, such as you'll need to setup a cron to pull down commits to that repo on a semi-regular basis.
+DjTracker can polling a git repo's commits, and auto-update issues based on a certain string. This is pretty common in other issue trackers as well. You can set this up by setting the "Git Repo Path" of a project, which correlates to a location on your *filesystem*. gitpython doesn't handle parsing git URLs as far as I can tell yet, so you need to have the repo checked out on the server. This has a couple of drawbacks, such as you'll need to setup a cron to pull down commits to that repo on a semi-regular basis.
You'll also need to initialize the project by giving it a starting commit hash as well. This allows the git poller to have a starting location in the git log to parse from. It'll then be able to parse from that commit forward. Again, some drawbacks, it'll brute force the list of commits, meaning that it can find commits in other branches than the master. Again, this appears to me as another limit of the 'gitpython' package. (Note: I don't mean any ill towards gitpython, I love the package, and I'm sure it'll continue its improvement.)
@@ -75,12 +75,12 @@ Issues are attached to projects via foreign keys. You can comment on issues, cha
User Profiles (80% complete):
------------------------------------------------
-Currently I don't see an excessively large need for these, but that could change depending on use cases. As a result I went ahead and built a user profile module just in case. It's currently very limited, but you can view your profile (and the profile of others) to see what issues they have assigned to them.
+Currently I don't see an excessively large need for these, but that could change depending on use cases. As a result I went ahead and built a user profile module just in case. It's currently very limited, but you can view your profile (and the profile of others) to see what issues they have assigned to them.
Email Handling
------------------------------------------------
-DjTracker has the ability to parse email addresses for new comments and new issues. Currently this only supports IMAP, but POP3 support is planned for the future.
+DjTracker has the ability to parse email addresses for new comments and new issues. Currently this only supports IMAP, but POP3 support is planned for the future.
Email Settings
------------------------------------------------
@@ -99,12 +99,12 @@ Expected Email Subjects
DjTracker needs email subjects to be formed in a certain fashion in order to properly create issues on your behalf. If you're creating a new issue via email, the following subject is expected:
DjTracker: [project-slug]: Your Title
-
+
If you're responding on an issue, you'd use the following:
DjTracker: [project-slug]: Issue #5
-
-That'll add the comment onto the end of the current issue with an ID of 5.
+
+That'll add the comment onto the end of the current issue with an ID of 5.
Email Cron Job
------------------------------------------------
View
234 djtracker/fixtures/initial_data.json
@@ -1,188 +1,188 @@
[
{
- "pk": 1,
- "model": "djtracker.project",
- "fields": {
- "allow_anon_comment": false,
- "modified_date": "2009-11-14 16:50:17",
- "allow_authed_editing": true,
- "groups_can_comment": [],
- "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in diam est. In id tortor vitae nulla iaculis imperdiet. Quisque scelerisque ipsum suscipit nibh scelerisque gravida. In sit amet dolor lectus. Vestibulum sit amet consectetur urna. Nam sit amet ligula ac turpis consequat dapibus sed et leo. Donec eget quam massa. Sed ac porta ante. In mi metus, rhoncus quis viverra in, vulputate eu erat. Aenean facilisis mauris nec lacus congue tempor. Vivamus facilisis, augue at imperdiet interdum, velit urna consequat nisi, sed tempus erat felis sed turpis. Suspendisse bibendum leo vel metus ultrices congue. In fringilla purus varius velit rutrum eget faucibus turpis blandit. Cras mauris metus, cursus et hendrerit id, rutrum at purus. Vestibulum accumsan tincidunt ante sed pretium. Phasellus nec mattis lacus.",
- "groups_can_edit": [],
- "users_can_comment": [],
- "allow_authed_viewing": true,
- "groups_can_view": [],
- "name": "Default Project",
- "users_can_edit": [],
- "allow_authed_comment": true,
- "users_can_view": [],
- "created_date": "2009-11-14 16:50:17",
- "active": true,
- "allow_anon_viewing": true,
- "slug": "default-project",
+ "pk": 1,
+ "model": "djtracker.project",
+ "fields": {
+ "allow_anon_comment": false,
+ "modified_date": "2009-11-14 16:50:17",
+ "allow_authed_editing": true,
+ "groups_can_comment": [],
+ "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in diam est. In id tortor vitae nulla iaculis imperdiet. Quisque scelerisque ipsum suscipit nibh scelerisque gravida. In sit amet dolor lectus. Vestibulum sit amet consectetur urna. Nam sit amet ligula ac turpis consequat dapibus sed et leo. Donec eget quam massa. Sed ac porta ante. In mi metus, rhoncus quis viverra in, vulputate eu erat. Aenean facilisis mauris nec lacus congue tempor. Vivamus facilisis, augue at imperdiet interdum, velit urna consequat nisi, sed tempus erat felis sed turpis. Suspendisse bibendum leo vel metus ultrices congue. In fringilla purus varius velit rutrum eget faucibus turpis blandit. Cras mauris metus, cursus et hendrerit id, rutrum at purus. Vestibulum accumsan tincidunt ante sed pretium. Phasellus nec mattis lacus.",
+ "groups_can_edit": [],
+ "users_can_comment": [],
+ "allow_authed_viewing": true,
+ "groups_can_view": [],
+ "name": "Default Project",
+ "users_can_edit": [],
+ "allow_authed_comment": true,
+ "users_can_view": [],
+ "created_date": "2009-11-14 16:50:17",
+ "active": true,
+ "allow_anon_viewing": true,
+ "slug": "default-project",
"allow_anon_editing": false
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.milestone",
+ "pk": 1,
+ "model": "djtracker.milestone",
"fields": {
- "modified_date": "2009-11-14 16:52:10",
- "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in diam est. In id tortor vitae nulla iaculis imperdiet. Quisque scelerisque ipsum suscipit nibh scelerisque gravida. In sit amet dolor lectus. Vestibulum sit amet consectetur urna. Nam sit amet ligula ac turpis consequat dapibus sed et leo. Donec eget quam massa. Sed ac porta ante. In mi metus, rhoncus quis viverra in, vulputate eu erat. Aenean facilisis mauris nec lacus congue tempor. Vivamus facilisis, augue at imperdiet interdum, velit urna consequat nisi, sed tempus erat felis sed turpis. Suspendisse bibendum leo vel metus ultrices congue. In fringilla purus varius velit rutrum eget faucibus turpis blandit. Cras mauris metus, cursus et hendrerit id, rutrum at purus. Vestibulum accumsan tincidunt ante sed pretium. Phasellus nec mattis lacus.",
- "project": 1,
- "created_date": "2009-11-14 16:52:10",
- "active": true,
- "goal_date": "2009-11-24 16:52:08",
- "slug": "default-milestone",
+ "modified_date": "2009-11-14 16:52:10",
+ "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in diam est. In id tortor vitae nulla iaculis imperdiet. Quisque scelerisque ipsum suscipit nibh scelerisque gravida. In sit amet dolor lectus. Vestibulum sit amet consectetur urna. Nam sit amet ligula ac turpis consequat dapibus sed et leo. Donec eget quam massa. Sed ac porta ante. In mi metus, rhoncus quis viverra in, vulputate eu erat. Aenean facilisis mauris nec lacus congue tempor. Vivamus facilisis, augue at imperdiet interdum, velit urna consequat nisi, sed tempus erat felis sed turpis. Suspendisse bibendum leo vel metus ultrices congue. In fringilla purus varius velit rutrum eget faucibus turpis blandit. Cras mauris metus, cursus et hendrerit id, rutrum at purus. Vestibulum accumsan tincidunt ante sed pretium. Phasellus nec mattis lacus.",
+ "project": 1,
+ "created_date": "2009-11-14 16:52:10",
+ "active": true,
+ "goal_date": "2009-11-24 16:52:08",
+ "slug": "default-milestone",
"name": "Default Milestone"
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.component",
+ "pk": 1,
+ "model": "djtracker.component",
"fields": {
- "modified_date": "2009-11-14 16:52:19",
- "name": "Default Component",
- "project": 1,
- "created_date": "2009-11-14 16:52:19",
- "active": true,
+ "modified_date": "2009-11-14 16:52:19",
+ "name": "Default Component",
+ "project": 1,
+ "created_date": "2009-11-14 16:52:19",
+ "active": true,
"slug": "default-component"
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.version",
+ "pk": 1,
+ "model": "djtracker.version",
"fields": {
- "modified_date": "2009-11-14 16:52:41",
- "name": "Default Version",
- "project": 1,
- "created_date": "2009-11-14 16:52:41",
- "active": true,
+ "modified_date": "2009-11-14 16:52:41",
+ "name": "Default Version",
+ "project": 1,
+ "created_date": "2009-11-14 16:52:41",
+ "active": true,
"slug": "default-version"
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.status",
+ "pk": 1,
+ "model": "djtracker.status",
"fields": {
- "name": "Open",
+ "name": "Open",
"slug": "open"
}
- },
+ },
{
- "pk": 2,
- "model": "djtracker.status",
+ "pk": 2,
+ "model": "djtracker.status",
"fields": {
- "name": "Closed",
+ "name": "Closed",
"slug": "closed"
}
- },
+ },
{
- "pk": 3,
- "model": "djtracker.status",
+ "pk": 3,
+ "model": "djtracker.status",
"fields": {
- "name": "Deferred",
+ "name": "Deferred",
"slug": "deferred"
}
- },
+ },
{
- "pk": 4,
- "model": "djtracker.status",
+ "pk": 4,
+ "model": "djtracker.status",
"fields": {
- "name": "Denied",
+ "name": "Denied",
"slug": "denied"
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.priority",
+ "pk": 1,
+ "model": "djtracker.priority",
"fields": {
- "name": "Urgent",
+ "name": "Urgent",
"slug": "urgent"
}
- },
+ },
{
- "pk": 2,
- "model": "djtracker.priority",
+ "pk": 2,
+ "model": "djtracker.priority",
"fields": {
- "name": "Critical",
+ "name": "Critical",
"slug": "critical"
}
- },
+ },
{
- "pk": 3,
- "model": "djtracker.priority",
+ "pk": 3,
+ "model": "djtracker.priority",
"fields": {
- "name": "Trivial",
+ "name": "Trivial",
"slug": "trivial"
}
- },
+ },
{
- "pk": 4,
- "model": "djtracker.priority",
+ "pk": 4,
+ "model": "djtracker.priority",
"fields": {
- "name": "Normal",
+ "name": "Normal",
"slug": "normal"
}
- },
+ },
{
- "pk": 5,
- "model": "djtracker.priority",
+ "pk": 5,
+ "model": "djtracker.priority",
"fields": {
- "name": "Low",
+ "name": "Low",
"slug": "low"
}
- },
+ },
{
- "pk": 6,
- "model": "djtracker.priority",
+ "pk": 6,
+ "model": "djtracker.priority",
"fields": {
- "name": "High",
+ "name": "High",
"slug": "high"
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.issuetype",
+ "pk": 1,
+ "model": "djtracker.issuetype",
"fields": {
- "name": "Bug",
+ "name": "Bug",
"slug": "bug"
}
- },
+ },
{
- "pk": 2,
- "model": "djtracker.issuetype",
+ "pk": 2,
+ "model": "djtracker.issuetype",
"fields": {
- "name": "Defect",
+ "name": "Defect",
"slug": "defect"
}
- },
+ },
{
- "pk": 3,
- "model": "djtracker.issuetype",
+ "pk": 3,
+ "model": "djtracker.issuetype",
"fields": {
- "name": "Feature Request",
+ "name": "Feature Request",
"slug": "feature-request"
}
- },
- {
- "pk": 1,
- "model": "djtracker.issue",
- "fields": {
- "status": 1,
- "priority": 2,
- "name": "Test Issue",
- "created_date": "2009-11-14 16:52:57",
- "modified_date": "2009-11-14 16:52:57",
- "assigned_to": null,
- "component": 1,
- "created_by": null,
- "project": 1,
- "version": 1,
- "watched_by": [],
- "issue_type": 1,
- "milestone": 1,
- "active": true,
+ },
+ {
+ "pk": 1,
+ "model": "djtracker.issue",
+ "fields": {
+ "status": 1,
+ "priority": 2,
+ "name": "Test Issue",
+ "created_date": "2009-11-14 16:52:57",
+ "modified_date": "2009-11-14 16:52:57",
+ "assigned_to": null,
+ "component": 1,
+ "created_by": null,
+ "project": 1,
+ "version": 1,
+ "watched_by": [],
+ "issue_type": 1,
+ "milestone": 1,
+ "active": true,
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in diam est. In id tortor vitae nulla iaculis imperdiet. Quisque scelerisque ipsum suscipit nibh scelerisque gravida. In sit amet dolor lectus. Vestibulum sit amet consectetur urna. Nam sit amet ligula ac turpis consequat dapibus sed et leo. Donec eget quam massa. Sed ac porta ante. In mi metus, rhoncus quis viverra in, vulputate eu erat. Aenean facilisis mauris nec lacus congue tempor. Vivamus facilisis, augue at imperdiet interdum, velit urna consequat nisi, sed tempus erat felis sed turpis. Suspendisse bibendum leo vel metus ultrices congue. In fringilla purus varius velit rutrum eget faucibus turpis blandit. Cras mauris metus, cursus et hendrerit id, rutrum at purus. Vestibulum accumsan tincidunt ante sed pretium. Phasellus nec mattis lacus."
}
}
View
4 djtracker/fixtures/testdata/00_test_users.json
@@ -1,4 +1,4 @@
-[ { "fields" :
+[ { "fields" :
{ "date_joined" : "2009-12-08 03:56:19",
"email" : "admin@djtracker.corp",
"first_name" : "",
@@ -15,7 +15,7 @@
"model" : "auth.user",
"pk" : 1
},
- { "fields" :
+ { "fields" :
{ "date_joined" : "2009-12-13 20:26:17",
"email" : "creator@djtracker.corp",
"first_name" : "",
View
202 djtracker/fixtures/testdata/01_test_config.json
@@ -1,169 +1,169 @@
[
{
- "pk": 1,
- "model": "djtracker.project",
+ "pk": 1,
+ "model": "djtracker.project",
"fields": {
- "allow_anon_comment": false,
- "modified_date": "2009-11-14 16:50:17",
- "allow_authed_editing": true,
- "groups_can_comment": [],
- "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in diam est. In id tortor vitae nulla iaculis imperdiet. Quisque scelerisque ipsum suscipit nibh scelerisque gravida. In sit amet dolor lectus. Vestibulum sit amet consectetur urna. Nam sit amet ligula ac turpis consequat dapibus sed et leo. Donec eget quam massa. Sed ac porta ante. In mi metus, rhoncus quis viverra in, vulputate eu erat. Aenean facilisis mauris nec lacus congue tempor. Vivamus facilisis, augue at imperdiet interdum, velit urna consequat nisi, sed tempus erat felis sed turpis. Suspendisse bibendum leo vel metus ultrices congue. In fringilla purus varius velit rutrum eget faucibus turpis blandit. Cras mauris metus, cursus et hendrerit id, rutrum at purus. Vestibulum accumsan tincidunt ante sed pretium. Phasellus nec mattis lacus.",
- "groups_can_edit": [],
- "users_can_comment": [],
- "allow_authed_viewing": true,
- "groups_can_view": [],
- "name": "Default Project",
- "users_can_edit": [],
- "allow_authed_comment": true,
+ "allow_anon_comment": false,
+ "modified_date": "2009-11-14 16:50:17",
+ "allow_authed_editing": true,
+ "groups_can_comment": [],
+ "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in diam est. In id tortor vitae nulla iaculis imperdiet. Quisque scelerisque ipsum suscipit nibh scelerisque gravida. In sit amet dolor lectus. Vestibulum sit amet consectetur urna. Nam sit amet ligula ac turpis consequat dapibus sed et leo. Donec eget quam massa. Sed ac porta ante. In mi metus, rhoncus quis viverra in, vulputate eu erat. Aenean facilisis mauris nec lacus congue tempor. Vivamus facilisis, augue at imperdiet interdum, velit urna consequat nisi, sed tempus erat felis sed turpis. Suspendisse bibendum leo vel metus ultrices congue. In fringilla purus varius velit rutrum eget faucibus turpis blandit. Cras mauris metus, cursus et hendrerit id, rutrum at purus. Vestibulum accumsan tincidunt ante sed pretium. Phasellus nec mattis lacus.",
+ "groups_can_edit": [],
+ "users_can_comment": [],
+ "allow_authed_viewing": true,
+ "groups_can_view": [],
+ "name": "Default Project",
+ "users_can_edit": [],
+ "allow_authed_comment": true,
"users_can_view": [],
"watched_by": [
4
],
- "created_date": "2009-11-14 16:50:17",
- "active": true,
- "allow_anon_viewing": true,
- "slug": "unittest-project",
+ "created_date": "2009-11-14 16:50:17",
+ "active": true,
+ "allow_anon_viewing": true,
+ "slug": "unittest-project",
"allow_anon_editing": false
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.milestone",
+ "pk": 1,
+ "model": "djtracker.milestone",
"fields": {
- "modified_date": "2009-11-14 16:52:10",
- "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in diam est. In id tortor vitae nulla iaculis imperdiet. Quisque scelerisque ipsum suscipit nibh scelerisque gravida. In sit amet dolor lectus. Vestibulum sit amet consectetur urna. Nam sit amet ligula ac turpis consequat dapibus sed et leo. Donec eget quam massa. Sed ac porta ante. In mi metus, rhoncus quis viverra in, vulputate eu erat. Aenean facilisis mauris nec lacus congue tempor. Vivamus facilisis, augue at imperdiet interdum, velit urna consequat nisi, sed tempus erat felis sed turpis. Suspendisse bibendum leo vel metus ultrices congue. In fringilla purus varius velit rutrum eget faucibus turpis blandit. Cras mauris metus, cursus et hendrerit id, rutrum at purus. Vestibulum accumsan tincidunt ante sed pretium. Phasellus nec mattis lacus.",
- "project": 1,
- "created_date": "2009-11-14 16:52:10",
- "active": true,
- "goal_date": "2009-11-24 16:52:08",
- "slug": "unittest-milestone",
+ "modified_date": "2009-11-14 16:52:10",
+ "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in diam est. In id tortor vitae nulla iaculis imperdiet. Quisque scelerisque ipsum suscipit nibh scelerisque gravida. In sit amet dolor lectus. Vestibulum sit amet consectetur urna. Nam sit amet ligula ac turpis consequat dapibus sed et leo. Donec eget quam massa. Sed ac porta ante. In mi metus, rhoncus quis viverra in, vulputate eu erat. Aenean facilisis mauris nec lacus congue tempor. Vivamus facilisis, augue at imperdiet interdum, velit urna consequat nisi, sed tempus erat felis sed turpis. Suspendisse bibendum leo vel metus ultrices congue. In fringilla purus varius velit rutrum eget faucibus turpis blandit. Cras mauris metus, cursus et hendrerit id, rutrum at purus. Vestibulum accumsan tincidunt ante sed pretium. Phasellus nec mattis lacus.",
+ "project": 1,
+ "created_date": "2009-11-14 16:52:10",
+ "active": true,
+ "goal_date": "2009-11-24 16:52:08",
+ "slug": "unittest-milestone",
"name": "Default Milestone"
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.component",
+ "pk": 1,
+ "model": "djtracker.component",
"fields": {
- "modified_date": "2009-11-14 16:52:19",
- "name": "Default Component",
- "project": 1,
- "created_date": "2009-11-14 16:52:19",
- "active": true,
+ "modified_date": "2009-11-14 16:52:19",
+ "name": "Default Component",
+ "project": 1,
+ "created_date": "2009-11-14 16:52:19",
+ "active": true,
"slug": "unittest-component"
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.version",
+ "pk": 1,
+ "model": "djtracker.version",
"fields": {
- "modified_date": "2009-11-14 16:52:41",
- "name": "Default Version",
- "project": 1,
- "created_date": "2009-11-14 16:52:41",
- "active": true,
+ "modified_date": "2009-11-14 16:52:41",
+ "name": "Default Version",
+ "project": 1,
+ "created_date": "2009-11-14 16:52:41",
+ "active": true,
"slug": "unittest-version"
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.status",
+ "pk": 1,
+ "model": "djtracker.status",
"fields": {
- "name": "Open",
+ "name": "Open",
"slug": "test-open"
}
- },
+ },
{
- "pk": 2,
- "model": "djtracker.status",
+ "pk": 2,
+ "model": "djtracker.status",
"fields": {
- "name": "Closed",
+ "name": "Closed",
"slug": "test-closed"
}
- },
+ },
{
- "pk": 3,
- "model": "djtracker.status",
+ "pk": 3,
+ "model": "djtracker.status",
"fields": {
- "name": "Deferred",
+ "name": "Deferred",
"slug": "test-deferred"
}
- },
+ },
{
- "pk": 4,
- "model": "djtracker.status",
+ "pk": 4,
+ "model": "djtracker.status",
"fields": {
- "name": "Denied",
+ "name": "Denied",
"slug": "test-denied"
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.priority",
+ "pk": 1,
+ "model": "djtracker.priority",
"fields": {
- "name": "High",
+ "name": "High",
"slug": "test-high"
}
- },
+ },
{
- "pk": 2,
- "model": "djtracker.priority",
+ "pk": 2,
+ "model": "djtracker.priority",
"fields": {
- "name": "Normal",
+ "name": "Normal",
"slug": "test-normal"
}
- },
+ },
{
- "pk": 3,
- "model": "djtracker.priority",
+ "pk": 3,
+ "model": "djtracker.priority",
"fields": {
- "name": "Low",
+ "name": "Low",
"slug": "test-low"
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.issuetype",
+ "pk": 1,
+ "model": "djtracker.issuetype",
"fields": {
- "name": "Bug",
+ "name": "Bug",
"slug": "bug"
}
- },
+ },
{
- "pk": 2,
- "model": "djtracker.issuetype",
+ "pk": 2,
+ "model": "djtracker.issuetype",
"fields": {
- "name": "Defect",
+ "name": "Defect",
"slug": "defect"
}
- },
+ },
{
- "pk": 3,
- "model": "djtracker.issuetype",
+ "pk": 3,
+ "model": "djtracker.issuetype",
"fields": {
- "name": "Feature Request",
+ "name": "Feature Request",
"slug": "feature-request"
}
- },
+ },
{
- "pk": 1,
- "model": "djtracker.issue",
+ "pk": 1,
+ "model": "djtracker.issue",
"fields": {
- "status": 1,
- "priority": 2,
- "name": "Test Issue",
- "created_date": "2009-11-14 16:52:57",
- "modified_date": "2009-11-14 16:52:57",
- "assigned_to": 3,
- "component": 1,
- "created_by": 2,
- "project": 1,
- "version": 1,
+ "status": 1,
+ "priority": 2,
+ "name": "Test Issue",
+ "created_date": "2009-11-14 16:52:57",
+ "modified_date": "2009-11-14 16:52:57",
+ "assigned_to": 3,
+ "component": 1,
+ "created_by": 2,
+ "project": 1,
+ "version": 1,
"watched_by": [
4
- ],
- "issue_type": 1,
- "milestone": 1,
- "active": true,
+ ],
+ "issue_type": 1,
+ "milestone": 1,
+ "active": true,
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in diam est. In id tortor vitae nulla iaculis imperdiet. Quisque scelerisque ipsum suscipit nibh scelerisque gravida. In sit amet dolor lectus. Vestibulum sit amet consectetur urna. Nam sit amet ligula ac turpis consequat dapibus sed et leo. Donec eget quam massa. Sed ac porta ante. In mi metus, rhoncus quis viverra in, vulputate eu erat. Aenean facilisis mauris nec lacus congue tempor. Vivamus facilisis, augue at imperdiet interdum, velit urna consequat nisi, sed tempus erat felis sed turpis. Suspendisse bibendum leo vel metus ultrices congue. In fringilla purus varius velit rutrum eget faucibus turpis blandit. Cras mauris metus, cursus et hendrerit id, rutrum at purus. Vestibulum accumsan tincidunt ante sed pretium. Phasellus nec mattis lacus."
}
}
View
6 djtracker/templates/djtracker/base.html
@@ -13,7 +13,7 @@
</head>
<body>
{% include "djtracker/usermenu.html" %}
-<div id="wrapper">
+<div id="wrapper">
<div id="banner">
<h1><a href="/">DjTracker Issue Tracker</a>{% if project %} &raquo; {{project}}{% endif %}</h1>
</div>
@@ -26,9 +26,9 @@
</div>
<div id="mainwrap">
{% block content %}
- {% endblock %}
+ {% endblock %}
</div>
- </td>
+ </td>
<td id="sidebar" class="col"><div id="sidebarwrap">
{% include "djtracker/sidebar.html" %}
{% block sidebar %}
View
4 djtracker/templates/djtracker/blocks/issue_proptab.html
@@ -1,12 +1,12 @@
{% load i18n %}
-<table class="proptab">
+<table class="proptab">
<tr><th>{% trans "Status" %}</th><td>{{ issue.status }}</td></tr>
<tr><th>{% trans "Type" %}</th><td>{{ issue.issue_type }}</td></tr>
<tr><th>{% trans "Priority" %}</th><td>{{ issue.priority }}</td></tr>
{% if issue.component %}
<tr><th>{% trans "Component" %}</th><td><a href="{{ issue.component.get_absolute_url }}">{{ issue.component }}</a></td></tr>
{% endif %}
- {% if issue.version %}
+ {% if issue.version %}
<tr><th>{% trans "Version" %}</th><td><a href="{{ issue.version.get_absolute_url }}">{{ issue.version }}</a></td></tr>
{% endif %}
{% if issue.milestone %}
View
48 djtracker/templates/djtracker/djtracker.css
@@ -19,7 +19,7 @@ a:hover {
#usermenu {
text-align:right;
border-bottom: 1px solid #C3D9FF;
- padding: 5px 10px;
+ padding: 5px 10px;
}
/* BANNER */
@@ -32,7 +32,7 @@ a:hover {
#banner h1 a, #banner h1 a:visited {
color: black;
- text-decoration: none;
+ text-decoration: none;
}
#banner ul {
@@ -48,7 +48,7 @@ div#mainNav {
#mainNav ul {
margin: 0;
- padding: 0;
+ padding: 0;
border-bottom: 1px solid #E5ECF9;
width: 100%;
font-size: 14px;
@@ -63,7 +63,7 @@ div#mainNav {
color: black;
text-decoration: none;
padding: 2px 10px;
- display: block;
+ display: block;
}
#mainNav li a:hover {
@@ -94,7 +94,7 @@ td.col {
#main h1 {
color: #663900;
padding-top: 15px;
- margin-bottom: 10px;
+ margin-bottom: 10px;
}
#main h2 {
@@ -113,7 +113,7 @@ td.col {
}
#main h2, #main h3, #main h4 {
- margin-bottom: 5px;
+ margin-bottom: 5px;
border-bottom: 1px solid #E5ECF9;
}
@@ -169,11 +169,11 @@ td.col {
}
.issuelist {
- width: 100%;
+ width: 100%;
}
-.issuelist th {
- background-color:#E5ECF9;
+.issuelist th {
+ background-color:#E5ECF9;
}
.issuelist td:hover {
@@ -218,7 +218,7 @@ ul.errorlist, #mainwrap ul.errorlist {
clear: both;
padding: 5px;
border-top: 1px solid #E5ECF9;
- border-bottom: 1px solid #E5ECF9;
+ border-bottom: 1px solid #E5ECF9;
color: #888888;
text-align: center;
font-size: 80%;
@@ -229,27 +229,27 @@ ul.errorlist, #mainwrap ul.errorlist {
float: right;
width: 200px;
margin-bottom: 2px;
- margin-left: 10px;
+ margin-left: 10px;
position: relative;
-}
+}
#main .figure p {
position: absolute;
- left: 10px;
- bottom: 10px;
- width: 168px;
+ left: 10px;
+ bottom: 10px;
+ width: 168px;
background-color: #FFF;
border: 1px dashed #666666;
- font-size: 1.1em;
- font-weight: bold;
- text-align: center;
- padding: 5px;
- margin: 0;
-}
+ font-size: 1.1em;
+ font-weight: bold;
+ text-align: center;
+ padding: 5px;
+ margin: 0;
+}
#main .figure img {
display: block;
-}
+}
/* prop tables */
.proptab {
@@ -351,7 +351,7 @@ ul.dropdown li:hover > ul {
}
-/**
+/**
* Default CSS Drop-Down Menu Theme
*
* @file default.css
@@ -389,7 +389,7 @@ ul.dropdown li {
}
ul.dropdown li.hover,
- ul.dropdown li:hover {
+ ul.dropdown li:hover {
color: #FFFFFF;
}
View
4 djtracker/templates/djtracker/index.html
@@ -9,7 +9,7 @@
<a href="{% url project_submit_issue project.slug %}">{% trans "Submit Issue" %}</a> |
<a href="{% url feeds 'project' %}{{ project.id }}">RSS</a></small>
<a href="{{ project.get_absolute_url }}">{{ project }}</a></h3>
- <p> {{ project.description }}</p>
+ <p> {{ project.description }}</p>
{% endfor %}
{% else %}
{% if request.user.is_authenticated %}
@@ -17,6 +17,6 @@
{% else %}
<h3>{% trans "Authentication Required" %}</h3>
<p>{% trans "Please" %}<a href='{% url project_login %}'>{% trans " log in</a> to use this bugtracker." %}</p>
- {% endif %}
+ {% endif %}
{% endif %}
{% endblock %}
View
14 djtracker/templates/djtracker/issue_detail.html
@@ -2,12 +2,12 @@
{% load comments i18n markup %}
{% block title %} - {{ issue }} {% endblock %}
{% block content %}
- <table style="width: 100%"><tr><td class="col" style="width: 100%; padding-right: 10px;">
- <h3>{% if request.user.is_authenticated %}<small class="inlineaction">{% if can_edit %}<a href="{% url project_modify_issue project.slug issue.id %}">{% trans "edit" %}</a> |{% endif %} {% if is_watching %}<a href="{% url project_issue project.slug issue.id %}?watch=no">{% trans "unwatch" %}</a>{% else %}<a href="{% url project_issue project.slug issue.id %}?watch=yes">{% trans "watch" %}</a>{% endif %}{% if can_comment %} | <a href="{% url project_submit_issue project.slug %}">{% trans "submit issue" %}</a>{% endif %}</small>{% endif %}<a href="{{ issue.project.get_absolute_url }}">{{ issue.project }}</a> : {{ issue }}</h3>
+ <table style="width: 100%"><tr><td class="col" style="width: 100%; padding-right: 10px;">
+ <h3>{% if request.user.is_authenticated %}<small class="inlineaction">{% if can_edit %}<a href="{% url project_modify_issue project.slug issue.id %}">{% trans "edit" %}</a> |{% endif %} {% if is_watching %}<a href="{% url project_issue project.slug issue.id %}?watch=no">{% trans "unwatch" %}</a>{% else %}<a href="{% url project_issue project.slug issue.id %}?watch=yes">{% trans "watch" %}</a>{% endif %}{% if can_comment %} | <a href="{% url project_submit_issue project.slug %}">{% trans "submit issue" %}</a>{% endif %}</small>{% endif %}<a href="{{ issue.project.get_absolute_url }}">{{ issue.project }}</a> : {{ issue }}</h3>
<div class="description">{{ issue.description|restructuredtext }}</div>
<h4>{% if can_comment %}<small class="inlineaction"><a href="{% url project_file_upload project.slug issue.id %}">{% trans "Add an Attachment" %}</a></small>{% endif %}{% trans "Attachments" %}</h4>
{% if issue.fileupload_set.all %}
- <ul>
+ <ul>
{% for file in issue.fileupload_set.all %}
<li><a href="{{ file.get_absolute_url }}">{{ file }}</a></li>
{% endfor %}
@@ -22,11 +22,11 @@
<a name="comment{{comment.pk}}"/>(<a class="headerlink" title="permalink to this comment" href="#comment{{comment.pk}}">#</a>){% if comment.user_name %}
<em style="color: #888888;">{% if comment.user %}<a href="{{ comment.user.userprofile.get_absolute_url }}">{% endif %}{{ comment.user_name }}</a>{% else %}anon{% endif %}, {{ comment.submit_date|date:'r' }}:</em><br/>{{ comment.comment|restructuredtext }}<br/><br/>
{% endfor %}
- {% endif %}
+ {% endif %}
{% if can_comment %}
<h4>{% trans "New Comment" %}</h4>
{% if request.user.is_authenticated %}
- {% get_comment_form for issue as form %}
+ {% get_comment_form for issue as form %}
<form action="{% comment_form_target %}" method="post">
{{ form.content_type }}
{{ form.object_pk }}
@@ -47,12 +47,12 @@
<span style="display: none;">{{ form.honeypot }}</span>
{{ form.comment }}</td></tr>
<tr><td><input type="submit" name="post" class="submit-post" value="{% trans "Post" %}"/></td></tr></table>
- </form>
+ </form>
{% else %}
{% render_comment_form for issue %}
{% endif %}
{% endif %}
</td><td class="col">
{% include 'djtracker/blocks/issue_proptab.html' %}
- </td></tr></table>
+ </td></tr></table>
{% endblock %}
View
10 djtracker/templates/djtracker/issue_filter.html
@@ -43,7 +43,7 @@
{% endif %}
<option value="{{ x.slug }}">{{ x }}</option>
{% endfor %}
- </select>
+ </select>
{% trans "Priority" %}: <select name="priority">
{% for x in priority_choices %}
{% if forloop.first %}
@@ -54,16 +54,16 @@
</select>
</p>
{% if request.user.is_authenticated %}
- <p>{% trans "Save this filter for future use" %}: <input type="checkbox" name="save" value="{% trans "save" %}" />
+ <p>{% trans "Save this filter for future use" %}: <input type="checkbox" name="save" value="{% trans "save" %}" />
{% trans "Saved filter name" %}: <input type="text" name="savename" /></p>
- {% endif %}
+ {% endif %}
<p><input type="submit" value="Submit" /></p>
</form>
<h4> {{ project }}: {% trans "Issues" %} <small class="inlineaction">{% if can_comment %}<a href="{% url project_submit_issue project.slug %}">{% trans "Submit Issue" %}</a>{% endif %}</small></h4>
- {% with issues as issue_list %}
+ {% with issues as issue_list %}
{% include 'djtracker/blocks/issue_list.html' %}
{% endwith %}
-
+
{% if can_comment %}
<a href="{% url project_submit_issue project.slug %}">{% trans "Submit Issue" %}</a>
{% endif %}
View
4 djtracker/templates/djtracker/modify_issue.html
@@ -3,8 +3,8 @@
{% block title %} - {% blocktrans %}Modify {{ issue }}{% endblocktrans %}{% endblock %}
{% block content %}
- <form action="{% url project_modify_issue project.slug issue.id %}" method="post">
- <table>{{ form.as_table }}</table>
+ <form action="{% url project_modify_issue project.slug issue.id %}" method="post">
+ <table>{{ form.as_table }}</table>
<input type="submit" value="{% trans "Submit Issue" %}" />
</form>
{% endblock %}
View
6 djtracker/templates/djtracker/profile/login.html
@@ -14,10 +14,10 @@
<td>{{ form.password.label_tag }}</td>
<td>{{ form.password }}</td>
</tr>
- </table>
+ </table>
<input type="submit" value="{% trans "Login" %}" />
- <input type="hidden" name="next" value="{% url project_user_dashboard %}" />
+ <input type="hidden" name="next" value="{% url project_user_dashboard %}" />
</form>
<p><small>{% trans "Forgot your password? Click " %}<a href="{% url django.contrib.auth.views.password_reset %}">{% trans "here" %}</a> {% trans "to get a fresh one." %}</small></p>
{% endblock %}
-
+
View
8 djtracker/templates/djtracker/project_index.html
@@ -10,20 +10,20 @@
{% block content %}
{% if project %}
<h3>{% if request.user.is_superuser %}<small class="inlineaction"><a href="/admin/djtracker/project/{{project.pk}}">{% trans "Edit Project" %}</a> | {% endif %}{% if is_watching %}<a href="{{ project.get_absolute_url }}?watch=no">{% trans "unwatch" %}</a>{% else %}<a href="{{ project.get_absolute_url }}?watch=yes">{% trans "watch" %}</a>{% endif %} | <a href="{% url feeds 'project' %}{{ project.id }}">RSS</a></small>{{ project }}</h3>
- <p> {{ project.description }}</p>
+ <p> {{ project.description }}</p>
<h4><small class="inlineaction"><a href="{% url project_all_issues project.slug %}">{% trans "View all Issues" %}</a>{% if can_comment %} | <a href="{% url project_submit_issue project.slug %}">{% trans "Submit Issue" %}</a>{% endif %}</small>{{ project }}: {% trans "Open Issues" %}</h4>
-
+
{% with open_issues as issue_list %}
{% include 'djtracker/blocks/issue_list.html' %}
{% endwith %}
-
+
<table style="width: 100%;"><tr><td class="col" style="width: 50%; padding-right: 20px;">
<h4>{% trans "Browse Issues by" %}</h4>
<table >
<tr><td>{% trans "Status" %}:</td><td>{% for status in statuses %}<a href="{% url project_status project.slug status.slug %}">{{ status }}</a>{% if not forloop.last %} | {% endif %}{% endfor %}</td></tr>
<tr><td>{% trans "Issue Type" %}:</td><td>{% for type in types %}<a href="{% url project_issue_type project.slug type.slug %}">{{ type }}</a>{% if not forloop.last %} | {% endif %}{% endfor %}</td></tr>
- <tr><td>{% trans "Priority" %}:</td><td>{% for priority in priorities %}<a href="{% url project_priority project.slug priority.slug %}">{{ priority }}</a>{% if not forloop.last %} | {% endif %}{% endfor %}</td></tr>
+ <tr><td>{% trans "Priority" %}:</td><td>{% for priority in priorities %}<a href="{% url project_priority project.slug priority.slug %}">{{ priority }}</a>{% if not forloop.last %} | {% endif %}{% endfor %}</td></tr>
</table>
</td><td class="col" style="width: 50%;padding-right: 20px;">
<h4>{% trans "Project Information" %}</h4>
View
88 djtracker/templates/djtracker/sorttable.js
@@ -3,13 +3,13 @@
version 2
7th April 2007
Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/
-
+
Thanks to many, many people for contributions and suggestions.
Licenced as X11: http://www.kryogenix.org/code/browser/licence.html
This basically means: do what you want with it.
*/
-
+
var stIsIE = /*@cc_on!@*/false;
sorttable = {
@@ -20,19 +20,19 @@ sorttable = {
arguments.callee.done = true;
// kill the timer
if (_timer) clearInterval(_timer);
-
+
if (!document.createElement || !document.getElementsByTagName) return;
-
+
sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;
-
+
forEach(document.getElementsByTagName('table'), function(table) {
if (table.className.search(/\bsortable\b/) != -1) {
sorttable.makeSortable(table);
}
});
-
+
},
-
+
makeSortable: function(table) {
if (table.getElementsByTagName('thead').length == 0) {
// table doesn't have a tHead. Since it should have, create one and
@@ -43,9 +43,9 @@ sorttable = {
}
// Safari doesn't support table.tHead, sigh
if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0];
-
+
if (table.tHead.rows.length != 1) return; // can't cope with two header rows
-
+
// Sorttable v1 put rows with a class of "sortbottom" at the bottom (as
// "total" rows, for example). This is B&R, since what you're supposed
// to do is put them in a tfoot. So, if there are sortbottom rows,
@@ -67,7 +67,7 @@ sorttable = {
}
delete sortbottomrows;
}
-
+
// work through each column and calculate its type
headrow = table.tHead.rows[0].cells;
for (var i=0; i<headrow.length; i++) {
@@ -86,7 +86,7 @@ sorttable = {
dean_addEvent(headrow[i],"click", function(e) {
if (this.className.search(/\bsorttable_sorted\b/) != -1) {
- // if we're already sorted by this column, just
+ // if we're already sorted by this column, just
// reverse the table, which is quicker
sorttable.reverse(this.sorttable_tbody);
this.className = this.className.replace('sorttable_sorted',
@@ -99,7 +99,7 @@ sorttable = {
return;
}
if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) {
- // if we're already sorted by this column in reverse, just
+ // if we're already sorted by this column in reverse, just
// re-reverse the table, which is quicker
sorttable.reverse(this.sorttable_tbody);
this.className = this.className.replace('sorttable_sorted_reverse',
@@ -111,7 +111,7 @@ sorttable = {
this.appendChild(sortfwdind);
return;
}
-
+
// remove sorttable_sorted classes
theadrow = this.parentNode;
forEach(theadrow.childNodes, function(cell) {
@@ -124,7 +124,7 @@ sorttable = {
if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); }
sortrevind = document.getElementById('sorttable_sortrevind');
if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); }
-
+
this.className += ' sorttable_sorted';
sortfwdind = document.createElement('span');
sortfwdind.id = "sorttable_sortfwdind";
@@ -145,18 +145,18 @@ sorttable = {
//sorttable.shaker_sort(row_array, this.sorttable_sortfunction);
/* and comment out this one */
row_array.sort(this.sorttable_sortfunction);
-
+
tb = this.sorttable_tbody;
for (var j=0; j<row_array.length; j++) {
tb.appendChild(row_array[j][1]);
}
-
+
delete row_array;
});
}
}
},
-
+
guessType: function(table, column) {
// guess the type of a column based on its first non-blank row
sortfn = sorttable.sort_alpha;
@@ -166,7 +166,7 @@ sorttable = {
if (text.match(/^-?[£$¤]?[\d,.]+%?$/)) {
return sorttable.sort_numeric;
}
- // check for a date: dd/mm/yyyy or dd/mm/yy
+ // check for a date: dd/mm/yyyy or dd/mm/yy
// can have / or . or - as separator
// can be mm/dd as well
possdate = text.match(sorttable.DATE_RE)
@@ -189,17 +189,17 @@ sorttable = {
}
return sortfn;
},
-
+
getInnerText: function(node) {
// gets the text we want to use for sorting for a cell.
// strips leading and trailing whitespace.
// this is *not* a generic getInnerText function; it's special to sorttable.
// for example, you can override the cell text with a customkey attribute.
// it also gets .value for <input> fields.
-
+
hasInputs = (typeof node.getElementsByTagName == 'function') &&
node.getElementsByTagName('input').length;
-
+
if (node.getAttribute("sorttable_customkey") != null) {
return node.getAttribute("sorttable_customkey");
}
@@ -234,7 +234,7 @@ sorttable = {
}
}
},
-
+
reverse: function(tbody) {
// reverse the rows in a tbody
newrows = [];
@@ -246,14 +246,14 @@ sorttable = {
}
delete newrows;
},
-
+
/* sort functions
each sort function takes two parameters, a and b
you are comparing a[0] and b[0] */
sort_numeric: function(a,b) {
aa = parseFloat(a[0].replace(/[^0-9.-]/g,''));
if (isNaN(aa)) aa = 0;
- bb = parseFloat(b[0].replace(/[^0-9.-]/g,''));
+ bb = parseFloat(b[0].replace(/[^0-9.-]/g,''));
if (isNaN(bb)) bb = 0;
return aa-bb;
},
@@ -292,7 +292,7 @@ sorttable = {
if (dt1<dt2) return -1;
return 1;
},
-
+
shaker_sort: function(list, comp_func) {
// A stable sort function to allow multi-level sorting of data
// see: http://en.wikipedia.org/wiki/Cocktail_sort
@@ -322,38 +322,38 @@ sorttable = {
b++;
} // while(swap)
- }
+ }
}
hidediv = {
init: function(){
// quit if this function has already been called
- if (arguments.callee.done)
+ if (arguments.callee.done)
return;
// flag this function so we don't do the same thing twice
arguments.callee.done = true;
// kill the timer
- if (_timer)
+ if (_timer)
clearInterval(_timer);
-
- if (!document.createElement || !document.getElementsByTagName)
+
+ if (!document.createElement || !document.getElementsByTagName)
return;
-
+
forEach(document.getElementsByTagName('div'), function(div){
if (div.className.search(/\bhideable\b/) != -1) {
hidediv.makeHideDiv(div);
}
});
-
+
},
-
+
setAttribute: function(elem, attr, value) {
var myAttr = document.createAttribute(attr);
myAttr.nodeValue = value;
elem.setAttributeNode(myAttr);
return elem;
},
-
+
makeLink: function(action, target, text) {
var myLink = document.createElement('a');
this.setAttribute(myLink, 'href', target);
@@ -362,30 +362,30 @@ hidediv = {
dean_addEvent(myLink, 'click', this.onClickLink);
return myLink;
},
-
+
makeHideDiv: function(div) {
var h = div.getElementsByTagName('h4')[0];
var h_content = h.firstChild;
- var link = this.makeLink('', '#', 'hide');
+ var link = this.makeLink('', '#', 'hide');
var small = document.createElement("small");
this.setAttribute(small, 'class', 'inlineaction');
- small.appendChild(link);
+ small.appendChild(link);
h.removeChild(h.firstChild);
h.appendChild(small);
h.appendChild(h_content);
if (div.className.search(/\bhidden\b/) != -1) {
this.toggleElem(link);
};
-
+
},
-
+
onClickLink: function(e) {
- hidediv.toggleElem(this);
+ hidediv.toggleElem(this);
},
-
+
toggleElem: function(link) {
var elem_to_toggle = link.parentNode.parentNode.parentNode.getElementsByTagName('table')[0];
- if (link.firstChild.textContent == 'hide') {
+ if (link.firstChild.textContent == 'hide') {
link.firstChild.textContent = 'show';
hidediv.setAttribute(elem_to_toggle, 'style', 'display: none;');
} else {
@@ -393,8 +393,8 @@ hidediv = {
elem_to_toggle.removeAttribute('style');
}
}
-
-
+
+
}
View
2  djtracker/templates/djtracker/submit_issue.html
@@ -1,7 +1,7 @@
{% extends "djtracker/base.html" %}
{% load i18n %}
{% block content %}
- <form action="{% url project_submit_issue project.slug %}" method="post">
+ <form action="{% url project_submit_issue project.slug %}" method="post">
<table>{{ form.as_table }}</table>
<input type="submit" value="{% trans "Submit Issue" %}" />
</form>
View
2  djtracker/templates/djtracker/topnav.html
@@ -8,7 +8,7 @@
{% endif %}
{% if bar_project_list %}
<li class="dir"><a href="{% url index %}">{% trans "Projects" %}</a>
- <ul>
+ <ul>
{% for bar_project in bar_project_list %}
<li><a href="{{ bar_project.get_absolute_url }}">{{ bar_project }}</a></li>
{% endfor %}
View
2  djtracker/templates/djtracker/upload_form.html
@@ -1,7 +1,7 @@
{% extends "djtracker/base.html" %}
{% load i18n %}
{% block content %}
- <form enctype="multipart/form-data" action="{% url project_file_upload project.slug issue.id %}" method="post">
+ <form enctype="multipart/form-data" action="{% url project_file_upload project.slug issue.id %}" method="post">
{% if form.errors %}
{{ form.errors }}
{% endif %}
View
10 djtracker/templates/djtracker/user_dashboard.html
@@ -6,7 +6,7 @@
</script>
{% endblock %}
-
+
{% block content %}
<p><a href="{% url feeds rss_feed %}">Subscribe to Your RSS Feed</a></p>
@@ -23,11 +23,11 @@
{# if profile.issuefilter_set.all #}
<h4>{% trans "Saved Filters" %}</h4>
{% for issue_filter in profile.issuefilter_set.all %}
- <span><small class="inlineaction">(<a href="{% url project_filter_delete issue_filter.id %}">{% trans "delete" %}</a>)</small><a href="{{ issue_filter.get_filtered_url }}">{{ issue_filter.name }}</a></span>
+ <span><small class="inlineaction">(<a href="{% url project_filter_delete issue_filter.id %}">{% trans "delete" %}</a>)</small><a href="{{ issue_filter.get_filtered_url }}">{{ issue_filter.name }}</a></span>
{% if not forloop.last %} | {% endif %}
{% endfor %}
{# endif #}
-
+
<div class="hideable hidden">
<h4>{% trans "Recently Updated Issues" %}</h4>
@@ -35,7 +35,7 @@
{% include 'djtracker/blocks/issue_list.html' %}
{% endwith %}
</div>
-
+
{% if created_issues %}
<div class="hideable hidden">
<h4>{% trans "Issues created by me" %}</h4>
@@ -44,7 +44,7 @@
{% endwith %}
{% endif %}
</div>
-
+
{% if watched_issues %}
<div class="hideable hidden">
<h4>{% trans "Issues I am watching" %}</h4>
View
10 djtracker/templates/djtracker/user_profile.html
@@ -13,19 +13,19 @@
<p>{% trans "IM Information" %}: {{ profile.instant_messanger }}</p>
{% if request.user.is_authenticated %}
<p>{% trans "Email" %}: <a href="mailto:{{ user.email }}">{{ user.email }}</a>
- {% endif %}
- {% with 1 as issues_with_project %}
+ {% endif %}
+ {% with 1 as issues_with_project %}
{% if assigned %}
<div class="hideable">
- <h4>{% trans "Issues assigned to me" %}</h4>
+ <h4>{% trans "Issues assigned to me" %}</h4>
{% with assigned as issue_list %}
{% include 'djtracker/blocks/issue_list.html' %}
{% endwith %}
</div>
- {% endif %}
+ {% endif %}
{% if created %}
<div class="hideable">
- <h4>{% trans "Issues created by me" %}</h4>
+ <h4>{% trans "Issues created by me" %}</h4>
{% with created as issue_list %}
{% include 'djtracker/blocks/issue_list.html' %}
{% endwith %}
View
2  djtracker/templates/djtracker/usermenu.html
@@ -5,6 +5,6 @@
{% trans "Logged in as" %}: {{request.user.username}} {% if request.user.is_superuser %}| <a href="/admin">{% trans "Admin" %}</a> {% endif %}| <a href="{% url project_user request.user.username %}">{% trans "Profile" %}</a> | <a href="{% url project_logout %}">{% trans "Log Out" %}</a>
{% else %}
<a href="{% url project_login %}">{% trans "Log In" %}</a> | <a href="{% url registration_register %}">{% trans "Register" %}</a>
- {% endif %}
+ {% endif %}
</span>
</div>
View
8 docs/source/email.rst
@@ -1,7 +1,7 @@
Email Handling
*****************************
-DjTracker has the ability to parse email addresses for new comments and new issues. Currently this only supports IMAP, but POP3 support is planned for the future.
+DjTracker has the ability to parse email addresses for new comments and new issues. Currently this only supports IMAP, but POP3 support is planned for the future.
Email Settings
=============================
@@ -20,12 +20,12 @@ Expected Email Subjects
DjTracker needs email subjects to be formed in a certain fashion in order to properly create issues on your behalf. If you're creating a new issue via email, the following subject is expected:
DjTracker: [project-slug]: Your Title
-
+
If you're responding on an issue, you'd use the following:
DjTracker: [project-slug]: Issue #5
-
-That'll add the comment onto the end of the current issue with an ID of 5.
+
+That'll add the comment onto the end of the current issue with an ID of 5.
Email Cron Job
=============================
View
4 docs/source/usage.rst
@@ -1,7 +1,7 @@
Using DjTracker
*****************************
-The most important part of an issue tracker is being able to effeciently use it.
+The most important part of an issue tracker is being able to effeciently use it.
Users and Profiles
=============================
@@ -15,7 +15,7 @@ After you've created a profile you can have issues assigned to you, 'watch' issu
Getting Organized
=============================
-Assuming you have a user, there's a variety of things you can do to get yourself organized. First off, there's the rudimentary search in the sidebar. This'll allow you to search a project, or all projects, for issues containing whatever keyword you type in.
+Assuming you have a user, there's a variety of things you can do to get yourself organized. First off, there's the rudimentary search in the sidebar. This'll allow you to search a project, or all projects, for issues containing whatever keyword you type in.
Second, there's issue filtering. When you go to a project page, you can click to "View All Issues". At that screen you have a slew of filtering options. These allow you to pinpoint an exact set of criteria for that project of issues that you'd like to find. You may also save these filters for future use. They will then appear on your dashboard for future use (and removal once you're done with them).
Something went wrong with that request. Please try again.