Get a large deep frying pan that is able to accommodate the fish in a single layer. Heat the oil over a medium low heat and fry the onion until soft and translucent.
Add the celery, stir and cook for a couple of minutes then add the tomatoes and chilli and simmer gently for 10 minutes. Add the capers and olives and simmer for a couple of minutes more.
Take the pan off the heat and arrange the fillets skin side down in the pan in a single layer. Ladle over some of the sauce. Put the pan back over a low heat and simmer very gently, spooning more sauce over the top every now and then.
As soon as the fish is cooked through sprinkle with the parsley and serve.