Commit Graph

501 Commits

Author SHA1 Message Date
John Anderson
81a0889568 initial static select2 fields 2019-01-03 23:02:05 -05:00
Jeremy Stretch
0a820d9c98 Closes #1871: Enable filtering sites by parent region 2019-01-03 16:59:49 -05:00
Jeremy Stretch
6ca045e1a9
Merge pull request #2694 from DanSheps/2693-fiber-cable-colors
Closes #2693 - Adds additional colors for cables & roles
2019-01-03 15:24:36 -05:00
John Anderson
5285b6926f updated filter-for attr handling 2019-01-03 03:00:27 -05:00
John Anderson
28a02e9943 initial select2 support 2018-12-30 02:35:18 -05:00
Jeremy Stretch
853b1fad15 Fixes #2712: Preserve list filtering after editing objects in bulk 2018-12-20 15:33:53 -05:00
Jeremy Stretch
f4a22e5af3 Introduced fgcolor template filter to render ideal foreground color for any background color 2018-12-19 12:17:40 -05:00
Jeremy Stretch
aca57ec281 Fixes #2698: Remove pagination restriction on bulk component creation for devices/VMs 2018-12-19 10:59:12 -05:00
dansheps
f499f2dd66 Closes #2693 2018-12-14 11:51:20 -06:00
Jeremy Stretch
8364e56e86 Fixes #2676: Fix exception when passing dictionary value to a ChoiceField 2018-12-11 17:00:20 -05:00
Jeremy Stretch
65edffea63 Merge v2.5 work 2018-12-07 10:51:28 -05:00
Jeremy Stretch
2a07e8f3f0 Move queryset_to_csv() utility into ObjectListView to allow overriding by individual views 2018-12-05 16:35:59 -05:00
Jeremy Stretch
686a65880e Closes #2495: Enable deep-merging of config context data 2018-12-05 14:34:49 -05:00
Jeremy Stretch
08b4b24296 Fixes #2622: Enable filtering cables by multiple types/colors 2018-11-28 14:22:55 -05:00
Tatsushi Demachi
c3cdf8e97e Fix type mismatches in API view (#2429)
* Fix tags field to be shown as array in API view

`tags` field in serializers is defineded as `TagListSerializerField`.
It should be shown as an array value in API view but actually, it is a
simple string value.

This fixes it by introducing a new `FieldInspector` to handle
`TagListSerializerField` type field as an array. It doesn't affects any
other type fields.

* Fix SerializedPKRelatedField type API expression

A field definded as `SerializedPKRelatedField` should be shown as an
array of child serializer objects in a response value definition in API
view but it is shown as an array of primary key values (usually
`integer` type) of a child serializer.

This fixes it by introducing a new `FieldInspector` to handle the field.
It doesn't affect any other type fields.

* Fix request parameter representation in API view

In API view, representation of a parameter defined as a sub class of
`WritableNestedSerializer` should be vary between a request and a
response. For example, `tenant` field in `IPAddressSerializer` should be
shown like following as a request body:

```
tenant: integer ...
```

while it should be shown like following as a response body:

```
tenant: {
    id: integer ...,
    url: string ...,
    name: string ...,
    slug: string ...
}
```

But in both cases, it is shown as a response body type expression. This
causes an error at sending an API request with that type value.

It is only an API view issue, API can handle a request if a request
parameter is structured as an expected request body by ignoring the
wrong expression.

This fixes the issue by replacing an implicitly used default auto schema
generator class by its sub class and returning a pseudo serializer with
'Writable' prefix at generating a request body. The reason to introduce
a new generator class is that there is no other point which can
distinguish a request and a response. It is not enough to distinguish
POST, PUT, PATCH methods from GET because former cases may return a JSON
object as a response but it is also represented as same as a request
body, causes another mismatch.

This also fixes `SerializedPKRelatedField` type field representation. It
should be shown as an array of primary keys in a request body.

Fixed #2400
2018-11-27 16:14:45 -05:00
Jeremy Stretch
bd7aee7c1f Closes #2614: Simplify calls of super() for Python 3 2018-11-27 10:52:24 -05:00
Jeremy Stretch
7d8ae5e763 Fixes #2609: Fixed exception when ChoiceField integer value is passed as a string 2018-11-26 14:05:57 -05:00
Jeremy Stretch
2bae50f501 Enforce consistent ordering of value/label keys for ChoiceField 2018-11-26 14:02:38 -05:00
John Anderson
fd9b2f2fda cleanup component filters and UI filter forms for device and device type - #2583 2018-11-15 00:42:01 -05:00
John Anderson
3c0181ef35 added logic to append &type=physical to interface API query for cable creation - #2585 2018-11-14 23:35:15 -05:00
Jeremy Stretch
63bd48003e Clean up cable termination types 2018-11-14 12:17:18 -05:00
Jeremy Stretch
bc8dbfde7c Merge branch 'develop' into develop-2.5 2018-11-12 16:03:52 -05:00
Jeremy Stretch
0c33af2140 Fixes #2558: Filter on all tags when multiple are passed 2018-11-12 15:48:58 -05:00
Jeremy Stretch
bb5432de7d PEP8 fix 2018-11-08 11:13:03 -05:00
Jeremy Stretch
338ce737c8 Removed deprecated expand_numeric_pattern() 2018-11-06 15:39:38 -05:00
Jeremy Stretch
f41f141130 Removed unused class NullableModelMultipleChoiceField 2018-11-06 15:32:59 -05:00
Jeremy Stretch
9f0169286b Standardize usage of NaturalOrderingManager 2018-11-06 14:05:23 -05:00
Jeremy Stretch
045856c9ac Introduced a placeholder template filter 2018-11-05 13:00:46 -05:00
Juho Juopperi
319869c22e Update django is_safe_url calls to new API (#2546) 2018-11-05 08:52:00 -05:00
Jeremy Stretch
f8a961b568 Cleaned up import statements 2018-11-02 15:20:08 -04:00
Jeremy Stretch
521a989d23 Removed Python2 hack 2018-11-02 14:59:48 -04:00
Jeremy Stretch
b05171b126 Upgraded django-tables2 to v2.0.2 2018-11-02 14:27:17 -04:00
Jeremy Stretch
bb5c0989f3 Fixed compatability with Django REST Framework v3.9.0 2018-11-02 13:16:44 -04:00
Jeremy Stretch
ad03a0925b Fixed cable type filtering 2018-11-01 10:18:37 -04:00
Jeremy Stretch
5e7fccb64e Add blank choice to ColorSelect widget 2018-11-01 10:14:47 -04:00
Jeremy Stretch
849db8fe44 Finished CableCSVForm 2018-11-01 09:59:53 -04:00
Jeremy Stretch
33cdecbc52 Remove errant print() statement 2018-10-26 14:06:27 -04:00
Jeremy Stretch
83dec3b587 Fixed color display 2018-10-26 13:14:12 -04:00
Jeremy Stretch
3518d023dc Implemented Cable API endpoint 2018-10-26 12:25:11 -04:00
Jeremy Stretch
6bea8cc546 Added length and length_unit fields to Cable 2018-10-26 10:28:25 -04:00
Jeremy Stretch
35f80f5085 First stab at cable path tracing and automatic endpoint connections 2018-10-24 16:17:01 -04:00
Jeremy Stretch
471bddea09 WIP: Initial work on the cable connection form 2018-10-22 16:58:24 -04:00
Jeremy Stretch
a36b120c8b Merge branch 'develop-2.5' into 20-physical-cabling 2018-10-19 13:34:21 -04:00
Jeremy Stretch
22ed4f1b53 Merge release v2.4.6 2018-10-10 09:36:51 -04:00
Jeremy Stretch
4c37628784 Fixes #2393: Fix Unicode support for CSV import under Python 2 2018-10-05 15:33:29 -04:00
Jeremy Stretch
bf47e7cae3 #2487: Require the 'brief' parameter to evaluate True 2018-10-04 14:50:57 -04:00
Jeremy Stretch
db2721c581 Enable brief API output utilizing nested serializers 2018-10-04 13:43:50 -04:00
Jeremy Stretch
3eddeeadc5 Initial work on #20 - patch panels 2018-10-03 14:04:16 -04:00
Jeremy Stretch
364bbdeab8 Merged release v2.4.5 2018-10-03 11:23:21 -04:00
Jeremy Stretch
15babeb584 Fixes #2414: Tags field missing from device/VM component creation forms 2018-09-28 16:26:08 -04:00
Jeremy Stretch
020b5ea870 Fixes #2470: Log the creation of device/VM components as object changes 2018-09-28 16:04:51 -04:00
Jeremy Stretch
292647da14 Closes #2402: Order and format JSON data in form fields 2018-09-13 11:31:34 -04:00
Jeremy Stretch
2ac60bdf48 Merge branch 'develop' into develop-2.5 (v2.4.4 release) 2018-08-22 12:10:44 -04:00
Jeremy Stretch
e1e41a768a Fixes #2369: Corrected time zone validation on site API serializer 2018-08-20 16:53:23 -04:00
Jeremy Stretch
7145f86a6e #2359: Extended exempt attributes to 'migrate' command 2018-08-15 15:02:58 -04:00
Jeremy Stretch
7ec4155845 Closes #2359: Implement custom makemigrations command to ignore extraneous field attributes 2018-08-15 14:18:52 -04:00
Jeremy Stretch
980d62d579 Removed Python 2 string compatibility 2018-08-14 11:58:42 -04:00
Jeremy Stretch
ac546a9711 Closes #2000: Remove support for Python 2 2018-08-14 11:48:12 -04:00
Jeremy Stretch
a2ff21fab9 Fixes #2334: TypeError raised when WritableNestedSerializer receives a non-integer value 2018-08-08 15:09:30 -04:00
Jeremy Stretch
c51c20a301 Fixes #2319: Extend ChoiceField to properly handle true/false choice keys 2018-08-07 13:48:29 -04:00
Jeremy Stretch
1905516536 Fixes #2314: Serialized representation of object in change log does not incldue assigned tags 2018-08-07 08:52:57 -04:00
Jeremy Stretch
bd5e860be0 Refactored the tests to remove a lot of boilerplate 2018-08-03 11:39:26 -04:00
Jeremy Stretch
1bdfcd1dbe Fixes #2301: Fix model validation on assignment of ManyToMany fields via API patch 2018-08-03 10:45:53 -04:00
Jeremy Stretch
f1bc88fc0c
Adopt django-taggit-serializer for representation of assigned tags in the API 2018-08-03 09:43:03 -04:00
John Anderson
722d0d5554 Webhook signal refactor - fixes #2282 (#2260)
Refactor of webhook signaling system to use the same middleware mechanics of Changelogging
2018-07-30 14:23:49 -04:00
Jeremy Stretch
f7aa259995 Misc cleanup 2018-07-30 14:00:37 -04:00
Jeremy Stretch
f664998d9b Misc cleanup 2018-07-30 12:49:08 -04:00
Jeremy Stretch
c2416411c1 Renamed ChoiceFieldSerializer and ContentTypeFieldSerializer 2018-07-30 12:41:20 -04:00
Jeremy Stretch
40efa55ec7 Merged release v2.3.7 2018-07-27 11:43:27 -04:00
Jeremy Stretch
e82bf66a76 ExceptionHandlingMiddleware: Use server_error view for custom templates 2018-07-23 23:12:41 -04:00
Jeremy Stretch
c8a73b5b15 Fixes #2266: Permit additional logging of exceptions beyond custom middleware 2018-07-23 23:00:09 -04:00
Jeremy Stretch
beac676a6e Cleaned up BulkEditView and BulkDeleteView 2018-07-20 21:18:10 -04:00
Jeremy Stretch
d334bd4477 Corrected exception handling in get_serializer_for_model() 2018-07-16 13:26:26 -04:00
Jeremy Stretch
484a74defd Misc cleanup for config contexts 2018-07-10 16:16:23 -04:00
Jeremy Stretch
0c4495eb39 Order tags by name only, not item count 2018-07-10 14:25:04 -04:00
Jeremy Stretch
864d49f54d Fixed regex casting to satisfy pycodestyle 2018-07-10 14:21:40 -04:00
Jeremy Stretch
bd2219276f Force custom field values to strings for object change serialization 2018-07-10 14:16:16 -04:00
Jeremy Stretch
29172d045d Added missing import statement 2018-07-10 10:11:09 -04:00
Jeremy Stretch
289a762bf1 Record tags when serializing an object for an ObjectChange 2018-07-10 10:10:22 -04:00
Jeremy Stretch
208409110f Added bulk tag addition/removal 2018-07-10 10:00:21 -04:00
Jeremy Stretch
edf53d4516 Flip the order of tag and URL name for the tag template tag 2018-07-05 15:20:13 -04:00
Jeremy Stretch
6ddbd79fe6 Fixed object return_url resolution for bulk editing 2018-07-03 09:49:36 -04:00
Jeremy Stretch
d0308e0f58 Merge branch 'develop' into develop-2.4 2018-07-02 17:01:14 -04:00
Jeremy Stretch
cd56e51a61 Closes #1851: Standardize usage of GetReturnURLMixin 2018-07-02 11:54:41 -04:00
Jeremy Stretch
bf1c7cacc6 Improved rendering of boolean fields in tables 2018-06-29 12:05:56 -04:00
Jeremy Stretch
f5f16ce64b Include custom fields in ObjectChange data 2018-06-29 10:40:57 -04:00
Jeremy Stretch
b952ec73ce Introduced the render_json template filter 2018-06-28 10:49:52 -04:00
Anaël Beutot
4e09b32dd9 Fix pycodestyle errors
Mainly two kind of errors:
* pokemon exceptions
* invalid escape sequences
2018-06-27 17:24:33 +02:00
Jeremy Stretch
ce27a1d211 serialize_object(): Allow extra data to overwrite existing fields 2018-06-22 15:27:22 -04:00
Jeremy Stretch
6c1b5fdf3a Moved object serialization into a utility function 2018-06-22 14:00:23 -04:00
Jeremy Stretch
e1055b7f97 Moved ObjectChange creation logic from middleware to ChangeLoggedModel 2018-06-21 13:24:26 -04:00
Jeremy Stretch
a1f6ed1713 Disabled the creation of new UserActions 2018-06-21 10:56:33 -04:00
Jeremy Stretch
23f91274d6 Added API serializer for ObjectChange 2018-06-19 15:04:56 -04:00
Jeremy Stretch
b556d2d626 Renamed CreatedUpdatedModel to ChangeLoggedModel and applied it to all primary and organizational models 2018-06-13 15:40:16 -04:00
Jeremy Stretch
90abeedc3e Fix natural ordering within object tables 2018-06-11 15:10:31 -04:00
Jeremy Stretch
048e843c39 Added tests for NaturalOrderByManager 2018-06-08 15:42:10 -04:00
Jeremy Stretch
e4f336a843 Establish tests for the utilities app 2018-06-08 14:32:41 -04:00
Jeremy Stretch
33add12069 Merge branch 'develop' into develop-2.4 2018-06-07 16:23:57 -04:00
John Anderson
836478c166 Implements #81 - webhook event backend (#1640)
* merge branch develop

* bugfix, signals for virtualization's class wasn't correctly defined

* updated webhooks for 2.4 and cleanup

* updated docs to cover changes to supervisor config

* review changes and further cleanup

* updated redis connection settings

* cleanup settings
2018-05-30 11:19:10 -04:00
Jeremy Stretch
918339cfa8 Tweak formatting of message to handle translation strings 2018-05-22 11:19:47 -04:00
Jeremy Stretch
601fb418b5 Tweaked ordering of tags list 2018-05-22 10:51:40 -04:00
Jeremy Stretch
399a633d9d Post-release version bump 2018-05-21 16:50:31 -04:00
Jeremy Stretch
1d1553275e Added tags panel to object list view 2018-05-18 15:43:21 -04:00
Jeremy Stretch
e6b3983a4e Added template tag for tag links 2018-05-18 11:09:11 -04:00
Jeremy Stretch
b0dafcf50f Initial work on implementing django-taggit for #132 2018-05-08 16:28:26 -04:00
Jeremy Stretch
57f6d22c64 Merge branch 'develop' into develop-2.4 2018-04-19 11:24:11 -04:00
Nicholas St. Germain
9153c71cbf
stop force value split w ArrayFieldSelectMultiple 2018-04-18 14:02:40 -05:00
Jeremy Stretch
ef84889a57 Fixes #2022: Show 0 for zero-value fields on CSV export 2018-04-12 12:54:21 -04:00
Jeremy Stretch
9de1a8c363 Introduced SerializedPKRelatedField to represent serialized ManyToManyFields 2018-04-06 12:42:25 -04:00
Jeremy Stretch
821fb1e01e Finished merging writable serializers 2018-04-05 14:12:43 -04:00
Jeremy Stretch
db3cbaf83b Introduced WritableNestedSerializer 2018-04-04 15:39:14 -04:00
Jeremy Stretch
0969c458b3 Closes #1842: Implement support for Django 2.0 2018-03-30 10:39:22 -04:00
Jeremy Stretch
720c5fabaf
Merge pull request #1643 from RyanBreaker/wildcard
Implements #1586, add additional variants for ExpandableNameFields
2018-03-22 11:40:54 -04:00
Dave Cameron
e071b7dfd5 The id__in field is a csv-separated string of ids
drf_yasg is interpreting it as a number because NumericInFilter inherits
from django's NumberFilter which explicitly identifies as being a
DecimalField.
2018-03-15 17:07:58 -04:00
Dave Cameron
53e4e74930 Differentiate better between boolean and 0, 1 choices 2018-03-15 17:07:58 -04:00
Dave Cameron
b83de7eb11 Use drf_yasg to generate swagger
drf_yasg provides more complete swagger output, allowing for generation
of usable clients.

Some custom work was needed to accommodate Netbox's custom field
serializers, and to provide x-nullable attributes where appropriate.
2018-03-15 17:07:58 -04:00
Jeremy Stretch
546f17ab50 Closes #1866: Introduced AnnotatedMultipleChoiceField for filter forms 2018-03-07 14:16:38 -05:00
Jeremy Stretch
078404fb59 Fixes #1926: Prevent reassignment of parent device when bulk editing VC member interfaces 2018-03-01 13:10:36 -05:00
Jeremy Stretch
4bb526896f Fixes #1934: Fixed exception when rendering export template on an object type with custom fields assigned 2018-03-01 12:37:12 -05:00
Jeremy Stretch
fc9871fba3 Fixes #1935: Correct API validation of VLANs assigned to interfaces 2018-03-01 12:05:25 -05:00
Jeremy Stretch
08d06bd781 Fixes #1921: Ignore ManyToManyFields when validating a new object created via the API 2018-03-01 11:16:28 -05:00
Jeremy Stretch
e653f35bf1 Fixes #1884: Provide additional context to identify devices when creating/editing avirtual chassis 2018-02-14 11:14:04 -05:00
Jeremy Stretch
73c64272d8 Merge branch 'develop' into develop-2.3 2018-02-06 14:58:11 -05:00
Jeremy Stretch
1890e710cb Fixed quoting of line breaks inside a CSV field 2018-02-02 16:31:23 -05:00
Jeremy Stretch
b96e3af6c7 Closes #1714: Standardized CSV export functionality for all object lists 2018-02-02 16:12:57 -05:00
Jeremy Stretch
60c03a646c Fixes #1859: Implemented support for line breaks within CSV fields 2018-02-02 13:32:16 -05:00
Jeremy Stretch
59dcbce417 Refactored CSV export logic 2018-02-02 11:36:45 -05:00
Jeremy Stretch
6b101d2c49 Merge branch 'develop' into develop-2.3 2018-01-31 11:13:17 -05:00
Jeremy Stretch
e0aa2c33e9 Fixes #1850: Fix TypeError when attempting IP address import if only unnamed devices exist 2018-01-31 10:03:05 -05:00
Jeremy Stretch
0714a40509 Merge branch 'develop' into develop-2.3 2018-01-19 10:54:26 -05:00
Jeremy Stretch
78ed85943b Fixes #1765: Improved rendering of null options for model choice fields in filter forms 2017-12-26 12:08:22 -05:00
Jeremy Stretch
d84e5d1839 Cleaned up component tables and checkbox toggling 2017-12-21 13:29:02 -05:00
Jeremy Stretch
b65d994397 Fixes #1136: Enforce model validation during bulk update 2017-12-20 13:04:00 -05:00
Jeremy Stretch
b20258c66e Closes #1283: Added a time zone field to the site model 2017-12-19 17:24:14 -05:00
Jeremy Stretch
02e01b7386
Merge pull request #1782 from digitalocean/99-virtual-chassis
Virtual Chassis Support
2017-12-18 17:09:53 -05:00
Mike Culbertson
1cebc1248b Fix for #1778.
This will set initial values for visible bulk-add form fields from query args.
2017-12-16 12:28:37 -05:00
Jeremy Stretch
153409d37e Obsoleted ComponentEditView and ComponentDeleteView 2017-12-15 15:57:49 -05:00
Jeremy Stretch
a9af75bbd1 Fixes #1767: Use proper template for 404 responses 2017-12-13 11:49:36 -05:00
Jeremy Stretch
859f89101e Fixes #1727: Added missing import for M2M_FIELD_TYPES 2017-12-07 15:36:08 -05:00
Jeremy Stretch
04ba57cb38 Fixed up validation of Interface VLAN assignments 2017-11-14 16:15:23 -05:00
Jeremy Stretch
ba42ad2115 Merge branch '150-interface-vlans' into develop-2.3 2017-11-14 15:36:14 -05:00
Jeremy Stretch
3df8c63d5c Merge branch 'develop' into develop-2.3 2017-11-14 14:38:32 -05:00
Jeremy Stretch
a0bb7b08bd Closes #1512: Added a view to search for an IP address being assigned to an interface 2017-11-10 11:58:59 -05:00
Jeremy Stretch
198170ca48 Closes #1553: Introduced support for bulk object creation via the API 2017-11-07 15:36:10 -05:00
Jeremy Stretch
00986fd7bf Closes #1691: Cleaned up and reorganized import statements 2017-11-07 11:08:23 -05:00
Jeremy Stretch
2519ebff9d Tweaked exception-handling middleware to preserve tracebacks 2017-11-06 17:48:13 -05:00
Jeremy Stretch
6b0721cc21 Fixed PermissionError handling for Python 2 2017-11-06 17:24:09 -05:00
Jeremy Stretch
f77bf72de8 Closes #1683: Replaced default 500 handler with custom middleware to provide preliminary troubleshooting assistance 2017-11-03 13:24:31 -04:00
Ryan Breaker
57973f62c5
Fix bug with numbers >10 2017-10-31 22:03:57 -05:00
Jeremy Stretch
4668149943 Fixes #1649: Correct fitlering on null values (e.g. ?tenant_id=0) for django-filters v1.1.0+ 2017-10-30 17:20:22 -04:00