Commit Graph

613 Commits

Author SHA1 Message Date
Jeremy Stretch
e28379ecdd Fixes #3831: Fix API-driven filter field rendering (#3812 regression) 2020-01-03 11:25:22 -05:00
Jeremy Stretch
ab7bb5c374 Merge branch 'develop' into develop-2.7 2020-01-02 17:21:15 -05:00
Saria Hajjar
cc9aa2083f Comment clarification 2020-01-01 16:04:08 +00:00
Saria Hajjar
12b93de987 Fixes #3812: Only preload selected options for API-based select 2020-01-01 15:54:00 +00:00
Jeremy Stretch
22bb9f42a6 Introduce render_jinja2() convenience function 2019-12-31 14:00:55 -05:00
Jeremy Stretch
8e0055ca7e Fixes #3106: Restrict queryset of chained fields when form validation fails 2019-12-31 12:41:02 -05:00
Saria Hajjar
aa75fd0614 Add datetime widgets 2019-12-28 22:55:00 +00:00
Jeremy Stretch
0cfc27b58b Fixes #3780: Fix AttributeError exception in API docs 2019-12-19 14:04:18 -05:00
Jeremy Stretch
3506f93cd7 Introduced clone, edit, and delete buttons 2019-12-13 15:54:50 -05:00
Jeremy Stretch
1ffc40e8f0 CSVChoiceField should default to a blank string instead of None 2019-12-11 17:04:48 -05:00
Jeremy Stretch
c7232674a1 Introduce is_taggable utility function for identifying taggable models 2019-12-11 15:52:35 -05:00
kobayashi
6f4eeaa83a implement 3664 2019-12-11 04:58:42 -05:00
Jeremy Stretch
08ad1ec44b Fix inclusion of legacy IDs on choice fields 2019-12-10 12:07:54 -05:00
John Anderson
0dfddeff6b update openapi field type for choice field value fields to string 2019-12-09 00:41:43 -05:00
Jeremy Stretch
9719098f6b Closes #648: Pre-populate forms when selecting "create and add another" 2019-12-06 16:40:39 -05:00
Jeremy Stretch
beed4c2cb8 Implement tag replication for #33 2019-12-06 16:22:56 -05:00
Jeremy Stretch
ef79579119 Closes #33: Add ability to clone objects (pre-populate form fields) 2019-12-06 16:13:52 -05:00
Jeremy Stretch
7c9f810555 Rack.outer_unit to slug (#3569) 2019-11-25 20:54:24 -05:00
Jeremy Stretch
79f501d897 Circuit.status (#3569) 2019-11-07 11:11:10 -05:00
Jeremy Stretch
02a8dc36c0 Introduce ChoiceSet class for field choices 2019-11-07 10:33:10 -05:00
Jeremy Stretch
01ac6d560d Merge branch 'develop' into develop-2.7 2019-11-01 16:19:36 -04:00
Jeremy Stretch
f9cb41d000 Move TreeNodeMultipleChoiceFilter tests to utilities (follow-up to #3616) 2019-11-01 15:01:24 -04:00
Jeremy Stretch
522e159abb Merge pull request #3616 from kobayashi/3357
allow null region filtering
2019-11-01 14:29:32 -04:00
kobayashi
f8b3518897 filtering multiple regions with null 2019-10-28 02:24:44 -04:00
Jeremy Stretch
b6beb37e36 Rewrote ObjectChangeMiddleware to remove the curried handle_deleted_object() function 2019-10-22 15:10:49 -04:00
kobayashi
11bfd770dc allow null region filtering 2019-10-22 00:41:49 -04:00
Jeremy Stretch
531edc21f3 Merge branch 'develop' into 451-devicetype-import 2019-10-10 13:50:57 -04:00
chambersh1129
de71669d93 Replace all instances of .extra() in QuerySets with annotations, including references in docstrings 2019-10-09 20:11:02 -04:00
Jeremy Stretch
539c9e5ec7 Closes #3471: Disallow raw HTML in Markdown-rendered fields 2019-10-09 14:47:40 -04:00
Jeremy Stretch
6b4e065b67 Force checkbox table columns to narrow width 2019-10-07 17:22:35 -04:00
Jeremy Stretch
b4acade70d Miscellaneous cleanup 2019-10-04 12:59:10 -04:00
Jeremy Stretch
3d2e535866 Enforce object creation permissions 2019-10-01 16:54:10 -04:00
Jeremy Stretch
7ac8f223ea Fix YAMLLoadWarning 2019-10-01 16:39:11 -04:00
Jeremy Stretch
2e373bcd28 Rewrote test for DeviceType import 2019-10-01 16:36:31 -04:00
Jeremy Stretch
02ecb22c24 Adopted a different approach to importing related objects 2019-09-27 16:51:12 -04:00
Jeremy Stretch
980972c942 Capture MultiObjectField default form field values 2019-09-25 16:19:22 -04:00
Jeremy Stretch
db64aa7322 Capture import form field default values 2019-09-25 16:06:09 -04:00
Jeremy Stretch
7b37b3f8a1 Merge branch 'develop' into 451-devicetype-import 2019-09-25 13:44:48 -04:00
Jeremy Stretch
b0a6b3c848 Force validation of individual objects within a MultiObjectField 2019-09-24 16:51:59 -04:00
Jeremy Stretch
45bed25234 Move JSON/YAML data valdiation to ImportForm 2019-09-24 16:13:52 -04:00
Jeremy Stretch
358f686ede Fix form rendering; enable toggling of redirect to imported object 2019-09-24 15:58:23 -04:00
Daniel Sheppard
c6243e63ab Fixes: #3464 - Change color picker to dynamic coloring from static CSS 2019-09-24 09:39:06 -05:00
Jeremy Stretch
0b1f3751fa Add RearPortTemplate power_port field 2019-09-20 15:16:14 -04:00
Jeremy Stretch
a8a2a786a1 Extend DeviceType import to include related objects 2019-09-20 14:02:14 -04:00
Jeremy Stretch
7f641c77f5 Fixes #3514: Label TextVar fields when rendering custom script forms 2019-09-18 15:39:26 -04:00
Jeremy Stretch
aedffce736 Closes #3510: Add minimum/maximum prefix length enforcement for IPNetworkVar 2019-09-17 16:36:36 -04:00
Jeremy Stretch
04ecd5e147 Initial work on JSON/YAML-based DeviceType import 2019-09-13 16:18:29 -04:00
Daniel Sheppard
5965a42979 Add in in-line vlan editing and Bulk vlan editing (#3350)
* Fixes #3341 - Added in-line vlan editing
* Fixes #2160 - Added bulk vlan editing

Inconsequential behaviour changes:

* APISelect can now take "full=True" to return a non-brief set
* Select2 will no group by "group & site, group, site, global" if full=True is set in APISelect
2019-09-06 12:45:37 -05:00
Jeremy Stretch
c251f32fbc Fixes #3452: Queue deletion ObjectChanges until after response is sent 2019-08-26 16:52:05 -04:00
Jeremy Stretch
0a18c86bfa Merge pull request #3423 from netbox-community/3415-custom-scripts
Add custom scripting
2019-08-26 14:06:22 -04:00
Brian Candler
9ad8b8331b Improve API error handling when a list is given as a choice value
Fixes #3426
2019-08-15 17:16:24 +01:00
Jeremy Stretch
90bb0d47df Add option to commit database changes 2019-08-12 14:28:06 -04:00
Jeremy Stretch
b1aa63be72 Fixes #3315: Enable filtering devices/interfaces by multiple MAC addresses 2019-07-18 21:21:56 -04:00
Jeremy Stretch
874130861e Fixes #3292: Ignore empty URL query parameters 2019-06-24 11:00:18 -04:00
John Anderson
59ceab2c46 minor tweaks to error handling to allow for defaulted values from pre v2.6 data 2019-06-19 23:47:48 -04:00
Jeremy Stretch
0f1453c16d Cleaned up logic for calculating power draw 2019-06-19 10:51:53 -04:00
Jeremy Stretch
31ed16335a Merged v2.5.13 2019-05-31 21:37:41 -04:00
dansheps
409b8e8e6a Fix #3228 - Send full path info instead of just path info and urlencode said path info 2019-05-30 10:58:39 -05:00
Jeremy Stretch
5aa4772507 Changelog & grammar tweak for #3211 2019-05-29 10:33:29 -04:00
hellerve
3192319f2a utilities: move protectederror handling to modelviewset 2019-05-28 21:11:23 +02:00
hellerve
8b8190f9b4 all: fix error message on trying to delete protected models (references #3211) 2019-05-28 17:31:02 +02:00
Jeremy Stretch
53257a5838 Fixes #3190: Fix custom field rendering for Jinja2 export templates 2019-05-16 19:45:36 -04:00
Jeremy Stretch
6d125b3dab Restore id__in filters to retain backward compatability until v2.7 2019-05-08 21:08:35 -04:00
Jeremy Stretch
da3cc1b448 Remove NumericInFilter and id__in filters 2019-05-07 13:07:18 -04:00
Jeremy Stretch
bdf0d7f652 Update query filters to OR multiple values 2019-05-07 12:25:33 -04:00
Jeremy Stretch
cecb2dd63f Closes #3085: Catch all exceptions during export template rendering 2019-05-02 15:36:51 -04:00
Jeremy Stretch
e70111353c Merge branch 'develop' into develop-2.6 2019-05-01 11:53:44 -04:00
Jeremy Stretch
73ffe3a57b Fixes #3127: Fix natural ordering of device components 2019-04-30 13:25:37 -04:00
Lars Weiler
034cf02e7c Forgot the additional brackets for a tuple 2019-04-30 17:04:21 +02:00
Lars Weiler
f5ccb87562 More elegant path checking 2019-04-30 16:54:23 +02:00
Lars Weiler
f09a817411 Fix PEP 8 errors 2019-04-30 16:47:38 +02:00
Lars Weiler
9e863bf3eb Exclude /metrics from LOGIN_REQUIRED 2019-04-30 16:09:10 +02:00
Jeremy Stretch
5f597c12de Cleanup from earlier work on caching 2019-04-22 14:49:31 -04:00
Jeremy Stretch
e585ac4815 Closes #3094: Remove NullsFirstQuerySet 2019-04-19 20:59:07 -04:00
Jeremy Stretch
7d1d0d0ebf Implement get_subquery() for annotation of child object counts; Rename dcim.Site 'count_*' fields 2019-04-19 16:09:22 -04:00
John Anderson
cf64c21cac Merge pull request #3080 from digitalocean/2647-cacheops
change cacheing to use cacheops
2019-04-19 01:41:59 -04:00
Jeremy Stretch
9c7074c529 Clean up limit_to for ForeignKeys referencing ContentType 2019-04-17 13:36:05 -04:00
John Anderson
65f357ff85 change cacheing to use cacheops 2019-04-17 12:29:21 -04:00
Jeremy Stretch
7c725a6d33 Add test for dict_to_filter_params 2019-04-17 11:19:59 -04:00
Jeremy Stretch
de959f2e15 Add tests for WritableNestedSerializer 2019-04-17 10:54:50 -04:00
Jeremy Stretch
66aa5830c1 Enable dictionary specification of related objects in API 2019-04-16 18:02:52 -04:00
Jeremy Stretch
9c12ea2f06 Remove run_validators() override (fixed upstream) 2019-04-16 15:35:15 -04:00
John Anderson
0596a9a160 move caching to views 2019-04-15 14:41:04 -04:00
John Anderson
80f8294cb8 add redis to travis builds 2019-04-15 04:16:22 -04:00
John Anderson
aae36cdce2 intial work on #2647 - caching 2019-04-15 03:55:33 -04:00
Jeremy Stretch
f801143a72 Implement custom auth backend and EXEMPT_VIEW_PERMISSIONS setting 2019-04-11 22:01:26 -04:00
Jeremy Stretch
10f6b96b02 Enforce view permissions for UI views 2019-04-11 17:27:38 -04:00
Jeremy Stretch
2b3be845cd Merge branch 'develop' into develop-2.6 2019-04-02 13:12:34 -04:00
Jeremy Stretch
0d030a28d7 Ensure fallback to default serializer when attempting to load nested serializer 2019-04-02 11:17:14 -04:00
Jeremy Stretch
6c94b53fca FieldChoicesViewSet should infer field choices from serializer, not model 2019-03-22 16:24:53 -04:00
Jeremy Stretch
3f6c583074 Merge branch 'develop' into develop-2.6 2019-03-11 21:01:18 -04:00
Jeremy Stretch
ca7151a862 Fixes #2985: Fix pagination page length for rack elevations 2019-03-11 12:51:03 -04:00
Jeremy Stretch
e30686db0b Changelog & renaming for #2065 2019-03-07 13:58:34 -05:00
Jeremy Stretch
9f83d363fe Merge pull request #2957 from axnsan12/ref-name
Resolve drf-yasg `ref_name` conflicts
2019-03-07 13:52:29 -05:00
Jeremy Stretch
85acc4d73a Fixes #2972: Improve ContentTypeField serializer to elegantly handle invalid data 2019-03-06 12:42:47 -05:00
Jeremy Stretch
4bb54bb403 Merge branch 'develop' into develop-2.6 2019-03-05 13:39:00 -05:00
Cristi Vîjdea
4dbf2c6d58 Resolve drf-yasg ref_name conflicts
This solves the problem of distinct serializers being confused because they have the same class name (e.g. `InterfaceSerializer`)

Fixes #2065.
2019-03-04 03:49:26 +02:00
dansheps
3559681999 Fixes #2781: Fixes filter by regions on site and device list 2019-02-27 11:41:12 -06:00
John Anderson
c679dd4ff8 initial pass on migrating to custom tag model with color and comments fields 2019-02-20 03:52:47 -05:00
Jeremy Stretch
ba399a3cc4 Fixes #2895: Fix filtering of nullable character fields 2019-02-14 09:43:56 -05:00
Jeremy Stretch
504e5bf9e6 Closes #2836: Deprecate NullableCharField 2019-02-14 09:39:04 -05:00
John Anderson
dc491e24ed fixes #2835 - certain model filters did not support the q query param 2019-01-31 13:36:30 -05:00
Jeremy Stretch
88233283b7 Force string formatting of integer values 2019-01-29 13:57:19 -05:00
Jeremy Stretch
b2faf98c94 Strip return characters when removing line breaks 2019-01-18 09:24:32 -05:00
John Anderson
9f361a875a removed deprecated code 2019-01-10 21:23:22 -05:00
John Anderson
abea43805f IPAM Select2 forms and changelog 2019-01-10 21:19:13 -05:00
John Anderson
62602d68c0 Virtulization Select2 forms 2019-01-10 17:32:23 -05:00
John Anderson
658faf1621 DCIM filter forms select2 2019-01-08 15:35:34 -08:00
John Anderson
687f76bc8d implemented #2590 - improved color picker with actual colors 2019-01-05 17:43:42 -05:00
John Anderson
75c9a8f7c7 select2 for all create/edit forms in dcim 2019-01-04 14:41:36 -05:00
John Anderson
2fe031557e Merge branch 'develop' of github.com:digitalocean/netbox into select2-ui 2019-01-04 12:44:41 -05:00
John Anderson
dacc16174d fixed whitespace 2019-01-04 12:44:31 -05:00
John Anderson
b1ef6aa194 initial static select2 fields 2019-01-03 23:02:05 -05:00
Jeremy Stretch
30343cfffc Closes #1871: Enable filtering sites by parent region 2019-01-03 16:59:49 -05:00
Jeremy Stretch
50bfb42af2 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
8ef5fb703a updated filter-for attr handling 2019-01-03 03:00:27 -05:00
John Anderson
6b3d1ece84 initial select2 support 2018-12-30 02:35:18 -05:00
Jeremy Stretch
68446533b3 Fixes #2712: Preserve list filtering after editing objects in bulk 2018-12-20 15:33:53 -05:00
Jeremy Stretch
3fdeec2840 Introduced fgcolor template filter to render ideal foreground color for any background color 2018-12-19 12:17:40 -05:00
Jeremy Stretch
28cd5a22ec Fixes #2698: Remove pagination restriction on bulk component creation for devices/VMs 2018-12-19 10:59:12 -05:00
dansheps
8bd97d3836 Closes #2693 2018-12-14 11:51:20 -06:00
Jeremy Stretch
512226b10c Fixes #2676: Fix exception when passing dictionary value to a ChoiceField 2018-12-11 17:00:20 -05:00
Jeremy Stretch
13edc47a4d Merge v2.5 work 2018-12-07 10:51:28 -05:00
Jeremy Stretch
6d0026b2d3 Move queryset_to_csv() utility into ObjectListView to allow overriding by individual views 2018-12-05 16:35:59 -05:00
Jeremy Stretch
8cc582b360 Closes #2495: Enable deep-merging of config context data 2018-12-05 14:34:49 -05:00
Jeremy Stretch
47ea8df446 Fixes #2622: Enable filtering cables by multiple types/colors 2018-11-28 14:22:55 -05:00
Tatsushi Demachi
51ecc03d46 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
6b1abd6a65 Closes #2614: Simplify calls of super() for Python 3 2018-11-27 10:52:24 -05:00
Jeremy Stretch
73a6583722 Fixes #2609: Fixed exception when ChoiceField integer value is passed as a string 2018-11-26 14:05:57 -05:00
Jeremy Stretch
9d8b36bf91 Enforce consistent ordering of value/label keys for ChoiceField 2018-11-26 14:02:38 -05:00
John Anderson
b1aa52305b cleanup component filters and UI filter forms for device and device type - #2583 2018-11-15 00:42:01 -05:00
John Anderson
39ff4b40ac added logic to append &type=physical to interface API query for cable creation - #2585 2018-11-14 23:35:15 -05:00
Jeremy Stretch
1945fdace1 Clean up cable termination types 2018-11-14 12:17:18 -05:00
Jeremy Stretch
6a85f38f11 Merge branch 'develop' into develop-2.5 2018-11-12 16:03:52 -05:00
Jeremy Stretch
574ddedc22 Fixes #2558: Filter on all tags when multiple are passed 2018-11-12 15:48:58 -05:00
Jeremy Stretch
f8376de43a PEP8 fix 2018-11-08 11:13:03 -05:00
Jeremy Stretch
40bafea2a5 Removed deprecated expand_numeric_pattern() 2018-11-06 15:39:38 -05:00
Jeremy Stretch
359db27213 Removed unused class NullableModelMultipleChoiceField 2018-11-06 15:32:59 -05:00
Jeremy Stretch
2c43446ccb Standardize usage of NaturalOrderingManager 2018-11-06 14:05:23 -05:00
Jeremy Stretch
8dd3f37da7 Introduced a placeholder template filter 2018-11-05 13:00:46 -05:00
Juho Juopperi
2a929fc19a Update django is_safe_url calls to new API (#2546) 2018-11-05 08:52:00 -05:00
Jeremy Stretch
f6d4ea00df Cleaned up import statements 2018-11-02 15:20:08 -04:00
Jeremy Stretch
73a3366469 Removed Python2 hack 2018-11-02 14:59:48 -04:00
Jeremy Stretch
3eb176010c Upgraded django-tables2 to v2.0.2 2018-11-02 14:27:17 -04:00
Jeremy Stretch
416187796c Fixed compatability with Django REST Framework v3.9.0 2018-11-02 13:16:44 -04:00
Jeremy Stretch
e847f830dc Fixed cable type filtering 2018-11-01 10:18:37 -04:00
Jeremy Stretch
b1e5909cb5 Add blank choice to ColorSelect widget 2018-11-01 10:14:47 -04:00
Jeremy Stretch
50dcb1404f Finished CableCSVForm 2018-11-01 09:59:53 -04:00
Jeremy Stretch
6d1840a7e4 Remove errant print() statement 2018-10-26 14:06:27 -04:00
Jeremy Stretch
aa050d85cc Fixed color display 2018-10-26 13:14:12 -04:00