Commit Graph

305 Commits (fcaa0f7f3bf760da234ea61c3a930b2bf1e1736c)

Author SHA1 Message Date
Jesús Espino 494f18300a Fix notification of objects without permissions 2014-11-27 09:35:20 +01:00
David Barragán Merino b1fe9b335e Remove unneeded code 2014-11-26 18:51:28 +01:00
Alejandro Alonso 00c8d33d0d If two pending memberships exist in the same projecto I can't delete them 2014-11-26 11:36:16 +01:00
David Barragán Merino 30ca702323 Fix wikilink extension: use absolute urls 2014-11-26 09:35:28 +01:00
Jesús Espino 72730fdb73 Fixed failing tests 2014-11-25 18:51:58 +01:00
Alejandro Alonso c285857844 Refactoring owner permissions, now only is_owner memberships are considered as owner users 2014-11-25 18:51:58 +01:00
Alejandro Alonso c9fc2268d0 Adding leave project API 2014-11-25 18:51:57 +01:00
Alejandro Alonso e7b963a674 Adding member stats to the API 2014-11-25 18:51:57 +01:00
David Barragán Merino fa1e0c6bf6 Fix some tests 2014-11-25 18:43:40 +01:00
Alejandro Alonso e2f0262918 Fixing validation of email and role in memberships 2014-11-19 22:53:37 +01:00
Alejandro Alonso d246808b54 Disabling membership creation if the role isn't valid for the project 2014-11-19 14:28:00 +01:00
Alejandro Alonso 3d96ce81bb Fixing update_roles when project point ? exists but is not null 2014-11-19 14:05:49 +01:00
Alejandro Alonso 4996ae3a24 Fixing error 500 when using duplicated names for project points 2014-11-19 14:00:37 +01:00
David Barragán Merino 99244b8393 Re-do github login 2014-11-18 15:35:42 +01:00
Jesús Espino 80445d7afd Merge pull request #156 from taigaio/bug/1552/us-points-undefined-when-tasks-points-are-undefined
User story points are undefined if the task points are undefined
2014-11-18 13:48:37 +01:00
Alejandro ac1b43bdb5 Merge pull request #157 from taigaio/external-references-change
Changed how external reference is obtained
2014-11-18 13:47:59 +01:00
Jesús Espino 7b498924e7 Add tests to bug #1553 resolution 2014-11-18 13:32:32 +01:00
Jesús Espino 18e38792b5 Changed how external reference is obtained 2014-11-18 13:03:38 +01:00
Alejandro Alonso f49d143c22 Fixing neighbors hell 2014-11-15 22:39:42 +01:00
David Barragán Merino 36519e94c9 Fix some tests 2014-11-11 19:33:22 +01:00
Jesús Espino 1822198549 Fixed test on Github link 2014-11-11 19:18:18 +01:00
Jesús Espino cc4f64c115 Fixed travis errors 2014-11-11 19:18:18 +01:00
Jesús Espino aa3a8c6be8 Adding regular expresion to convert github references to links to github 2014-11-11 19:18:18 +01:00
Alejandro Alonso 571bf5e0cc Fixing slug generation for issue status, task status and user story status 2014-11-11 19:18:18 +01:00
Alejandro Alonso 5718627daa Using 400 errors insted of 401 2014-11-11 19:18:18 +01:00
Alejandro Alonso 2e78d51eda Fixing bug when changing us's to a non existing status 2014-11-11 19:18:18 +01:00
Alejandro Alonso 2d90a5dac9 Making commit message actions case insensitive 2014-11-11 19:18:18 +01:00
Alejandro Alonso 88d11aba85 Adding API support for project modules configurations 2014-11-11 19:18:18 +01:00
Alejandro Alonso 0fd7142802 US#90 Github webhooks integration 2014-11-11 19:18:18 +01:00
David Barragán Merino 61141c321e Fix connectors_github tests 2014-11-06 19:36:34 +01:00
Jesús Espino c83ffa8529 Fix issue #1500: Now generated html is escaped 2014-10-31 13:10:34 +01:00
Alejandro 5ac3bf15ab Merge pull request #143 from taigaio/refactor/remove-projects-tags-call
Remove api/v1/projects/XX/tags call (Not necessary)
2014-10-30 18:09:48 +01:00
Alejandro Alonso 126e02ce39 Fixing error when importing issues, the finished date was set to none by signals. Added some tests 2014-10-29 13:27:49 +01:00
Alejandro Alonso 08b8d478e1 Making notifications work synchronously by default 2014-10-28 18:26:30 +01:00
Alejandro Alonso 38fc63425a Fixing tests 2014-10-28 18:08:50 +01:00
David Barragán Merino 77d03c000f Remove api/v1/projects/XX/tags call (Not necessary) 2014-10-27 18:11:17 +01:00
Alejandro Alonso a1d6875d88 Fixing task tests 2014-10-24 08:47:58 +02:00
Andrey Antukh bc95282cfd Add proper validation of watchers for issues, tasks and userstories serializers. 2014-10-23 20:45:11 +02:00
Alejandro Alonso 8593b82f8b Adding support for extra text in invitation 2014-10-22 12:53:22 +02:00
Jesús Espino bd519b3d64 Merge branch 'master' into stable
Conflicts:
	tests/integration/test_userstories.py
2014-10-20 13:43:44 +02:00
Alejandro Alonso a5c922be9e Fixing bug when selecting neighbors in an empty queryset of related elements 2014-10-20 12:33:24 +02:00
Alejandro Alonso 2cc65a17cb Fixing error when recovering the user token and the key doesn't exist 2014-10-20 09:40:51 +02:00
Alejandro Alonso 991e5a7f42 Fixing error 500 when importing two milestones with the same name 2014-10-20 00:50:39 +02:00
Alejandro Alonso 6fc97cf99d When creating a task with milestone and user_story associated checking the user_story is also associated to the milestone 2014-10-19 20:00:17 +02:00
Alejandro Alonso e71a9a1202 Fixing searchs, using an and for the words we search instead of an or 2014-10-16 13:14:43 +02:00
Andrey Antukh ae5ca20a76 [backport] Fix incorrect handling of userstory rolepoints update process.
The current implementation allows duplicate points values in one project,
and because of it, unexpected MultipleObjectsReturned can be raised with
previous update_role_points code. The new one fixes this.

Additionally, in some circumstances, the project does not have any points
with None as value, that causes also unexpected errors. The new
implementation fixes it creating a points instance with None as value
if it not exists.

Conflicts:
	tests/integration/test_userstories.py
2014-10-16 09:12:45 +02:00
Andrey Antukh eb8638fdda [backport] Fix wrong handling role points update.
Additionally it moves the logic from serializer to resource.
2014-10-15 23:54:28 +02:00
Andrey Antukh bcd87114cf [backport] Fix wrong handling moveTo parameter on role destroy. 2014-10-15 23:54:12 +02:00
Andrey Antukh 4056d5214b Fix incorrect handling of userstory rolepoints update process.
The current implementation allows duplicate points values in one project,
and because of it, unexpected MultipleObjectsReturned can be raised with
previous update_role_points code. The new one fixes this.

Additionally, in some circumstances, the project does not have any points
with None as value, that causes also unexpected errors. The new
implementation fixes it creating a points instance with None as value
if it not exists.
2014-10-15 23:45:10 +02:00
Andrey Antukh 84a7c47210 Rename project tests. 2014-10-15 23:27:54 +02:00
Andrey Antukh 5617de891e Move some userstories test to right location. 2014-10-15 23:27:54 +02:00
Andrey Antukh a3cb48cf8e Fix wrong handling role points update.
Additionally it moves the logic from serializer to resource.
2014-10-15 23:27:54 +02:00
Andrey Antukh 43fd17aaaa Fix wrong handling moveTo parameter on role destroy. 2014-10-15 23:27:54 +02:00
Andrey Antukh 21f1835567 Fix milestone test name. 2014-10-15 19:52:31 +02:00
Andrey Antukh 786599239c Minor tests cleaning. 2014-10-15 19:52:31 +02:00
Andrey Antukh 0f207da0dc Put more clear names to user test functions. 2014-10-15 17:30:22 +02:00
Andrey Antukh 9b6c58bad9 Normalize some tests file names. 2014-10-15 17:29:58 +02:00
Alejandro Alonso 4b859bbde9 Removing cancel_token and using django.core.signing stuff 2014-10-10 09:29:51 +02:00
Alejandro Alonso 227add34f0 Sending email on the registry of user 2014-10-08 13:08:54 +02:00
Alejandro Alonso 2bfc09b2ee Adding cancel account by token API 2014-10-08 10:33:08 +02:00
David Barragán Merino bcb2948417 US #954: Task #1115: Create feedback endpoint 2014-10-04 17:14:04 +02:00
Alejandro Alonso b82f6a4743 Making the project name not mandatory and using the owner username for the slug generation 2014-10-03 22:27:10 +02:00
Andrey Antukh ad16976434 Rename and improve test names on us autoclossing tests module. 2014-10-03 20:13:02 +02:00
Andrey Antukh 101cad3358 Fix unexpected exception when delete task with deleted milestone. 2014-10-03 20:13:02 +02:00
Andrey Antukh b1cb7fdf66 Fix wrong handling patch request with user_stories list on milestone resource. (fix #1163) 2014-10-02 04:14:59 +02:00
Andrey Antukh 56e98bba11 Fix wrong handing integrity error on register or accept invitation. 2014-10-02 03:32:38 +02:00
Jesús Espino 7c5b85ea5c Fix small test fails introduced in the commit 27f12f7 2014-10-02 01:44:48 +02:00
David Barragán Merino 6725a43a4f Merge pull request #76 from taigaio/events-improvements
Taiga-events integration (realtime taiga)
2014-09-29 18:06:38 +02:00
Andrey Antukh 43e16c2c13 Taiga-events integration (realtime taiga) 2014-09-29 17:49:47 +02:00
David Barragán Merino fbff7a8b88 Add Copyright+license text 2014-09-29 11:57:57 +02:00
David Barragán Merino b01396028d Refactor user profile form and fix #1098 2014-09-25 20:05:34 +02:00
David Barragán Merino 7a88df1e08 Change django.db.models.loading.get_model (deprecated in django 1.7) to django.apps.apps.get_model 2014-09-25 11:32:50 +02:00
Andrey Antukh 8df1b2a799 Regression fix: history entry should not be marked as hidden ...
... when change comes with a comment.
2014-09-18 14:42:13 +02:00
Andrey Antukh 97dbffa680 Fix/Improve tests for new changes introduced in bulk order update process. 2014-09-17 16:55:43 +02:00
Andrey Antukh 23f349a73f Implemented the ability of mark some history entries as hidden.
Snapshots with order fields (that are considered not important
for preview) are automatically marked as hidden.
2014-09-17 16:53:30 +02:00
Andrey Antukh 6224a9d4ce Improve attachments factories and fix tests related to storage refactor. 2014-09-17 15:05:10 +02:00
Andrey Antukh 3061425a67 Improvements and fixes on tests. 2014-09-16 10:48:43 +02:00
Andrey Antukh 01d524adb8 Setup django on start testrunner. 2014-09-16 10:48:43 +02:00
Andrey Antukh 59c7478075 Patch client test fixture with useful login method.
This removes django-testclient-extensions because
it doesn't compatible with django 1.7.
2014-09-16 10:48:42 +02:00
Andrey Antukh c1b011fa99 Refactor test factories to new factoryboy version (more compatible with django 1.7) 2014-09-16 10:48:42 +02:00
Jesús Espino 6d78c79018 Adding import api 2014-09-08 12:33:32 +02:00
Andrey Antukh 0b375be614 Replace direct JSONRender usage with taiga own json module on all tests.
So unify the json interface in all tests code.
2014-09-06 02:00:09 +02:00
Andrey Antukh 4f27a8ba4d Fix affected tests to previous attachment fixes. 2014-09-06 00:43:32 +02:00
Andrey Antukh f2aa75e4a5 Remove usage of django-testclientextensions (backport of some commits from django1.7 branch) 2014-09-05 22:33:07 +02:00
Jesús Espino 1578f4352c Fix bug #783: Verify email existence on membership objects 2014-09-03 18:57:33 +02:00
David Barragán Merino 2f0471a3a4 Fix Bug #828: Validate username 2014-09-01 17:30:40 +02:00
David Barragán Merino ff8dd9e613 Fix some errors 2014-09-01 17:30:40 +02:00
Jesús Espino 1c72ddb01e Fixed mdrender tests 2014-08-27 10:36:36 +02:00
Jesús Espino c778f476be Improved a little some tests speed 2014-08-26 20:06:24 +02:00
Jesús Espino 0d9311613d On retrieve not apply the filter, only check the permissions 2014-08-19 10:07:20 +02:00
Jesús Espino 8bd6e4fb2d Fixed proyect notification policy tests 2014-08-18 12:48:32 +02:00
Jesús Espino e4def00dce Updated test to the new bulk ordering format 2014-08-12 10:23:31 +02:00
Jesús Espino 50ffc1caf9 Fixed tests 2014-08-12 09:25:56 +02:00
Jesús Espino 26e462e182 Fixed issue #298: Now permissions on API listings works 2014-08-08 13:43:07 +02:00
Anler Hp 47a28cc3dc Create membership for user creating project <=> role exists 2014-08-07 16:30:28 +02:00
Anler Hp 08ca07454a Failing test 2014-08-06 14:09:41 +02:00
Jesús Espino 64a8a137ab Now taking care of delete_last_milestone permission 2014-08-04 19:07:29 +02:00
Alejandro Alonso 3e9c836c7f Adding change email functionality 2014-08-04 10:15:32 +02:00
Anler Hp 196ac5684f Fix api auth tests 2014-08-01 15:07:57 +02:00
Anler Hp 68a579338f Refactoring issues bulk creation 2014-08-01 15:02:10 +02:00
Anler Hp ed603de65f fixing permissions tests 2014-08-01 14:29:30 +02:00
Anler Hp cfec7e12e2 Updating bulk param names in tests 2014-08-01 14:15:19 +02:00
Anler Hp 7944c36e6b Refactoring update order in bulk user-stories 2014-08-01 14:15:19 +02:00
Jesús Espino b567a55598 Adding remove avatar url permissions test 2014-08-01 14:02:46 +02:00
Anler Hp 5515243ed8 Refactoring bulk tasks creation 2014-08-01 13:45:00 +02:00
Anler Hp 58cc11e3d4 Refactoring bulk user stories creation 2014-08-01 11:05:58 +02:00
Jesús Espino 81e5609261 Adding test for change avatar 2014-07-31 16:46:09 +02:00
Jesús Espino 43c8699328 Adding test for change avatar permissions 2014-07-31 16:32:33 +02:00
Jesús Espino dd7d478d05 Adding permissions and testing for resend-invitation service 2014-07-31 14:09:09 +02:00
Jesús Espino 883fd81d06 Adding bulk_create membership tests 2014-07-31 13:46:51 +02:00
Jesús Espino b0807854fe Fixed stats test 2014-07-31 13:23:49 +02:00
Jesús Espino c0c05c7d33 Fixed test_users_resources test 2014-07-31 13:23:49 +02:00
Anler Hp cb66dc168f Change projectId param to project_id bulk members 2014-07-31 13:04:13 +02:00
Jesús Espino 83ad29dec1 Fixed stats tests 2014-07-31 12:40:39 +02:00
Anler Hp 724087e26d Create memberships in bulk on the same project 2014-07-31 12:19:51 +02:00
Jesús Espino b0d96d16df Some tests fixed 2014-07-31 12:00:43 +02:00
Jesús Espino e55acc11c2 Adding test for create of membership 2014-07-31 10:45:59 +02:00
Jesús Espino 1789aa6f06 Adding tests for bulk_create issues 2014-07-31 10:08:23 +02:00
Jesús Espino bb88966635 Fixed some errors and tests on mdrender 2014-07-31 08:59:12 +02:00
Anler Hp 2ca0039852 Fixing commits related to Task #439 2014-07-30 11:43:38 +02:00
Anler Hp 0b02cc4523 Task #422 - Create issues in bulk 2014-07-29 13:43:57 +02:00
Anler Hp 4c2585a891 Task #396 - Filter issues by subject 2014-07-29 13:00:27 +02:00
Anler Hp 6229770c0f Task #436 - Filter user stories by subject 2014-07-29 11:07:47 +02:00
Jesús Espino 945914c12b Adding some test for stats 2014-07-28 09:50:58 +02:00
Anler Hp 33fac4b43a Auto generate slug for projects 2014-07-25 14:19:37 +02:00
Anler Hp e79f0380dd Task #417 - Fixing create project api handler 2014-07-25 13:49:51 +02:00
Anler Hp 3f8af102ab Task #400 - Autolink user to membership if exists
When inviting an user to a project, if the user is already registered,
link her directly to the membership.
2014-07-25 12:57:06 +02:00
Anler Hp 8eed0d03e5 Task #399 - Memberships' resend-invitation handler
In order to resend and invitation email you just POST to detail-url
`memberships-resend-invitation`
2014-07-25 10:50:30 +02:00
Anler Hp 620ad91996 Task #361
Added a test only and appears to work
2014-07-24 14:49:48 +02:00
Anler Hp 95e636b856 Task #406 - Create members in bulk
Example:

        POST /memberships/bulk-create

        [{"project_id": <project id>,
          "role_id": <role id>,
          "email": <member email>}, ...]
2014-07-24 13:06:50 +02:00
Jesús Espino d97edb464c [HUGE CHANGE] Changed the permissions system 2014-07-24 12:19:06 +02:00
Anler Hp 44f9911730 Fix neighbor tests due to change in Issue ordering 2014-07-23 14:44:10 +02:00
Anler Hp 75cecbed70 Task #349 - API fails when DELETE-ing an userstory
Link - https://kaleidos.taiga.io/#/project/taiga/tasks/349
2014-07-23 11:21:52 +02:00
David Barragán Merino 2e6ddbf98f Merge pull request #55 from taigaio/attachments
Check permissions when accessing attachments
2014-07-22 23:32:54 +02:00
Jesús Espino d5df49f59a Big refactor on is_closed calculation 2014-07-22 12:00:25 +02:00
Jesús Espino d32a9562be A lot of refactoring on close us code signals code 2014-07-21 21:23:40 +02:00
Anler Hp 82ddeb69a7 USs: class-based to function-based services 2014-07-11 01:04:27 +02:00
Anler Hp 40260c82ad Tasks: class-based to function-based services 2014-07-11 01:04:17 +02:00
Anler Hp 52f476fb34 Check permissions when accessing attachments
Attachment files dispatching is now done through `RawAttachmentView`
view that checks for appropiate permissions.

When using the development server this view just redirects to the real
media path of the file.

When using the production server the special redirection header
`X-Accel-Redirect` is used instead to improve efficiency by instructing
the server to dispatch the file instead of django, but you also need the
following configuration (Nginx):

location /attachment-files {
    internal;
    alias /path/to/taiga/media/attachment-files;
}

It's recommended to also restrict the direct access from outside to the
`attachment-files` directory by using some configuration like this:

location /media/attachment-files {
    deny all;
}
2014-07-04 12:15:48 +02:00
Anler Hp 0ff888df53 Support for CELERY_ALWAYS_EAGER 2014-07-02 13:40:36 +02:00
Anler Hp 24e9d92af1 Decorator for overriding settings while testing
Usage:
```
from tests.utils import set_settings

@set_settings(FOO='bar')
def test_something():
    ...
```
2014-07-02 13:34:14 +02:00
Anler Hp 0e414267db Integration with RabbitMQ and Celery
First update taiga-vagrant vm if you're using it, you will have access
to the rabbit management console at port 8001 of the host machine.

* Defining tasks
- Tasks must be defined in a `deferred` module of an app, for example,
`taiga.projects.deferred` module.
- Tasks must be decorated and given the name "<app>.<task-name>", for
example in `taiga.projects.deferred` module:
```
from taiga.celery import app

@app.task(name="projects.add")
def add(x, y):
    return x + y
```
- Tasks should be at most just wrappers around service functions to
promote re-usability of those functions from other parts of the code,
say, management commands and the like.

* Calling tasks
Tasks should be called using one of the three functions defined in
`taiga.deferred` module:

- `defer`: Use this function if you need to perform some task
asynchronously and GET THE RESULT back later, for example:
```
result = defer("projects.add", x=1, y=2)
...
result.get() # => 3
```

- `call_async`: Use this function when you want to fire off some
task. No result is get back. For example:
```
call_async("projects.email_user", user)
```

- `apply_async`: Is the same as `call_async` but since it's a function
application and you must pass the args and kwargs together as one
parameter each you are allowed to pass celery-specific
extra-options (but bear in mind this is not recommended!)
```
apply_async("projects.email_user", args=(user,), kwargs={}, routing_key="tasks.email")
```
2014-07-02 09:49:56 +02:00
Anler Hp a8085a2feb Return user photo cropped and with absolute url
Remember to run `pip install -r requirements.txt` to install the
additional dependencies.
2014-07-01 14:38:26 +02:00
Anler Hp 5ff7ec1c00 Return user's gravatar if has no photo set
If the user has no photo set use her gravatar image if available
otherwise use the default avatar image defined in
`settings.DEFAULT_AVATAR_URL`
2014-07-01 12:46:58 +02:00
Anler Hp cfc35d5ed2 Required estimated-start/end dates for milestones 2014-06-27 14:07:50 +02:00
Alejandro Alonso 077de2bf4e Updating occ tests 2014-06-25 16:19:40 +02:00
Anler Hp 0a3a33aac5 Optimizing `Project.update_role_points` method 2014-06-24 12:38:29 +02:00
Alejandro Alonso 9b97a4a9c6 Fixing bug when creating objects with OCCResourceMixin 2014-06-23 16:22:08 +02:00
Anler Hp e98d666a40 Removing unnecessary setup of test database
We are already using pg arrays so the unpickle function in sql/tags.sql
is not needed, at least by the moment. I'm removing it because it was
entering in an infinite loop when creating the test database.
2014-06-23 12:26:17 +02:00
Anler Hp c89c6e7c31 Merge pull request #51 from taigaio/tags
Tags using pg arrays
2014-06-23 11:34:02 +02:00